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

A extensão de diagnóstico do Azure é um agente no Azure Monitor que recolhe dados de monitorização do sistema operativo 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 possa reencaminhar para localizações fora do Azure.

Dados suportados

Os dados recolhidos do sistema operativo convidado que podem ser enviados para os Hubs de Eventos incluem o seguinte. Outras origens de dados recolhidas pelo WAD, incluindo registos do IIS e informações de falha de sistema, não podem ser enviadas para os Hubs de Eventos.

  • Eventos de Rastreio de Eventos para o Windows (ETW)
  • Contadores de desempenho
  • Registos de eventos do Windows, incluindo registos de aplicações no registo de eventos do Windows
  • Registos da infraestrutura do Diagnóstico do Azure

Pré-requisitos

Esquema de configuração

Veja Instalar e configurar a extensão de diagnóstico do Windows Azure (WAD) para obter diferentes opções para ativar e configurar a extensão de diagnóstico e Diagnóstico do Azure esquema de configuração para uma referência do esquema de configuração. O resto deste artigo irá descrever como utilizar esta configuração para enviar dados para um hub de eventos.

Diagnóstico do Azure envia sempre registos e métricas para uma conta de Armazenamento do Azure. Pode configurar um ou mais sinks de dados que enviam dados para localizações adicionais. Cada sink é definido no elemento SinksConfig da configuração pública com informações confidenciais na configuração privada. Esta configuração para hubs de eventos utiliza os valores na tabela seguinte.

Propriedade Descrição
Nome Nome descritivo para o sink. Utilizado na configuração para especificar as origens de dados a enviar para o sink.
Url Url do hub de eventos no formulário <event-hubs-namespace.servicebus.windows.net/>< event-hub-name>.
SharedAccessKeyName Nome de uma política de acesso partilhado para o hub de eventos que tem, pelo menos , Autoridade de envio .
SharedAccessKey Chave primária ou secundária da política de acesso partilhado do hub de eventos.

As configurações públicas e privadas de exemplo são apresentadas abaixo. Esta é uma configuração mínima com um único contador de desempenho e registo de eventos para ilustrar como configurar e utilizar o sink de dados do hub de eventos. Veja Diagnóstico do Azure esquema de configuração 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 sink de dados, especifique o atributo sinks no nó da origem de dados. Onde coloca o atributo sinks determina o âmbito da atribuição. No exemplo seguinte, o atributo sinks é definido para o nó PerformanceCounters , o que fará com que todos os contadores de desempenho subordinados sejam enviados para o 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 seguinte, o atributo sinks é aplicado diretamente a três contadores, o que fará com que apenas esses contadores de desempenho sejam enviados para o 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"
        }
    ]
}

Validar a configuração

Pode utilizar uma variedade de métodos para validar que os dados estão a ser enviados para o hub de eventos. Um método simples é utilizar a captura dos Hubs de Eventos conforme descrito em Capturar eventos através de Hubs de Eventos do Azure em Armazenamento de Blobs do Azure ou Azure Data Lake Storage.

Resolver problemas de sinks dos Hubs de Eventos

  • Veja a tabela de Armazenamento do Azure WADDiagnosticInfrastructureLogsTable que contém registos e erros para Diagnóstico do Azure em si. Uma opção é utilizar uma ferramenta como Explorador de Armazenamento do Azure para ligar a esta conta de armazenamento, ver esta tabela e adicionar uma consulta para TimeStamp nas últimas 24 horas. Pode utilizar a ferramenta para exportar um ficheiro .csv e abri-lo numa aplicação como o Microsoft Excel. O Excel facilita a pesquisa de cadeias de cartões de chamada, como o EventHubs, para ver que erro é comunicado.

  • Verifique se o hub de eventos foi aprovisionado com êxito. Todas as informações de ligação na secção PrivateConfig da configuração têm de corresponder aos valores do recurso, conforme visto no portal. Certifique-se de que tem uma política SAS definida (SendRule no exemplo) no portal e que a permissão Enviar é concedida.

Passos seguintes