Monitorar Hubs de Eventos do Azure

Quando tem aplicações críticas e processos de negócio que dependem dos recursos do Azure, deverá querer monitorizar esses recursos quanto à disponibilidade, ao desempenho e à operação. 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 monitorização com o Azure Monitor, que é um serviço de monitorização de pilha completa no Azure. O Azure Monitor proporciona um conjunto completo de funcionalidades que pode utilizar para monitorizar os recursos do Azure. Este conjunto de funcionalidades também pode monitorizar recursos noutras clouds e no local.

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

  • O que é o Azure Monitor?
  • Custos associados à monitorização
  • Dados de monitorização recolhidos no Azure
  • Configurando a 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 descrevendo os dados específicos coletados para os 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.

Gorjeta

Para compreender os custos associados ao Azure Monitor, consulte Custo e utilização do Azure Monitor. Para entender o tempo que leva para seus dados aparecerem no Azure Monitor, consulte Registrar o tempo de ingestão de dados.

Monitorando dados de Hubs de Eventos do Azure

Os Hubs de Eventos do Azure recolhem os mesmos tipos de dados de monitorização que outros recursos do Azure descritos em Monitorização de dados dos recursos do Azure.

Consulte 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.

Recolha e encaminhamento

As métricas de plataforma e o registo de atividades são recolhidos e armazenados automaticamente, mas podem ser encaminhados para outras localizações através de uma definição de diagnóstico.

Os Registos de Recursos não são recolhidos e armazenados até que crie uma definição de diagnóstico e os encaminhe para uma ou mais localizações.

Veja Criar uma definição de diagnóstico para recolher registos e métricas da plataforma no Azure para ficar a conhecer o processo detalhado de criação de uma definição de diagnóstico com o portal do Azure, a CLI ou o PowerShell. Ao criar uma definição de diagnóstico, especifica as categorias de registos que devem ser recolhidas. As categorias para Hubs de Eventos do Azure estão listadas na referência de dados de monitoramento dos Hubs de Eventos do Azure.

Nota

O Azure Monitor não inclui dimensões nos dados de métricas exportados, que são enviados para um destino como o Armazenamento do Azure, Hubs de Eventos do Azure, Análise de Log, etc.

Armazenamento do Azure

Se você usar o Armazenamento do Azure para armazenar as informações de log de diagnóstico, as informações serão armazenadas em contêineres chamados insights-logs-operationlogs e insights-metrics-pt1m. URL de exemplo para um log de operação: 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étricas é semelhante.

Hubs de Eventos do Azure

Se você usar os Hubs de Eventos do Azure para armazenar as informações de log de diagnóstico, as informações serão armazenadas em instâncias de Hubs de Eventos chamadas insights-logs-operationlogs e insights-metrics-pt1m. Você também pode selecionar um hub de eventos existente, exceto o hub de eventos para o qual você está 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, as informações serão armazenadas em tabelas chamadas AzureDiagnostics AzureMetrics ou tabelas específicas de / recursos

Importante

Habilitar essas configurações requer serviços adicionais do Azure (conta de armazenamento, hub de eventos ou Log Analytics), o que pode aumentar seu custo. Para calcular um custo estimado, aceda à calculadora de preços do Azure.

Nota

Quando você habilita 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 análise de log.

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

Analise métricas

Pode analisar métricas para os Hubs de Eventos do Azure, juntamente com métricas de outros serviços do Azure, ao selecionar Métricas na secção Azure Monitor na home page do seu espaço de nomes dos Hubs de Eventos. Consulte Analisar 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, consulte Monitorando métricas de referência de dados dos Hubs de Eventos do Azure.

Captura de tela mostrando o Gerenciador de Métricas para um namespace de Hubs de Eventos.

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

Gorjeta

Os dados de métricas do Azure Monitor estão disponíveis por 90 dias. No entanto, ao criar gráficos, apenas 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 suportam dimensões, você pode aplicar filtros usando um valor de dimensão. Por exemplo, adicione um filtro com EntityName set para o nome de um hub de eventos. Você também pode dividir uma métrica por dimensão para visualizar como diferentes segmentos da métrica se comparam entre si. Para obter mais informações sobre filtragem e divisão, consulte Recursos avançados do Azure Monitor.

Captura de tela mostrando o Gerenciador de Métricas para um namespace de Hubs de Eventos com um filtro.

Analisar registos

Usar o Azure Monitor Log Analytics exige que você crie uma configuração de diagnóstico e habilite Enviar informações para o Log Analytics. Para obter mais informações, consulte a seção Coleta e roteamento . Os dados nos Logs do Azure Monitor são armazenados em tabelas, com cada tabela tendo seu próprio conjunto de propriedades exclusivas. Os Hubs de Eventos do Azure têm a capacidade de enviar logs para qualquer uma das duas tabelas de destino - Diagnóstico do Azure ou Tabelas específicas de recursos no Log Analytics.Para obter uma referência detalhada dos logs e métricas, consulte Referência de dados de monitoramento dos Hubs de Eventos do Azure.

Importante

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

Exemplos de consultas Kusto

Importante

Quando você seleciona Logs no menu Hubs de Eventos do Azure, o Log Analytics é aberto com o escopo da consulta definido para o namespace atual dos Hubs de Eventos do Azure. Isso significa que as consultas de log incluirão apenas 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 Azure Monitor . Consulte Escopo e intervalo de tempo da consulta de log no Azure Monitor Log Analytics para obter detalhes.

A seguir estão exemplos de consultas que você pode usar para ajudá-lo a monitorar seus recursos de 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"
    
    
  • Obtenha logs de auditoria de tempo de execução gerados na última hora.

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

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

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB"
    | where Category == "info" and OperationName == "disable" or OperationName == "restore"
    | project Message
    
  • Obtenha falhas de captura e sua duração em segundos

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

Usar logs de tempo de execução

Os Hubs de Eventos do Azure permitem monitorar e auditar as interações do plano de dados de seus aplicativos cliente usando logs de auditoria de tempo de execução e logs de métricas de aplicativos.

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

Nota

Os logs de auditoria de tempo de execução estão disponíveis apenas em camadas premium e dedicada .

Habilitar logs de tempo de execução

Você pode habilitar a auditoria de tempo de execução ou o log de métricas de aplicativo selecionando Configurações de diagnóstico na seção Monitoramento na página de namespace Hubs de Eventos no portal do Azure. Selecione Adicionar configuração de diagnóstico, conforme mostrado na imagem a seguir.

Captura de tela que mostra a página Configurações de diagnóstico para um namespace de 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 tempo de execução e os logs de métricas do aplicativo habilitados.

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

Publicar e consumir dados de exemplo

Para coletar logs de auditoria de tempo de execução de exemplo em seu namespace de Hubs de Eventos, você pode publicar e consumir dados de exemplo usando aplicativos cliente, que são baseados no SDK de Hubs de Eventos, que usa o protocolo AMQP (Advanced Message Queuing Protocol) ou usando qualquer aplicativo cliente Apache Kafka.

Analisar logs de auditoria de tempo de execução

Você pode analisar os logs de auditoria de tempo de execução coletados usando a consulta de exemplo a seguir.

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

Na execução da consulta, você deve ser capaz de obter os logs de auditoria correspondentes no seguinte formato. Imagem mostrando o resultado de uma consulta de exemplo para analisar logs de auditoria de tempo de execução.

Ao analisar esses logs, você deve ser capaz de auditar como cada aplicativo cliente interage com Hubs de Eventos. Cada campo associado aos logs de auditoria de tempo de execução é definido na referência de logs de auditoria de tempo de execução.

Analise métricas de aplicativos

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 de aplicativo incluem as seguintes métricas de tempo de execução. Imagem mostrando o resultado de uma consulta de exemplo para analisar métricas de aplicativos.

Portanto, você pode usar métricas de aplicativo para monitorar métricas de tempo de execução, como atraso do consumidor ou conexão ativa de um determinado aplicativo cliente. Os campos associados aos logs de auditoria de tempo de execução são definidos na referência de logs de métricas do aplicativo.

Alertas

Você pode acessar alertas para Hubs de Eventos do Azure selecionando Alertas na seção Monitor do Azure na home page do namespace Hubs de Eventos. Veja Criar, ver e gerir alertas de métricas com o Azure Monitor para obter detalhes acerca da criação de alertas.

Próximos passos