Condividi tramite


Integrare i log Airflow con Monitoraggio di Azure

Questo articolo descrive come iniziare a raccogliere i log Airflow per le istanze di Data Manager di Microsoft Azure per l'energia in Monitoraggio di Azure. Questa funzionalità di integrazione consente di eseguire il debug degli errori di esecuzione di Airflow DAG (Directed Acyclic Graph).

Prerequisiti

  • Un'area di lavoro Log Analytics esistente. Questa area di lavoro verrà usata per eseguire query sui log Airflow usando l'editor di query KQL (Kusto Query Language) nell'area di lavoro Log Analytics. Risorse utili: Creare un'area di lavoro Log Analytics nel portale di Azure.

  • Un account di archiviazione esistente: verrà usato per archiviare i dump JSON dei log Airflow. L'account di archiviazione non deve trovarsi nella stessa sottoscrizione dell'area di lavoro Log Analytics.

Abilitazione delle impostazioni di diagnostica per raccogliere i log in un account di archiviazione

Ogni istanza di Data Manager di Azure per l'energia è dotata di un'istanza di Gestore dell'orchestrazione del flusso di lavoro di Azure Data Factory (con tecnologia Apache Airflow). Microsoft raccoglie i log Airflow per la risoluzione di problemi e il debug interni. I log Airflow possono essere integrati con Monitoraggio di Azure nei modi seguenti:

  • Account di archiviazione
  • area di lavoro Log Analytics

Per accedere ai log tramite una delle due opzioni precedenti, è necessario creare un'impostazione di diagnostica. Ogni impostazione di diagnostica è costituita da tre parti di base:

In parte Descrizione
Name Questo è il nome del log di diagnostica. Assicurarsi che per ogni log venga impostato un nome univoco.
Categorie Categoria dei log da inviare a ogni destinazione. Il set di categorie può variare per ogni servizio di Azure. Vedere Categorie di log delle risorse supportate
Destinazioni una o più destinazioni a cui inviare i log. Tutti i servizi di Azure condividono lo stesso set di destinazioni possibili. Ogni impostazione di diagnostica può definire una o più destinazioni, ma non più di una destinazione di un tipo specifico. Deve essere un account di archiviazione, uno spazio dei nomi di Hub eventi o un hub eventi.

Per configurare le impostazioni di diagnostica, seguire questa procedura:

  1. Aprire la pagina Panoramica di Data Manager di Microsoft Azure per l'energia

  2. Selezionare Impostazioni di diagnostica nel pannello sinistro

    Screenshot della pagina di panoramica delle impostazioni di diagnostica di Monitoraggio di Azure. La pagina mostra un elenco di impostazioni di diagnostica esistenti e l'opzione per aggiungerne una nuova.

  3. Selezionare Aggiungi impostazione di diagnostica

  4. Selezionare Log attività Airflow in Log

  5. Selezionare Archivia in un account di archiviazione

    Screenshot che mostra la creazione di un'impostazione di diagnostica per archiviare i log in un account di archiviazione. L'immagine mostra la sottoscrizione e l'account di archiviazione scelto per un'impostazione di diagnostica.

  6. Verificare la sottoscrizione e l'account di archiviazione in cui archiviare i log.

Dopo aver creato un'impostazione di diagnostica per l'archiviazione dei log attività Airflow in un account di archiviazione, è possibile passare alla pagina Panoramica dell'account di archiviazione. È quindi possibile usare il "browser archiviazione" nel pannello sinistro per trovare il file JSON appropriato da analizzare. L'esplorazione delle diverse directory è intuitiva in quanto si passa da un anno a un mese a un giorno.

  1. Esplorare i Contenitori, disponibili nel pannello sinistro.

    Screenshot dell'esplorazione dei log archiviati nei contenitori dell'account di archiviazione. Il contenitore mostrerà i log di tutte le origini configurate.

  2. Aprire il riquadro informazioni a destra. Contiene un pulsante "download" per salvare il file di log in locale.

  3. I log scaricati possono essere analizzati in qualsiasi editor.

Abilitazione delle impostazioni di diagnostica per l'integrazione dei log con l'area di lavoro Log Analytics

È possibile integrare i log Airflow con l'area di lavoro Log Analytics usando Impostazioni di diagnostica nel pannello sinistro della pagina di panoramica dell'istanza di Data Manager di Microsoft Azure per l'energia.

Screenshot della creazione di un'impostazione di diagnostica. Mostra le opzioni per selezionare la sottoscrizione e l'area di lavoro Log Analytics con cui eseguire l'integrazione.

Uso dei log Airflow integrati nell'area di lavoro Log Analytics

Usare il linguaggio di query Kusto (KQL) per recuperare i dati desiderati sui log Airflow raccolti dall'area di lavoro Log Analytics. È possibile caricare le query di esempio predefinite nell'area di lavoro Log Analytics o creare query personalizzate.

Screenshot della pagina Log Analytics di Monitoraggio di Azure per la visualizzazione dei log raccolti. In Gestione log, saranno visibili le tabelle di tutte le origini.

  1. Caricamento di query predefinite: selezionare Log dal menu della risorsa. Log Analytics viene aperto con la finestra Query che include le query predefinite per il tipo di risorsa. Esplorare le query disponibili. Identificare quella da eseguire e selezionare Esegui. La query viene aggiunta alla finestra di query e vengono restituiti i risultati.

  2. Scrivere query nell'editor di query: è possibile copiare, incollare e modificare le query seguenti o scriverne di proprie in KQL nell'editor di query dell'area di lavoro Log Analytics.

Query di esempio

Questa query restituisce tutti i log Airflow di livello ERROR. È possibile filtrare i risultati aggiungendo (rimuovendo i commenti) la clausola where per il nome dell'istanza di Data Manager di Azure per l'energia e l'ID di correlazione per le esecuzioni di DAG.


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

Questa query elenca tutte le esecuzioni di DAG e gli ID di correlazione corrispondenti nella risorsa di Data Manager di Azure per l'energia menzionata.


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

È stato aggiunto un documento che consente di risolvere i problemi del processo di inserimento del manifesto usando i log Airflow raccolti nell'area di lavoro Log Analytics.

Passaggi successivi

Ora che si raccolgono i log delle risorse, creare un avviso di query di log per ricevere una notifica proattiva quando i dati interessanti vengono identificati nei dati di log.