Instalar e configurar a extensão Diagnóstico do Azure para Windows (WAD)

A extensão 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 fornece informações sobre como instalar e configurar a extensão Diagnóstico do Azure para Windows e descreve como os dados são armazenados em uma conta de Armazenamento do Azure.

A extensão de diagnóstico é implementada como uma extensão de máquina virtual no Azure. Ela dá suporte às mesmas opções de instalação usando modelos do Resource Manager do Azure, o PowerShell e a CLI do Azure. Para saber como instalar e manter extensões de máquina virtual, consulte Extensões e recursos da máquina virtual para Windows.

Visão geral

Quando você configura a extensão Diagnóstico do Azure para Windows, precisa especificar uma conta de armazenamento na qual todos os dados especificados serão enviados. Opcionalmente, você pode adicionar um ou mais coletores de dados para enviar os dados para locais diferentes:

  • Coletor do Azure Monitor: enviar dados de desempenho do convidado para as métricas do Azure Monitor.
  • Coletor do Hub de Eventos do Azure: enviar dados de log e desempenho de convidado para os hubs de eventos para encaminhar fora do Azure. Esse coletor não pode ser configurado no portal do Azure.

Instalação com o portal do Azure

Você pode instalar e configurar a extensão de diagnóstico em uma máquina virtual individual no portal do Azure. Você trabalhará com uma interface em vez de trabalhar diretamente com a configuração. Quando você habilita a extensão de diagnóstico, usa automaticamente uma configuração padrão com os contadores de desempenho e eventos mais comuns. Você pode modificar esta configuração padrão de acordo com seus requisitos específicos.

Observação

As etapas a seguir descrevem as configurações mais comuns para a extensão de diagnóstico. Para obter mais informações sobre todas as opções de configuração, confira Esquema de extensão de diagnóstico do Windows.

  1. Abra o menu de uma máquina virtual no portal do Azure.

  2. Selecione Configurações de diagnóstico na seção Monitoramento do menu da VM.

  3. Selecione Habilitar monitoramento em nível de convidado se a extensão de diagnóstico ainda não tiver sido habilitada.

    Screenshot that shows enabling monitoring.

  4. Uma conta do Armazenamento do Azure será criada para a VM. O nome será baseado no nome do grupo de recursos da VM. Um conjunto padrão de contadores de desempenho e logs de convidado será selecionado.

    Screenshot that shows Diagnostic settings.

  5. Na guia Contadores de desempenho, selecione as métricas de convidado que você deseja coletar da máquina virtual. Use a configuração Personalizado para uma seleção mais avançada.

    Screenshot that shows Performance counters.

  6. Na guia Logs, selecione os logs a serem coletados da máquina virtual. Os logs podem ser enviados para os hubs de eventos ou armazenamento, mas não para o Azure Monitor. Use o agente de análise de logs para coletar logs de convidado para o Azure Monitor.

    Screenshot that shows the Logs tab with different logs selected for a virtual machine.

  7. Na guia Despejos de memória, especifique todos os processos para coletar os despejos das memórias após uma falha. Os dados serão gravados na conta de armazenamento da configuração de diagnóstico. Opcionalmente, você pode especificar um contêiner de blob.

    Screenshot that shows the Crash dumps tab.

  8. Na guia Coletores, especifique se deseja enviar os dados para locais diferentes do armazenamento do Azure. Se você selecionar Azure Monitor, os dados de desempenho do convidado serão enviados para as métricas do Azure Monitor. Você não pode configurar o coletor dos hubs de eventos usando o portal do Azure.

    Screenshot that shows the Sinks tab with the Send diagnostic data to Azure Monitor option enabled.

    Se você não tiver habilitado uma identidade atribuída ao sistema configurada para sua máquina virtual, poderá ver o aviso a seguir ao salvar uma configuração com o coletor do Azure Monitor. Selecione a faixa para habilitar a identidade atribuída ao sistema.

    Screenshot that shows the managed identity warning.

  9. Na guia Agente, você pode alterar a conta de armazenamento, definir a cota de disco e especificar se os logs de infraestrutura de diagnóstico devem ser coletados.

    Screenshot that shows the Agent tab with the option to set the storage account.

  10. Selecione Salvar para salvar a configuração.

Observação

A configuração da extensão de diagnóstico possa ser formatada em JSON ou XML, mas qualquer configuração feita na portal do Azure sempre será armazenada como JSON. Se você usar XML com outro método de configuração e alterar sua configuração com o portal do Azure, as configurações serão alteradas para JSON. Além disso, não há nenhuma opção para configurar o período de retenção para esses logs.

Modelo do Resource Manager

Para obter informações sobre como implantar a extensão de diagnóstico com modelos do Azure Resource Manager, confira Usar monitoramento e diagnóstico com uma VM do Windows e modelos do Azure Resource Manager.

Implantação da CLI do Azure

A CLI do Azure pode ser usado para implantar a extensão de Diagnóstico do Azure para uma máquina virtual existente usando az vm extension set como no seguinte exemplo:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name IaaSDiagnostics \
  --publisher Microsoft.Azure.Diagnostics \
  --protected-settings protected-settings.json \
  --settings public-settings.json 

As configurações protegidas são definidas no elemento PrivateConfig do esquema de configuração. O exemplo mínimo de um arquivo de configurações protegido a seguir define a conta de armazenamento. Para obter todos os detalhes sobre as configurações privadas, confira Exemplo de configuração.

{
    "storageAccountName": "mystorageaccount",
    "storageAccountKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "storageAccountEndPoint": "https://core.windows.net"
}

As configurações públicas são definidas no elemento Public do esquema de configuração. O exemplo mínimo de um arquivo de configurações públicas a seguir habilita a coleta de logs de infraestrutura de diagnóstico, um único contador de desempenho e um único log de eventos. Confira Exemplo de configuração para obter detalhes completos sobre as configurações públicas.

{
  "StorageAccount": "mystorageaccount",
  "WadCfg": {
    "DiagnosticMonitorConfiguration": {
      "overallQuotaInMB": 5120,
      "PerformanceCounters": {
        "scheduledTransferPeriod": "PT1M",
        "PerformanceCounterConfiguration": [
          {
            "counterSpecifier": "\\Processor Information(_Total)\\% Processor Time",
            "unit": "Percent",
            "sampleRate": "PT60S"
          }
        ]
      },
      "WindowsEventLog": {
        "scheduledTransferPeriod": "PT1M",
        "DataSource": [
          {
            "name": "Application!*[System[(Level=1 or Level=2 or Level=3)]]"
          }
        ]
      }
    }
  }
}

Implantação do PowerShell

O PowerShell pode ser usado para implantar a extensão de Diagnóstico do Azure para uma máquina virtual existente usando Set-AzVMDiagnosticsExtension como no seguinte exemplo:

Set-AzVMDiagnosticsExtension -ResourceGroupName "myvmresourcegroup" `
  -VMName "myvm" `
  -DiagnosticsConfigurationPath "DiagnosticsConfiguration.json"

As configurações privadas são definidas no elemento PrivateConfig. As configurações públicas são definidas no elemento Public do esquema de configuração. Você também pode optar por especificar os detalhes da conta de armazenamento como parâmetros do cmdlet Set-AzVMDiagnosticsExtension em vez de incluir nas configurações privadas.

O exemplo mínimo de arquivo de configuração a seguir habilita a coleta de logs de infraestrutura de diagnóstico, um único contador de desempenho e um único log de eventos. Confira Exemplo de configuração para obter detalhes completos das configurações privadas e públicas.

{
    "PublicConfig": {
        "WadCfg": {
            "DiagnosticMonitorConfiguration": {
                "overallQuotaInMB": 10000,
                "DiagnosticInfrastructureLogs": {
                    "scheduledTransferLogLevelFilter": "Error"
                },
                "PerformanceCounters": {
                    "scheduledTransferPeriod": "PT1M",
                    "PerformanceCounterConfiguration": [
                        {
                            "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
                            "sampleRate": "PT3M",
                            "unit": "percent"
                        }
                    ]
                },
                "WindowsEventLog": {
                    "scheduledTransferPeriod": "PT1M",
                        "DataSource": [
                        {
                            "name": "Application!*[System[(Level=1 or Level=2 or Level=3)]]"
                        }
                    ]
                }
            }
        },
        "StorageAccount": "mystorageaccount",
        "StorageType": "TableAndBlob"
    },
    "PrivateConfig": {
        "storageAccountName": "mystorageaccount",
        "storageAccountKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        "storageAccountEndPoint": "https://core.windows.net"
    }
}

Consulte também Usar o PowerShell para habilitar o Diagnóstico do Azure em uma máquina virtual que executa o Windows.

Armazenamento de dados

A tabela a seguir lista os diferentes tipos de dados coletados da extensão de diagnóstico e se são armazenados como uma tabela ou um blob. Os dados armazenados em tabelas também podem ser armazenados em blobs dependendo da configuração StorageType em sua configuração pública.

Dados Tipo de armazenamento Descrição
WADDiagnosticInfrastructureLogsTable Tabela Alterações da configuração e do monitor de diagnóstico.
WADDirectoriesTable Tabela Diretórios que o monitor de diagnóstico está monitorando. Esse grupo inclui logs do IIS, logs de solicitação do IIS com falha e diretórios personalizados. O local do arquivo de log de blob é especificado no campo Container e o nome do blob está no campo RelativePath. O campo AbsolutePath indica o local e o nome do arquivo como existia na máquina virtual do Azure.
WADLogsTable Tabela Logs escritos no código usando o ouvinte de rastreamento.
WADPerformanceCountersTable Tabela Contadores de desempenho.
WADWindowsEventLogsTable Tabela Logs de eventos do Windows.
wad-iis-failedreqlogfiles Blob Contém informações de logs de solicitação com falha do IIS.
wad-iis-logfiles Blob Contém informações sobre logs do IIS.
"custom" Blob Um contêiner personalizado com base na configuração de diretórios que são monitorados pelo monitor de diagnóstico. O nome desse contêiner de blob será especificado em WADDirectoriesTable.

Ferramentas para exibir dados de diagnóstico

Várias ferramentas estão disponíveis para exibir os dados depois de serem transferidos para o armazenamento. Por exemplo:

  • Gerenciador de Servidores no Visual Studio: se tiver instalado as Ferramentas do Azure para o Microsoft Visual Studio, será possível usar o nó do Armazenamento do Azure no Gerenciador de Servidores para exibir os dados de tabela e de blob somente leitura de suas contas de Armazenamento do Azure. Você pode exibir dados de conta do emulador de armazenamento local e de contas de armazenamento que você criou para o Azure. Para obter mais informações, veja Procurando e gerenciando recursos de armazenamento com o Gerenciador de Servidores.
  • Gerenciamento de Armazenamento do Microsoft Azure: este é um aplicativo autônomo que permite trabalhar facilmente com os dados de Armazenamento do Azure no Windows, OSX e Linux.
  • Azure Management Studio: essa ferramenta inclui o Gerenciador de Diagnóstico do Azure. Use-o para exibir, baixar e gerenciar os dados de diagnóstico coletados pelos aplicativos em execução no Azure.

Próximas etapas

Para obter informações sobre como encaminhar dados de monitoramento aos Hubs de Eventos do Azure, confia Enviar dados da extensão de Diagnóstico do Azure para os Hubs de Eventos.