Integrieren von Airflow-Protokollen in Azure Monitor

In diesem Artikel erfahren Sie, wie Sie mit dem Sammeln von Airflow-Protokollen für Ihre Microsoft Azure Data Manager for Energy-Instanzen in Azure Monitor beginnen. Mit diesem Integrationsfeature können Sie DAG-Ausführungsfehler (Directed Acyclic Graph, gerichteter azyklischer Graph) in Airflow debuggen.

Voraussetzungen

  • Ein vorhandener Log Analytics-Arbeitsbereich. Dieser Arbeitsbereich wird verwendet, um die Airflow-Protokolle mithilfe des KQL-Abfrage-Editors (Kusto Query Language) im Log Analytics-Arbeitsbereich abzufragen. Nützliche Ressource: Erstellen eines Log Analytics-Arbeitsbereichs im Azure-Portal.

  • Ein vorhandenes Speicherkonto: Dieses wird verwendet, um JSON-Sicherungen von Airflow-Protokollen zu speichern. Das Speicherkonto muss sich nicht im selben Abonnement wie der Log Analytics-Arbeitsbereich befinden.

Aktivieren von Diagnoseeinstellungen zum Erfassen von Protokollen in einem Speicherkonto

Jeder Azure Data Manager for Energy-Instanz ist mit einer Azure Data Factory Workflow Orchestration Manager (unterstützt von Apache Airflow) integriert. Airflow-Protokolle werden für die interne Problembehandlung und zum Debuggen gesammelt. Airflow-Protokolle können auf folgende Weise in Azure Monitor integriert werden:

  • Speicherkonto
  • Log Analytics-Arbeitsbereich

Um über eine der oben genannten beiden Optionen auf Protokolle zuzugreifen, müssen Sie eine Diagnoseeinstellung erstellen. Jede Diagnoseeinstellung besteht aus drei Teilen:

Teil BESCHREIBUNG
Name Dies ist der Name des Diagnoseprotokolls. Stellen Sie sicher, dass für jedes Protokoll ein eindeutiger Name festgelegt ist.
Kategorien Kategorien der Protokolle, die an die Ziele gesendet werden können. Die Kategorien unterscheiden sich je nach Azure-Dienst. Besuchen Sie: Unterstützte Ressourcenprotokollkategorien
Destinations Ein oder mehrere Ziele zum Senden der Protokolle. Für alle Azure-Dienste gelten dieselben möglichen Ziele. Jede Diagnoseeinstellung kann ein oder mehrere Ziele definieren, aber nicht mehr als ein Ziel eines bestimmten Typs. Es sollte sich um ein Speicherkonto, einen Event Hubs-Namespace oder einen Event Hub handeln.

Führen Sie die folgenden Schritte aus, um Diagnoseeinstellungen einzurichten:

  1. Öffnen Sie die Seite Übersicht für Microsoft Azure Data Manager for Energy auf.

  2. Wählen Sie im linken Bereich Diagnoseeinstellungen aus.

    Screenshot: Übersichtsseite für die Diagnoseeinstellung von Azure Monitor. Auf der Seite wird eine Liste der vorhandenen Diagnoseeinstellungen und die Option zum Hinzufügen einer neuen Diagnoseeinstellung angezeigt.

  3. Wählen Sie Diagnoseeinstellung hinzufügen aus.

  4. Wählen Sie unter „Protokolle“ die Option Airflow-Aufgabenprotokolle aus.

  5. Aktivieren Sie das Kontrollkästchen In einem Speicherkonto archivieren.

    Screenshot: Erstellen einer Diagnoseeinstellung zum Archivieren von Protokollen in einem Speicherkonto. Die Abbildung zeigt das Abonnement und das für eine Diagnoseeinstellung ausgewählte Speicherkonto.

  6. Überprüfen Sie das Abonnement und das Speicherkonto, in das Sie die Protokolle archivieren möchten.

Nachdem eine Diagnoseeinstellung erstellt wurde, um Airflow-Aufgabenprotokollen in einem Speicherkonto zu archivieren, können Sie zur Übersichtsseite des Speicherkontos navigieren. Sie können dann den „Speicherbrowser“ im linken Bereich verwenden, um die JSON-Datei zu suchen, die Sie untersuchen möchten. Sie können verschiedene Verzeichnisse intuitiv durchsuchen. Wechseln Sie von Jahren zu Monaten und dann zu Tagen.

  1. Navigieren Sie durch Container, die im linken Bereich verfügbar sind.

    Screenshot: Untersuchen archivierter Protokolle in den Containern des Speicherkontos. Der Container zeigt Protokolle aller eingerichteten Quellen an.

  2. Öffnen Sie den Informationsbereich rechts. Er enthält die Schaltfläche „Herunterladen“, über die Sie die Protokolldatei lokal speichern können.

  3. Heruntergeladene Protokolle können in einem beliebigen Editor analysiert werden.

Aktivieren von Diagnoseeinstellungen zum Integrieren von Protokollen in einen Log Analytics-Arbeitsbereich

Sie können Airflow-Protokolle in den Log Analytics-Arbeitsbereich integrieren. Verwenden Sie dazu die Option Diagnoseeinstellungen im linken Bereich der Übersichtsseite Ihrer Microsoft Azure Data Manager for Energy-Instanz.

Screenshot vom Erstellen einer Diagnoseeinstellung. Er zeigt die Optionen zur Auswahl von Abonnement und Log Analytics-Arbeitsbereich an, mit dem die Integration erfolgen soll.

Arbeiten mit den integrierten Airflow-Protokollen im Log Analytics-Arbeitsbereich

Verwenden Sie Kusto-Abfragesprache (Kusto Query Language, KQL), um gewünschte Daten zu gesammelten Airflow-Protokollen aus Ihrem Log Analytics-Arbeitsbereich abzurufen. Sie können entweder die vorgefertigten Beispielabfragen in Ihren Log Analytics-Arbeitsbereich laden oder Ihre eigenen Abfragen erstellen.

Screenshot: Seite „Azure Monitor Log Analytics“ zum Anzeigen gesammelter Protokolle. Unter „Protokollverwaltung“ sind Tabellen aus allen Quellen sichtbar.

  1. Laden vordefinierter Abfragen: Wählen Sie Protokolle aus dem Menü Ihrer Ressource aus. Log Analytics wird mit dem Fenster Abfragen geöffnet, das vordefinierte Abfragen für Ihren Ressourcentyp enthält. Durchsuchen Sie die verfügbaren Abfragen. Ermitteln Sie die ausführende Abfrage, und wählen Sie „Ausführen“ aus. Die Abfrage wird dem Abfragefenster hinzugefügt, und die Ergebnisse werden zurückgegeben.

  2. Schreiben von Abfragen im Abfrage-Editor: Sie können die folgenden Abfragen kopieren, einfügen und bearbeiten oder Ihre eigenen in KQL im Abfrage-Editor Ihres Log Analytics-Arbeitsbereichs schreiben.

Beispielabfragen

Diese Abfrage gibt alle Airflow-Protokolle zurück, die die Ebene ERROR aufweisen. Sie können die Ergebnisse filtern, indem Sie die Where-Klausel für den Azure Data Manager for Energy-Instanznamen und die Korrelations-ID für Ihre DAG-Läufe hinzufügen (d.h. auskommentieren).


OEPAirFlowTask
| extend ResourceName = tostring(split(_ResourceId , '/')[-1])
// | where ResourceName == "<the name of ADME instance>"        // to filter on resourceName replace <...> and uncomment line
// | where CorrelationId == "<DAG run's runId>"                 // to filter on correlationID replace <...> with correlationId (same as runId) - we have created a duplicate for to maintain consistency of column name across all services 
| where LogLevel  == "ERROR"
| project TimeGenerated, DagName, LogLevel, DagTaskName, CodePath, Content

Diese Abfrage listet alle DAG-Ausführungen und ihre entsprechenden Korrelations-IDs in der genannten Azure Data Manager for Energy-Ressource auf.


OEPAirFlowTask
| extend ResourceName = tostring(split(_ResourceId , '/')[-1])
// | where ResourceName == "<the name of ADME instance>"        // to filter on resourceName replace <...> and uncomment line
| distinct DagName, CorrelationId                               // correlationId is same as runId - we have created a duplicate for consistency in search across logs of all services 
| sort by DagName asc

Wir haben ein Dokument hinzugefügt, das Ihnen bei der Problembehandlung Ihres Manifest-Erfassungsprozesses unter Verwendung der in Ihrem Log Analytics-Arbeitsbereich gesammelten Airflow-Protokolle hilft.

Nächste Schritte

Sie haben Ressourcenprotokolle gesammelt. Erstellen Sie nun eine Protokollabfragewarnung, um proaktiv benachrichtigt zu werden, wenn interessante Daten in Ihren Protokolldaten identifiziert werden.