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:
Aprire la pagina Panoramica di Microsoft Azure Data Manager per l'energia
Selezionare Diagnostica Impostazioni nel pannello sinistro
Selezionare Aggiungi impostazione di diagnostica
Selezionare Log attività Airflow in Log
Selezionare Archivia in un account di archiviazione
Verificare la sottoscrizione e l'account di archiviazione in cui archiviare i log.
Esplorare l'account di archiviazione per scaricare i log airflow
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.
Passare a Contenitori, disponibile nel pannello sinistro.
Aprire il riquadro informazioni a destra. Contiene un pulsante "download" per salvare il file di log in locale.
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.
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.
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.
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.