Partilhar via


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 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 WAD (Diagnóstico do Windows Azure) para Hubs de Eventos do Azure para que você possa encaminhar para locais fora do Azure.

Dados suportados

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

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

Pré-requisitos

  • Extensão de diagnóstico do Windows 1.6 ou superior. Consulte Histórico e versões do esquema de configuração da extensão do Diagnóstico do Azure para obter um histórico de versões e uma visão geral da extensão do Diagnóstico do Azure para obter recursos com suporte.
  • O namespace dos Hubs de Eventos sempre deve ser provisionado. Consulte Introdução aos Hubs de Eventos para obter detalhes.
  • O hub de eventos deve ser, pelo menos, a camada Standard. A camada básica não é suportada.

Esquema de configuração

Consulte 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 obter uma referência do esquema de configuração. O restante deste artigo descreverá 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 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 privada. Essa configuração para hubs de eventos usa os valores na tabela a seguir.

Property Descrição
Name Nome descritivo da pia. Usado na configuração para especificar quais fontes de dados enviar para o coletor.
Url URL do hub de eventos no formato <event-hubs-namespace.servicebus.windows.net/>< event-hub-name>.
SharedAccessKeyName Nome de uma política de acesso compartilhado para o hub de eventos que tenha pelo menos autoridade de envio .
SharedAccessKey Chave primária ou secundária da política de acesso compartilhado para o hub de eventos.

Exemplos de configurações públicas e privadas são mostradas abaixo. Esta é 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. Consulte Esquema de configuração do 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 coletores no nó da fonte de dados. Onde você coloca o atributo sinks determina o escopo da atribuição. No exemplo a seguir, o atributo sinks é definido para o nó PerformanceCounters , o que fará com que todos os contadores de desempenho filho 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 a seguir, 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"
        }
    ]
}

Validando a configuração

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

Solucionar problemas de coletores de Hubs de Eventos

  • Observe a tabela de Armazenamento do Azure WADDiagnosticInfrastructureLogsTable que contém logs e erros para o 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 esta tabela e adicionar uma consulta para TimeStamp nas últimas 24 horas. Você pode usar a ferramenta para exportar um arquivo de .csv e abri-lo em um aplicativo como o Microsoft Excel. O Excel facilita a pesquisa de cadeias de caracteres de cartão de chamada, como EventHubs, para ver qual erro é relatado.

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

Próximos passos