Integrare i log Airflow con Monitoraggio di Azure

Questo articolo descrive come iniziare a raccogliere i log airflow per le istanze di Microsoft Azure Data Manager 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 Linguaggio di query Kusto (KQL) nell'area di lavoro Log Analytics. Risorsa utile: creare un'area di lavoro Log Analytics in 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 Azure Data Manager per l'energia è incorporata con un'istanza di Azure Data Factory Workflow Orchestration Manager (con tecnologia Apache Airflow). Vengono raccolti i log airflow per scopi interni di risoluzione dei problemi e debug. 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 ha tre parti di base:

In parte Descrizione
Name Si tratta del nome del log di diagnostica. Verificare che per ogni log sia impostato un nome univoco.
Categorie Categoria di log da inviare a ognuna delle destinazioni. Il set di categorie può variare per ogni servizio di Azure. Visitare: 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 possibili destinazioni. 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 l'Impostazioni di diagnostica, seguire questa procedura:

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

  2. Selezionare Diagnostica Impostazioni 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 per 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 di panoramica dell'account di archiviazione. È quindi possibile usare "Archiviazione Browser" nel pannello sinistro per trovare il file JSON destro da analizzare. L'esplorazione tra directory diverse è intuitiva quando si passa da un anno a un mese a un giorno.

  1. Passare a Contenitori, disponibile nel pannello sinistro.

    Screenshot per l'esplorazione dei log archiviati nei contenitori dell'account Archiviazione. Il contenitore mostrerà i log da 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 Diagnostica Impostazioni nel pannello sinistro della pagina di panoramica dell'istanza di Microsoft Azure Data Manager for Energy.

Screenshot per la 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 Linguaggio di query Kusto (KQL) per recuperare i dati desiderati nei 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, le tabelle di tutte le origini saranno visibili.

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

  2. Scrivere query nell'editor di query: è possibile copiare, incollare e modificare le query seguenti o scrivere le query personalizzate in KQL nella 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 (annullando il commento) dove clausola per il nome dell'istanza di Azure Data Manager per l'istanza di 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 Azure Data Manager 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.