Monitorar os Hubs de Eventos do Azure

Quando você tem aplicativos e processos de negócios críticos que dependem de recursos do Azure, recomendamos monitorar a disponibilidade, o desempenho e a operação desses recursos. Este artigo descreve os dados de monitoramento gerados pelos Hubs de Eventos do Azure e como analisar e alertar esses dados com o Azure Monitor.

O que é o Azure Monitor?

Os Hubs de Eventos do Azure criam dados de monitoramento usando o Azure Monitor, que é um serviço de monitoramento de pilha completo no Azure. O Azure Monitor oferece um conjunto completo de recursos para monitorar os recursos do Azure. Ele também pode monitorar recursos em outras nuvens e locais.

Comece com o artigo Como monitorar os recursos do Azure com o Azure Monitor, que descreve os seguintes conceitos:

  • O que é o Azure Monitor?
  • Custos associados ao monitoramento
  • Monitoramento de dados coletados no Azure
  • Configuração de coleta de dados
  • Ferramentas padrão no Azure para analisar e alertar sobre dados de monitoramento

As seções a seguir se baseiam neste artigo para descrever os dados específicos coletados dos Hubs de Eventos do Azure. Essas seções também fornecem exemplos para configurar a coleta de dados e analisar esses dados com as ferramentas do Azure.

Dica

Para entender os custos associados ao Azure Monitor, consulte o Custo e o uso do Azure Monitor. Para entender o tempo que leva para que os dados apareçam no Azure Monitor, veja Tempo de ingestão de dados de log.

Monitorar dados dos Hubs de Eventos do Azure

Os Hubs de Eventos do Azure coletam os mesmos tipos de dados de monitoramento que outros recursos do Azure descritos em Monitorar dados de recursos do Azure.

Confira Referência de dados de monitoramento dos Hubs de Eventos do Azure para obter uma referência detalhada dos logs e métricas criados pelos Hubs de Eventos do Azure.

Coleta e roteamento

As métricas de plataforma e o log de atividades são coletados e armazenados automaticamente, mas podem ser roteados para outras localizações usando uma configuração de diagnóstico.

Os Logs de recursos não são coletados e armazenados até você criar uma configuração de diagnóstico e roteá-los para uma ou mais localizações.

Confira Criar uma configuração de diagnóstico para coletar logs e métricas de plataforma no Azure para obter o processo detalhado de criação de uma configuração de diagnóstico usando o portal do Azure, a CLI ou o PowerShell. Ao criar uma configuração de diagnóstico, você especifica quais categorias de logs coletar. As categorias para Hubs de Eventos do Azure são listadas em Referência de dados de monitoramento dos Hubs de Eventos do Azure.

Observação

O Azure Monitor não inclui dimensões nos dados de métrica exportados enviados a um destino (como Armazenamento do Azure, Hubs de Eventos do Azure, Log Analytics etc).

Armazenamento do Azure

Se você usar o Armazenamento do Azure para armazenar as informações de log de diagnóstico, as informações são armazenadas em contêineres chamados insights-logs-operationlogs e insights-metrics-pt1m. URL de exemplo de um log de operações: https://<Azure Storage account>.blob.core.windows.net/insights-logs-operationallogs/resourceId=/SUBSCRIPTIONS/<Azure subscription ID>/RESOURCEGROUPS/<Resource group name>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<Namespace name>/y=<YEAR>/m=<MONTH-NUMBER>/d=<DAY-NUMBER>/h=<HOUR>/m=<MINUTE>/PT1H.json. A URL de um log de métrica é semelhante.

Hubs de eventos do Azure

Se você usar os Hubs de Eventos do Azure para armazenar as informações de log de diagnósticos, as informações serão armazenadas em instâncias dos Hubs de Eventos chamadas insights-logs-operationlogs e insights-metrics-pt1m. Você também poderá selecionar um hub de eventos existente, exceto o hub de eventos para o qual você estiver definindo as configurações de diagnóstico.

Log Analytics

Se você usar o Log Analytics para armazenar as informações de log de diagnóstico, elas serão armazenadas em tabelas chamadas AzureDiagnostics / AzureMetrics ou tabelas específicas do recurso

Importante

A habilitação dessas configurações requer serviços adicionais do Azure (conta de armazenamento, hub de eventos ou o Log Analytics), o que pode aumentar o custo. Para calcular um custo estimado, acesse a Calculadora de preços do Azure.

Observação

Quando você habilita as métricas em uma configuração de diagnóstico, as informações de dimensão não são incluídas atualmente como parte das informações enviadas para uma conta de armazenamento, hub de eventos ou o Log Analytics.

As métricas e os logs que você pode coletar são discutidos nas seções a seguir.

Analisar métricas

Você pode analisar métricas dos Hubs de Eventos do Azure juntamente com métricas de outros serviços do Azure selecionando Métricas na seção Azure Monitor, na home page do namespace dos Hubs de Eventos. Consulte Análise de métricas com o explorador de métricas do Azure Monitor para obter detalhes sobre como usar essa ferramenta. Para obter uma lista das métricas de plataforma coletadas, confira Monitoramento das métricas de referência de dados dos Hubs de Eventos do Azure.

Captura de tela mostrando o Metrics Explorer para um namespace dos Hubs de Eventos.

Para referência, você pode ver uma lista de todas as métricas de recurso com suporte no Azure Monitor.

Dica

Os dados de métricas do Azure Monitor estão disponíveis por 90 dias. No entanto, ao criar gráficos somente 30 dias podem ser visualizados. Por exemplo, se você quiser visualizar um período de 90 dias, deverá dividi-lo em três gráficos de 30 dias dentro do período de 90 dias.

Filtrar e dividir

Para métricas que dão suporte a dimensões, você pode aplicar filtros usando um valor de dimensão. Por exemplo, adicione um filtro com EntityName definido como o nome de um hub de eventos. Você pode dividir uma métrica por dimensão para visualizar como se comparam os segmentos diferentes da métrica. Para obter mais informações sobre filtragem e divisão, veja Recursos avançados do Azure Monitor.

Captura de tela mostrando o Metrics Explorer para um namespace dos Hubs de Eventos com um filtro.

Analisar logs

Usar o Log Analytics do Azure Monitor exige que você crie uma configuração de diagnóstico e habilite Enviar informações para o Log Analytics. Para obter mais informações, veja a seção sobre Coleta e rota. Os dados em logs do Azure Monitor são armazenados em tabelas, cada uma com o próprio conjunto de propriedades exclusivas. Os Hubs de Eventos do Azure armazenam dados nas seguintes tabelas: AzureDiagnostics e AzureMetrics.

Importante

Quando você seleciona Logs no menu dos Hubs de Eventos do Azure, o Log Analytics é aberto com o escopo de consulta definido para o workspace atual. Isso significa que as consultas de log incluirão apenas os dados desse recurso. Se você quiser executar uma consulta que inclua dados de outros bancos de dados ou de outros serviços do Azure, selecione Logs no menu Azure Monitor. Confira Escopo da consulta de log e intervalo de tempo no Log Analytics do Azure Monitor para obter detalhes.

Para obter uma referência detalhada dos logs e das métricas, confira Referência de dados de monitoramento dos Hubs de Eventos do Azure.

Consultas de exemplo do Kusto

Importante

Quando você seleciona Logs no menu dos Hubs de Eventos do Azure, o Log Analytics é aberto com o escopo de consulta definido para o namespace atual dos Hubs de Eventos do Azure. Isso significa que as consultas de log incluirão apenas os dados desse recurso. Se quiser executar uma consulta que inclua dados de outros espaços de trabalho ou dados de outros serviços do Azure, selecione Logs no menu do Azure Monitor. Confira Escopo da consulta de log e intervalo de tempo no Log Analytics do Azure Monitor para obter detalhes.

Veja os seguintes exemplos de consultas, que podem ser usadas para ajudar você a monitorar os recursos dos Hubs de Eventos do Azure:

  • Obter erros dos últimos sete dias

    AzureDiagnostics
    | where TimeGenerated > ago(7d)
    | where ResourceProvider =="MICROSOFT.EVENTHUB"
    | where Category == "OperationalLogs"
    | summarize count() by "EventName"
    
    
  • Obter logs de auditoria de runtime gerados na última hora.

    AzureDiagnostics
    | where TimeGenerated > ago(1h)
    | where ResourceProvider =="MICROSOFT.EVENTHUB"
    | where Category == "RuntimeAuditLogs"    
    
  • Obter tentativas de acesso a um cofre de chaves que resultou no erro "chave não encontrada".

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB" 
    | where Category == "Error" and OperationName == "wrapkey"
    | project Message
    
  • Obter operações executadas com um cofre de chaves para desabilitar ou restaurar a chave.

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB"
    | where Category == "info" and OperationName == "disable" or OperationName == "restore"
    | project Message
    
  • Obter falhas de captura e as respectivas durações em segundos

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB"
    | where Category == "ArchiveLogs"
    | summarize count() by "failures", "durationInSeconds"    
    

Usar logs de runtime

Os Hubs de Eventos do Azure permitem monitorar e auditar interações do plano de dados de seus aplicativos cliente usando logs de auditoria de runtime e logs de métricas de aplicativo.

Usando logs de auditoria do Runtime, você pode capturar informações de diagnóstico agregadas para todas as operações de acesso do plano de dados, como publicar ou consumir eventos. Os logs de métricas do aplicativo capturam os dados agregados em determinadas métricas de runtime (como atraso do consumidor e conexões ativas) relacionadas a aplicativos cliente conectados aos Hubs de Eventos.

Observação

Os logs de auditoria de runtime estão disponíveis apenas nas camadas Premium e dedicadas.

Habilitar logs de runtime

Você pode habilitar logs de auditoria de runtime ou logs de métricas de aplicativo selecionando as Configurações de diagnóstico na seção Monitoramento na página de namespace dos Hubs de Eventos em portal do Azure. Selecione Adicionar configuração de diagnóstico, conforme mostrado na captura de tela a seguir.

Captura de tela que mostra a página configurações de diagnóstico para um namespace dos Hubs de Eventos.

Em seguida, você pode habilitar as categorias de log RuntimeAuditLogs ou ApplicationMetricsLogs, conforme necessário.

Captura de tela que mostra a auditoria de runtime e os logs de métrica do aplicativo habilitados.

Depois que os logs de runtime estiverem habilitados, os Hubs de Eventos começarão a colecioná-los e armazená-los de acordo com a configuração de diagnóstico.

Publicar e consumir dados de exemplo

Para coletar logs de auditoria de runtime de amostra no namespace dos Hubs de Eventos, você pode publicar e consumir dados de amostra usando aplicativos cliente baseados no SDK dos Hubs de Eventos que usa Advanced Message Queuing Protocol (AMQP) ou usando qualquer aplicativo cliente do Apache Kafka.

Analisar logs de auditoria de runtime

Você pode analisar os logs de auditoria de runtime coletados usando a consulta de exemplo a seguir.

AzureDiagnostics
| where TimeGenerated > ago(1h)
| where ResourceProvider == "MICROSOFT.EVENTHUB"
| where Category == "RuntimeAuditLogs"

Acima da execução da consulta, você poderá obter os logs de auditoria correspondentes no formato a seguir. Imagem mostrando o resultado de uma consulta de exemplo para analisar logs de auditoria de runtime.

Ao analisar esses logs, você poderá auditar como cada aplicativo cliente interage com os Hubs de Eventos. Cada campo associado a logs de auditoria de runtime são definidos na referência de logs de auditoria de runtime.

Analise as métricas do aplicativo

Você pode analisar os logs de métricas do aplicativo coletados usando a consulta de exemplo a seguir.

AzureDiagnostics
| where TimeGenerated > ago(1h)
| where Category == "ApplicationMetricsLogs"

As métricas do aplicativo incluem as seguintes métricas de runtime. Imagem mostrando o resultado de uma consulta de exemplo para analisar métricas do aplicativo.

Portanto, você pode usar métricas de aplicativo para monitorar métricas de runtime, como atraso do consumidor ou conexão ativa de um determinado aplicativo cliente. Cada campo associado aos logs de auditoria de runtime são definidos na referência de logs de métricas do aplicativo.

Alertas

Você pode acessar alertas dos Hubs de Eventos do Azure selecionando Alertas na seção Azure Monitor da home page do namespace dos Hubs de Eventos. Veja Criar, exibir e gerenciar alertas de métricas usando o Azure Monitor para obter detalhes sobre como criar alertas.

Próximas etapas