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

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 fornece informações sobre como instalar e configurar a extensão de 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. Ele dá suporte às mesmas opções de instalação usando modelos do Azure Resource Manager, PowerShell e a CLI do Azure. Para obter informações sobre como instalar e manter extensões de máquina virtual, consulte Extensões e recursos de máquina virtual para Windows.

Descrição geral

Ao configurar a extensão de Diagnóstico do Azure para Windows, você deve especificar uma conta de armazenamento para onde 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: envie dados de desempenho de convidado para o Azure Monitor Metrics.
  • Coletor do Hub de Eventos do Azure: envie dados de log e desempenho de convidado para hubs de eventos para encaminhar para fora do Azure. Esse coletor não pode ser configurado no portal do Azure.

Instalar 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, ela usa automaticamente uma configuração padrão com os contadores de desempenho e eventos mais comuns. Você pode modificar essa configuração padrão de acordo com seus requisitos específicos.

Nota

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, consulte 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 VM.

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

    Screenshot that shows enabling monitoring.

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

    Screenshot that shows Diagnostic settings.

  5. Na guia Contadores de desempenho, selecione as métricas de convidado que você deseja coletar dessa máquina virtual. Use a configuração Personalizada 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 o armazenamento ou hubs de eventos, mas não para o Azure Monitor. Use o agente do Log Analytics para coletar logs de convidados no Azure Monitor.

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

  7. Na guia Despejos de falha, especifique todos os processos para coletar despejos de memória após uma falha. Os dados serão gravados na conta de armazenamento para a 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 o Azure Monitor Metrics. Não é possível configurar o coletor de 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 seguinte aviso ao salvar uma configuração com o coletor do Azure Monitor. Selecione o banner para ativar 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 deseja coletar logs de infraestrutura de diagnóstico.

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

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

Nota

A configuração para a extensão de diagnóstico pode ser formatada em JSON ou XML, mas qualquer configuração feita no portal do Azure sempre será armazenada como JSON. Se você usar XML com outro método de configuração e, em seguida, alterar sua configuração com o portal do Azure, as configurações serão alteradas para JSON. Além disso, não há 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, consulte Usar monitoramento e diagnóstico com uma VM do Windows e modelos do Azure Resource Manager.

Implementação da CLI do Azure

A CLI do Azure pode ser usada para implantar a extensão de Diagnóstico do Azure em uma máquina virtual existente usando o conjunto de extensões az vm como no exemplo a seguir:

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 a seguir de um arquivo de configurações protegidas define a conta de armazenamento. Para obter detalhes completos das configurações privadas, consulte 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 a seguir de um arquivo de configurações públicas permite a coleta de logs de infraestrutura de diagnóstico, um único contador de desempenho e um único log de eventos. Para obter detalhes completos das configurações públicas, consulte Exemplo de configuração.

{
  "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)]]"
          }
        ]
      }
    }
  }
}

Implementação do PowerShell

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

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 em vez de Set-AzVMDiagnosticsExtension incluí-los nas configurações privadas.

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

{
    "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 eles 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 Table Monitor de diagnóstico e alterações de configuração.
WADDirectoriesTable Table Diretórios que o monitor de diagnóstico está monitorando. Esse grupo inclui logs do IIS, logs de solicitação com falha do IIS 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 ele existia na máquina virtual do Azure.
WadLogsTable Table Registra registros gravados em código usando o ouvinte de rastreamento.
WADPerformanceCountersTable Table Contadores de desempenho.
WADWindowsEventLogsTable Table 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.
"Personalizado" Blob Um contêiner personalizado baseado na configuração de diretórios monitorados pelo monitor de diagnóstico. O nome desse contêiner de blob será especificado em WADDirectoriesTable.

Ferramentas para ver os dados de diagnóstico

Várias ferramentas estão disponíveis para visualizar os dados depois que eles são transferidos para o armazenamento. Por exemplo:

  • Gerenciador de Servidores no Visual Studio: Se você tiver instalado as Ferramentas do Azure para Microsoft Visual Studio, poderá usar o nó Armazenamento do Azure no Gerenciador de Servidores para exibir blob somente leitura e dados de tabela de suas contas de Armazenamento do Azure. Você pode exibir dados de sua conta de emulador de armazenamento local e de contas de armazenamento que você criou para o Azure. Para obter mais informações, consulte Navegando e gerenciando recursos de armazenamento com o Gerenciador de Servidores.
  • Gerenciador de Armazenamento do Microsoft Azure: esse aplicativo autônomo permite que você trabalhe facilmente com dados do Armazenamento do Azure no Windows, OSX e Linux.
  • Azure Management Studio: esta ferramenta inclui o Azure Diagnostics Manager. Use-o para exibir, baixar e gerenciar os dados de diagnóstico coletados pelos aplicativos em execução no Azure.

Próximos passos

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