Integrar registos do Airflow no Azure Monitor

Neste artigo, você aprenderá como começar a coletar Logs de Fluxo de Ar para suas instâncias do Microsoft Azure Data Manager for Energy no Azure Monitor. Esse recurso de integração ajuda a depurar falhas de execução do Airflow DAG (Directed Acyclic Graph).

Pré-requisitos

  • Um espaço de trabalho existente do Log Analytics. Este espaço de trabalho será usado para consultar os logs do Airflow usando o editor de consultas KQL (Kusto Query Language) no espaço de trabalho do Log Analytics. Recurso útil: crie um espaço de trabalho de análise de log no portal do Azure.

  • Uma conta de armazenamento existente: ela será usada para armazenar dumps JSON de logs de fluxo de ar. A conta de armazenamento não tem de estar na mesma subscrição da área de trabalho do Log Analytics.

Habilitando configurações de diagnóstico para coletar logs em uma conta de armazenamento

Cada instância do Azure Data Manager for Energy vem incorporada com uma instância do Azure Data Factory Workflow Orchestration Manager (alimentada pelo Apache Airflow). Coletamos logs de fluxo de ar para fins internos de solução de problemas e depuração. Os logs de fluxo de ar podem ser integrados ao Azure Monitor das seguintes maneiras:

  • Conta de armazenamento
  • Área de trabalho do Log Analytics

Para acessar os logs por meio de qualquer uma das duas opções acima, você precisa criar uma Configuração de Diagnóstico. Cada Configuração de Diagnóstico tem três partes básicas:

Parte Description
Name Este é o nome do log de diagnóstico. Verifique se um nome exclusivo está definido para cada log.
Categorias Categoria de logs para enviar para cada um dos destinos. O conjunto de categorias variará para cada serviço do Azure. Visite: Categorias de log de recursos suportadas
Destinos Um ou mais destinos para enviar os logs. Todos os serviços do Azure compartilham o mesmo conjunto de destinos possíveis. Cada configuração de diagnóstico pode definir um ou mais destinos, mas não mais de um destino de um tipo específico. Deve ser uma conta de armazenamento, um namespace de Hubs de Eventos ou um hub de eventos.

Siga as seguintes etapas para configurar as Configurações de diagnóstico:

  1. Abra a página Visão geral do Microsoft Azure Data Manager for Energy

  2. Selecione Configurações de diagnóstico no painel esquerdo

    Captura de tela para a página de visão geral da configuração de diagnóstico do monitor do Azure. A página mostra uma lista de configurações de diagnóstico existentes e a opção de adicionar uma nova.

  3. Selecione Adicionar configuração de diagnóstico

  4. Selecione Logs de tarefas de fluxo de ar em Logs

  5. Selecione Arquivar em uma conta de armazenamento

    Captura de tela para criar uma configuração de diagnóstico para arquivar logs em uma conta de armazenamento. A imagem mostra a assinatura e a conta de armazenamento escolhidas para uma configuração de diagnóstico.

  6. Verifique a assinatura e a conta de armazenamento na qual você deseja arquivar os logs.

Depois que uma configuração de diagnóstico for criada para arquivar os logs de tarefas do Airflow em uma conta de armazenamento, você poderá navegar até a página de visão geral da conta de armazenamento. Em seguida, você pode usar o "Navegador de armazenamento" no painel esquerdo para encontrar o arquivo JSON correto que deseja investigar. Navegar por diferentes diretórios é intuitivo à medida que você passa de um ano para um mês para um dia.

  1. Navegue pelos Contêineres, disponíveis no painel esquerdo.

    Captura de tela para explorar logs arquivados nos contêineres da Conta de Armazenamento. O contêiner mostrará logs de todas as fontes configuradas.

  2. Abra o painel de informações à direita. Ele contém um botão "download" para salvar o arquivo de log localmente.

  3. Os logs baixados podem ser analisados em qualquer editor.

Habilitando configurações de diagnóstico para integrar logs com o Log Analytics Workspace

Você pode integrar os logs de fluxo de ar com o espaço de trabalho do Log Analytics usando as Configurações de diagnóstico no painel esquerdo da página de visão geral da instância do Microsoft Azure Data Manager for Energy.

Captura de tela para criar uma configuração de diagnóstico. Ele mostra as opções para selecionar assinatura & Log Analytics Workspace com o qual se integrar.

Trabalhando com os logs de fluxo de ar integrados no espaço de trabalho do Log Analytics

Use o Kusto Query Language (KQL) para recuperar os dados desejados nos logs de fluxo de ar coletados do seu espaço de trabalho do Log Analytics. Você pode carregar as consultas de exemplo pré-criadas para seu espaço de trabalho do Log Analytics ou criar suas próprias consultas.

Captura de ecrã da página Azure Monitor Log Analytics para ver os registos recolhidos. No gerenciamento de logs, as tabelas de todas as fontes estarão visíveis.

  1. Carregando consultas pré-criadas: selecione Logs no menu do seu recurso. O Log Analytics é aberto com a janela Consultas, que inclui consultas pré-criadas para o seu tipo de recurso. Navegue pelas consultas disponíveis. Identifique aquele a ser executado e selecione Executar. A consulta é adicionada à janela de consulta e os resultados são retornados.

  2. Escrever consultas no Editor de consultas: Você pode copiar, colar e editar as seguintes consultas ou escrever as suas próprias consultas no KQL no Editor de Consultas do seu espaço de trabalho do Log Analytics.

Consultas de Exemplo

Esta consulta retorna todos os logs de fluxo de ar que são de nível ERROR. Você pode filtrar os resultados adicionando (sem comentários) a cláusula where para o nome da instância do Azure Data Manager for Energy e a ID de correlação para seu DAG é executado.


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

Esta consulta lista todas as execuções do DAG e suas IDs de correlação correspondentes no recurso mencionado do Azure Data Manager for Energy.


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

Adicionamos documento para ajudá-lo a solucionar problemas do seu processo de ingestão de manifesto usando os logs de fluxo de ar coletados em seu espaço de trabalho do Log Analytics.

Próximos passos

Agora que você está coletando logs de recursos, crie um alerta de consulta de log para ser notificado proativamente quando dados interessantes forem identificados em seus dados de log.