Enviar dados da extensão de diagnóstico do Windows Azure para os Hubs de Eventos do Azure

A extensão de diagnóstico do Azure é um agente no Azure Monitor que coleta dados de monitoramento do sistema operacional convidado e cargas de trabalho de máquinas virtuais do Azure e outros recursos de computação. Este artigo descreve como enviar dados da extensão de Diagnóstico do Windows Azure (WAD) para Hubs de Eventos do Azure para que você possa encaminhá-los para fora do Azure.

Tipos de dados compatíveis

Os dados coletados do sistema operacional convidado que podem ser enviados aos Hubs de Eventos incluem o seguinte. Outras fontes de dados coletadas pelo WAD, incluindo logs dos IIS e despejos de memória, não podem ser enviadas para os Hubs de Eventos.

  • Eventos de ETW (Rastreamento de Eventos para Windows)
  • Contadores de desempenho
  • Logs de eventos do Windows, incluindo logs de aplicativos no log de eventos do Windows
  • Logs de infraestrutura do Diagnóstico do Azure

Pré-requisitos

Esquema de configuração

Confira Instalar e configurar a extensão de Diagnóstico do Windows Azure (WAD) para obter diferentes opções para habilitar e configurar a extensão de diagnóstico e o esquema de configuração do Diagnóstico do Azure para uma referência do esquema de configuração. O restante deste artigo descreve como usar essa configuração para enviar dados para um hub de eventos.

O Diagnóstico do Azure sempre envia logs e métricas para uma conta de Armazenamento do Microsoft Azure. Você pode configurar um ou mais coletores de dados que enviam dados para locais adicionais. Cada coletor é definido no elemento SinksConfig da configuração pública com informações confidenciais na configuração particular. Essa configuração dos hubs de eventos usa os valores na tabela a seguir.

Propriedade Descrição
Nome Nome descritivo para o coletor. Usado na configuração para especificar quais fontes de dados enviar ao coletor.
Url URL do hub de eventos no formato <namespace-dos-hubs-de-eventos>.servicebus.windows.net/<nome-do-hub-de-eventos>.
SharedAccessKeyName Nome de uma política de acesso compartilhada para o hub de eventos que tem pelo menos a autoridade de Envio.
SharedAccessKey Chave primária ou secundária da política de acesso compartilhada para o hub de eventos.

As configurações públicas e particulares de exemplo são mostradas abaixo. Essa é uma configuração mínima com um único contador de desempenho e log de eventos para ilustrar como configurar e usar o coletor de dados do hub de eventos. Confira Esquema de configuração de Diagnóstico do Azure para obter um exemplo mais complexo.

Configuração pública

{
    "WadCfg": {
        "DiagnosticMonitorConfiguration": {
            "overallQuotaInMB": 5120,
            "PerformanceCounters": {
                "scheduledTransferPeriod": "PT1M",
                "sinks": "myEventHub",
                "PerformanceCounterConfiguration": [
                    {
                        "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
                        "sampleRate": "PT3M"
                    }
                ]
            },
            "WindowsEventLog": {
                "scheduledTransferPeriod": "PT1M",
                "sinks": "myEventHub",
                    "DataSource": [
                    {
                        "name": "Application!*[System[(Level=1 or Level=2 or Level=3)]]"
                    }
                ]
            }
        },
        "SinksConfig": {
            "Sink": [
                {
                    "name": "myEventHub",
                    "EventHub": {
                        "Url": "https://diags-mycompany-ns.servicebus.windows.net/diageventhub",
                        "SharedAccessKeyName": "SendRule"
                    }
                }
            ]
        }
    },
    "StorageAccount": "mystorageaccount",
}

Configuração privada

{
    "storageAccountName": "mystorageaccount",
    "storageAccountKey": "{base64 encoded key}",
    "storageAccountEndPoint": "https://core.windows.net",
    "EventHub": {
        "Url": "https://diags-mycompany-ns.servicebus.windows.net/diageventhub",
        "SharedAccessKeyName": "SendRule",
        "SharedAccessKey": "{base64 encoded key}"
    }
}

Opções de configuração

Para enviar dados para um coletor de dados, especifique o atributo sinks no nó da fonte de dados. O local do atributo sinks determina o escopo da atribuição. No exemplo a seguir, o atributo sinks é definido para o nó PerformanceCounters, que fará com que todos os contadores de desempenho filhos sejam enviados ao hub de eventos.

"PerformanceCounters": {
    "scheduledTransferPeriod": "PT1M",
    "sinks": "MyEventHub",
    "PerformanceCounterConfiguration": [
        {
            "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\Memory\\Available MBytes",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\Web Service(_Total)\\ISAPI Extension Requests/sec",
            "sampleRate": "PT3M"
        }
    ]
}

No exemplo a seguir, o atributo sinks é aplicado diretamente aos três contadores, o que fará com que apenas esses contadores de desempenho sejam enviados ao hub de eventos.

"PerformanceCounters": {
    "scheduledTransferPeriod": "PT1M",
    "PerformanceCounterConfiguration": [
        {
            "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
            "sampleRate": "PT3M",
            "sinks": "MyEventHub"
        },
        {
            "counterSpecifier": "\\Memory\\Available MBytes",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\Web Service(_Total)\\ISAPI Extension Requests/sec",
            "sampleRate": "PT3M"
        },
        {
            "counterSpecifier": "\\ASP.NET\\Requests Rejected",
            "sampleRate": "PT3M",
            "sinks": "MyEventHub"
        },
        {
            "counterSpecifier": "\\ASP.NET\\Requests Queued",
            "sampleRate": "PT3M",
            "sinks": "MyEventHub"
        }
    ]
}

Validação da configuração

Você pode usar diversos métodos para validar que os dados estão sendo enviados ao hub de eventos. Um método simples é usar a captura dos Hubs de Eventos conforme descrito em Capturar eventos por meio dos Hubs de Eventos do Azure no Armazenamento de Blobs do Azure ou no Azure Data Lake Storage.

Solucionar problemas dos coletores dos Hubs de Eventos

  • Examine a tabela do Armazenamento do Microsoft Azure WADDiagnosticInfrastructureLogsTable que contém logs e erros do próprio Diagnóstico do Azure. Uma opção é usar uma ferramenta, como o Gerenciador de Armazenamento do Azure , para se conectar a essa conta de armazenamento, exibir essa tabela e adicionar uma consulta por carimbo de data/hora nas últimas 24 horas. Você pode usar a ferramenta para exportar um arquivo .csv e abri-lo em um aplicativo, como o Microsoft Excel. O Excel facilita a pesquisa de cadeias de caracteres de cartão, como EventHubs, para ver qual erro é relatado.

  • Verifique se o seu hub de eventos foi provisionado com êxito. Todas as informações de conexão na seção PrivateConfig devem corresponder aos valores de seu recurso, como visto no portal. Verifique se você tem uma política SAS definida (SendRule, no exemplo) no portal e se a permissão de Envio foi concedida.

Próximas etapas