Share via


Como integrar logs do Airflow com o 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 DAG (grafo direcionado acíclico) do Airflow.

Pré-requisitos

  • Um workspace do Log Analytics existente. Ele será usado para consultar os logs do Airflow por meio do editor de consultas KQL (Linguagem de Consulta Kusto) no workspace do Log Analytics. Recurso útil: Criar um workspace do Log Analytics no portal do Azure.

  • Uma conta de armazenamento existente: ela será usada para armazenar despejos JSON de logs do Airflow. A conta de armazenamento não precisa estar na mesma assinatura que o workspace do Log Analytics.

Habilitar as 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 (com tecnologia Apache Airflow). Coletamos logs do Airflow para fins internos de solução de problemas e depuração. Os logs do Airflow podem ser integrados ao Azure Monitor das seguintes maneiras:

  • Conta de armazenamento
  • Espaço de Trabalho do Log Analytics

Para acessar logs por meio de uma das 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 Descrição
Nome Esse é o nome do log de diagnóstico. Verifique se um nome exclusivo está definido para cada log.
Categorias Categoria de logs para enviar a cada um dos destinos. O conjunto de categorias vai variar para cada serviço do Azure. Acesse: Categorias de log de recursos com suporte
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 dos Hubs de Eventos ou um hub de eventos.

Execute as seguintes etapas para configurar as Configurações de Diagnóstico:

  1. Página Visão geral do Gerenciador de Dados do Microsoft Azure para Energia

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

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

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

  4. Selecione Logs de Tarefas do Airflow em Logs

  5. Selecione Arquivar em uma conta de armazenamento

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

  6. Verifique a assinatura e a conta de armazenamento em que você deseja arquivar os logs.

Depois que uma configuração de diagnóstico for criada para arquivar 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. Depois, poderá usar o "Navegador de Armazenamento" no painel esquerdo para encontrar à direita o arquivo JSON que deseja investigar. A navegação entre diretórios diferentes é intuitiva, pois você passa de um ano para um mês e depois para um dia.

  1. Navegue nos 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 "baixar" para salvar o arquivo de log localmente.

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

Habilitar as configurações de diagnóstico para integrar logs ao workspace do Log Analytics

Você pode integrar os logs do Airflow ao Log Analytics Workspace usando 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 a assinatura & Log Analytics Workspace com a qual integrar.

Trabalhar com os logs do Airflow integrados ao workspace do Log Analytics

Use KQL (Linguagem de Consulta Kusto) para recuperar os dados desejados nos logs do Airflow coletados do workspace do Log Analytics. Você pode carregar as consultas de exemplo pré-criadas no seu Espaço de Trabalho do Log Analytics ou criar suas próprias consultas.

Captura de tela da página do Log Analytics do Azure Monitor para exibir os logs coletados. No gerenciamento de logs, as tabelas de todas as fontes ficarão visíveis.

  1. Carregando consultas pré-criadas: Selecione Logs no menu do recurso. O Log Analytics é aberto com a janela Consultas, que inclui consultas predefinidas para o tipo de recurso. Navegue pelas consultas disponíveis. Identifique a que será executada e clique em 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 consultas a seguir ou escrever suas próprias consultas no KQL no Editor de Consultas do seu Log Analytics Workspace.

Consultas de amostras

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


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 um documento para ajudar você a solucionar problemas seu processo de ingestão de manifesto usando os logs do Airflow coletados no seu Log Analytics Workspace.

Próximas etapas

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