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:
Abra a página Visão geral do Microsoft Azure Data Manager for Energy
Selecione Configurações de diagnóstico no painel esquerdo
Selecione Adicionar configuração de diagnóstico
Selecione Logs de tarefas de fluxo de ar em Logs
Selecione Arquivar em uma conta de armazenamento
Verifique a assinatura e a conta de armazenamento na qual você deseja arquivar os logs.
Navegue pela conta de armazenamento para baixar os registros de fluxo de ar
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.
Navegue pelos Contêineres, disponíveis no painel esquerdo.
Abra o painel de informações à direita. Ele contém um botão "download" para salvar o arquivo de log localmente.
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.
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.
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.
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.