Monitorar e solucionar problemas de coleta de dados DCR no Azure Monitor

Este artigo fornece métricas e logs detalhados que você pode usar para monitorar o desempenho e solucionar quaisquer problemas relacionados à coleta de dados no Azure Monitor. Essa telemetria está atualmente disponível para cenários de coleta de dados definidos por uma DCR (regras de coleta de dados), como o agente do Azure Monitor e a API de ingestão de Logs.

Importante

Este artigo refere-se apenas a cenários de coleta de dados que usam DCRs, incluindo o seguinte:

Consulte a documentação para obter outros cenários para obter informações de monitoramento e solução de problemas que possam estar disponíveis.

Os recursos de diagnóstico DCR incluem métricas e logs de erros emitidos durante o processamento de logs. As métricas DCR fornecem informações sobre o volume de dados que estão sendo ingeridos, o número e a natureza de quaisquer erros de processamento e estatísticas relacionadas à transformação de dados. Os logs de erro DCR são gerados sempre que o processamento de dados não é bem-sucedido e os dados não chegam ao seu destino.

Logs de erro DCR

Os logs de erro são gerados quando os dados chegam ao pipeline de ingestão do Azure Monitor, mas não chegam ao seu destino. Exemplos de condições de erro incluem:

  • Erros de entrega de log
  • Erros de transformação em que a estrutura dos logs torna o KQL de transformação inválido
  • Registrar chamadas de API de ingestão:
    • com qualquer resposta HTTP diferente de 200/202
    • com carga útil contendo dados malformados
    • com carga útil acima de quaisquer limites de ingestão
    • limitação devido ao excesso de limites de chamada de API

Para evitar o registro excessivo de erros persistentes relacionados ao mesmo fluxo de dados, alguns erros serão registrados apenas um número limitado de vezes a cada hora, seguido por uma mensagem de erro resumida. O erro é então silenciado até o final da hora. O número de vezes que um determinado erro é registrado pode variar dependendo da região onde o DCR é implantado.

Alguns erros de ingestão de log não serão registrados porque não podem ser associados a um DCR. Os seguintes erros não podem ser registrados:

  • Falhas causadas por URI de chamada malformado (código de resposta HTTP 404)
  • Certos erros internos do servidor (código de resposta HTTP 500)

Ativar logs de erro DCR

Os logs de erro DCR são implementados como logs de recursos no Azure Monitor. Habilite a coleta de logs criando uma configuração de diagnóstico para o DCR. Cada DCR exigirá sua própria configuração de diagnóstico. Consulte Criar configurações de diagnóstico no Azure Monitor para obter o processo detalhado. Selecione a categoria Erros de log e Enviar para o espaço de trabalho do Log Analytics. Talvez você queira selecionar o mesmo espaço de trabalho usado pelo DCR ou consolidar todos os logs de erro em um único espaço de trabalho.

Recuperar logs de erro DCR

Os logs de erros são gravados na tabela DCRLogErrors no espaço de trabalho do Log Analytics especificado na configuração de diagnóstico. A seguir estão exemplos de consultas que você pode usar no Log Analytics para recuperar esses logs.

Recuperar todos os logs de erro de um DCR específico

DCRLogErrors
| where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/microsoft.insights/datacollectionrules/my-dcr"

Recuperar todos os logs de erro de um fluxo de entrada específico em um DCR específico

DCRLogErrors
| where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/microsoft.insights/datacollectionrules/my-dcr"
| where InputStream == "Custom-MyTable_CL"

Métricas DCR

As métricas de DCR são coletadas automaticamente para todos os DCRs, e você pode analisá-las usando o explorador de métricas, como as métricas de plataforma para outros recursos do Azure. O fluxo de entrada é incluído como uma dimensão, portanto, se você tiver um DCR com vários fluxos de entrada, poderá analisar cada um filtrando ou dividindo. Algumas métricas incluem outras dimensões, conforme mostrado na tabela abaixo.

Metric Dimensões Description
Registra bytes de ingestão por min Fluxo de Entrada Número total de bytes recebidos por minuto.
Registra solicitações de ingestão por min Fluxo de entrada
Código de resposta HTTP
Número de chamadas recebidas por minuto
Registra linhas descartadas por min Fluxo de entrada Número de linhas de log descartadas durante o processamento por minuto. Isso inclui linhas descartadas devido a critérios de filtragem na transformação KQL e linhas descartadas devido a erros.
Registra linhas recebidas por min Fluxo de entrada Número de linhas de log recebidas para processamento por minuto.
Duração da Transformação de Logs por Min Fluxo de entrada Tempo médio de execução da transformação KQL por minuto. Representa a eficiência do código de transformação KQL. Os fluxos de dados com maior tempo de execução de transformação podem sofrer atrasos no processamento de dados e maior latência de dados.
Erros de transformação de logs por min Fluxo de entrada
Tipo de erro
Número de erros de processamento encontrados por minuto

Resolução de problemas comuns

Se você estiver faltando dados esperados em seu espaço de trabalho do Log Analytics, siga estas etapas básicas para solucionar o problema. Isso pressupõe que você habilitou o registro em log DCR conforme descrito acima.

  • Verifique métricas como Logs Ingestion Bytes per Min e Logs Rows Received per Min para garantir que os dados estão chegando ao Azure Monitor. Caso contrário, verifique sua fonte de dados para garantir que ela está enviando dados conforme o esperado.
  • Verifique Logs Rows Dropped per Min se alguma linha está sendo descartada. Isso pode não indicar um erro, pois as linhas podem ser descartadas por uma transformação. Se as linhas descartadas forem as mesmas Logs Rows Dropped per Min do que antes, nenhum dado será ingerido no espaço de trabalho. Examine o para ver se há algum erro de Logs Transformation Errors per Min transformação.
  • Verifique Logs Transformation Errors per Min se há erros de transformações aplicadas aos dados recebidos. Isso pode ser devido a mudanças na estrutura de dados ou à própria transformação.
  • Verifique DCRLogErrors se há erros de ingestão que possam ter sido registrados. Isso pode fornecer detalhes adicionais na identificação da causa raiz do problema.

Monitorando sua ingestão de log

Os sinais a seguir podem ser úteis para monitorar a integridade de sua coleção de logs com DCRs. Crie regras de alerta para identificar essas condições.

Sinal Possíveis causas e ações
Novas entradas DCRErrorLogs ou mudança repentina no Log Transform Errors. - Problemas com a configuração da API de Ingestão de Log, como autenticação, acesso a DCR ou DCE, problemas de carga útil de chamadas.
- Alterações na estrutura de dados causando falhas na transformação do KQL.
- Alterações na configuração de destino de dados causando falhas na entrega de dados.
Alteração súbita na Logs Ingestion Bytes per Min - Alterações na configuração de ingestão de log no cliente, incluindo configurações de AMA.
- Alterações na estrutura dos logs enviados.
Alteração súbita da relação entre Logs Ingestion Bytes per Min e Logs Rows Received per Min - Alterações na estrutura dos logs enviados. Examine as alterações para garantir que os dados sejam processados corretamente com a transformação KQL.
Alteração súbita na Logs Transformation Duration per Min - Mudanças na estrutura de logs que afetam a eficiência dos critérios de filtragem de log definidos na transformação KQL. Examine as alterações para garantir que os dados sejam processados corretamente com a transformação KQL.
Logs Ingestion Requests per Min ou Logs Ingestion Bytes per Min aproximando-se dos limites do serviço da API de Ingestão de Log. - Examine e otimize sua configuração DCR para evitar limitação.

Alertas

Em vez de solucionar problemas reativamente, crie regras de alerta para ser notificado proativamente quando ocorrer uma possível condição de erro. A tabela a seguir fornece exemplos de regras de alerta que você pode criar para monitorar sua ingestão de log.

Condição Detalhes do alerta
Mudanças repentinas de linhas caídas Regra de alerta métrico usando um limite dinâmico para Logs Rows Dropped per Min.
Número de chamadas de API que se aproximam dos limites de serviço Regra de alerta métrico usando um limite estático para Logs Ingestion Requests per Min. Defina o limite perto de 12.000, que é o limite de serviço para o máximo de solicitações/minuto por DCR.
Registos de erros Alerta de consulta de log usando DCRLogErrorso . Use uma medida de linhas de tabela e um valor de limite de 1 para ser alertado sempre que algum erro for registrado.

Próximos passos