Partilhar via


Esquema de extensão de diagnóstico do Windows

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 dos recursos de computação do Azure. Este artigo detalha o esquema usado para a configuração da extensão de diagnóstico em máquinas virtuais do Windows e outros recursos de computação.

Nota

O esquema neste artigo é válido para versões 1.3 e mais recentes (SDK do Azure 2.4 e mais recentes). As seções de configuração mais recentes são comentadas para mostrar em que versão foram adicionadas. As versões 1.0 e 1.2 do esquema foram arquivadas e não estão mais disponíveis.

Esquema do arquivo de configuração pública

Baixe a definição de esquema do arquivo de configuração pública executando o seguinte comando do PowerShell:

(Get-AzureServiceAvailableExtension -ExtensionName 'PaaSDiagnostics' -ProviderNamespace 'Microsoft.Azure.Diagnostics').PublicConfigurationSchema | Out-File –Encoding utf8 -FilePath 'C:\temp\WadConfig.xsd'  

Tipos de atributos comuns

O atributo scheduledTransferPeriod aparece em vários elementos. É o intervalo entre as transferências programadas para o armazenamento arredondado para o minuto mais próximo. O valor é um XML "Tipo de dados de duração".

Elemento DiagnosticsConfiguration

Árvore: Raiz - DiagnosticsConfiguration

Adicionado na versão 1.3.

O elemento de nível superior do arquivo de configuração de diagnóstico.

Atributo xmlns - O namespace XML para o arquivo de configuração de diagnóstico é:
http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration

Elementos Subordinados Description
PublicConfig Obrigatório. Veja a descrição em outro lugar nesta página.
PrivateConfig Opcional. Veja a descrição em outro lugar nesta página.
IsEnabled Booleano. Veja a descrição em outro lugar nesta página.

Elemento PublicConfig

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig

Descreve a configuração de diagnóstico público.

Elementos Subordinados Description
WadCfg Obrigatório. Veja a descrição em outro lugar nesta página.
StorageAccount O nome da conta de Armazenamento do Azure na qual armazenar os dados. Também pode ser especificado como um parâmetro ao executar o cmdlet Set-AzureServiceDiagnosticsExtension.
Tipo de armazenamento Pode ser Table, Blob ou TableAndBlob. A tabela é padrão. Quando TableAndBlob é escolhido, os dados de diagnóstico são gravados duas vezes -- uma para cada tipo.
LocalResourceDirectory O diretório na máquina virtual onde o Agente de Monitoramento armazena dados de eventos. Se não, defina, o diretório padrão é usado:

Para uma função Worker/Web: C:\Resources\<guid>\directory\<guid>.<RoleName.DiagnosticStore\

Para uma máquina virtual: C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\<WADVersion>\WAD<WADVersion>

Os atributos necessários são:

- path - O diretório no sistema a ser usado pelo Diagnóstico do Azure.

- expandEnvironment - Controla se as variáveis de ambiente são expandidas no nome do caminho.

Elemento WadCFG

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG

Identifica e configura os dados de telemetria a serem coletados.

Elemento DiagnosticMonitorConfiguration

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration

Necessário

Atributos Description
geralQuotaInMB A quantidade máxima de espaço em disco local que pode ser consumida pelos vários tipos de dados de diagnóstico coletados pelo Diagnóstico do Azure. A configuração padrão é 4096 MB.
useProxyServer Configure o Diagnóstico do Azure para usar as configurações do servidor proxy conforme definido nas configurações do Internet Explorer.
Pias Acrescentado no ponto 1.5. Opcional. Aponta para um local de coletor para também enviar dados de diagnóstico para todos os elementos filho que suportam coletores. Exemplo de coletor é o Application Insights ou Hubs de Eventos. Observe que você precisa adicionar a propriedade resourceId sob o elemento Metrics se quiser que os eventos carregados nos Hubs de Eventos tenham uma ID de recurso.



Elementos Subordinados Description
Despejos de memória Veja a descrição em outro lugar nesta página.
DiagnosticInfrastructureLogs Habilite a coleção de logs gerados pelo Diagnóstico do Azure. Os logs de infraestrutura de diagnóstico são úteis para solucionar problemas do próprio sistema de diagnóstico. Os atributos opcionais são:

- scheduledTransferLogLevelFilter - Configura o nível mínimo de gravidade dos logs coletados.

- scheduledTransferPeriod - O intervalo entre as transferências agendadas para o armazenamento arredondado para o minuto mais próximo. O valor é um XML "Tipo de dados de duração".
Diretórios Veja a descrição em outro lugar nesta página.
EtwProviders Veja a descrição em outro lugar nesta página.
Métricas Veja a descrição em outro lugar nesta página.
PerformanceCounters Veja a descrição em outro lugar nesta página.
WindowsEventLog Veja a descrição em outro lugar nesta página.
DockerSources Veja a descrição em outro lugar nesta página.

Elemento CrashDumps

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - CrashDumps

Habilite a coleta de despejos de memória.

Atributos Description
containerName Opcional. O nome do contêiner de blob em sua conta de Armazenamento do Azure a ser usado para armazenar despejos de falha.
crashDumpType Opcional. Configura o Diagnóstico do Azure para coletar despejos de memória mini ou completos.
diretórioQuotaPorcentagem Opcional. Configura a porcentagem de overallQuotaInMB a ser reservada para despejos de memória na VM.
Elementos Subordinados Description
CrashDumpConfiguration Obrigatório. Define valores de configuração para cada processo.

O seguinte atributo também é necessário:

processName - O nome do processo para o qual você deseja que o Diagnóstico do Azure colete um despejo de falha.

Elemento Diretórios

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Diretórios

Habilita a coleta do conteúdo de um diretório, logs de solicitação de acesso com falha do IIS e/ou logs do IIS.

Atributo scheduledTransferPeriod opcional. Ver explicação anteriormente.

Elementos Subordinados Description
IISLogs A inclusão desse elemento na configuração permite a coleta de logs do IIS:

containerName - O nome do contêiner de blob em sua conta de Armazenamento do Azure a ser usado para armazenar os logs do IIS.
FailedRequestLogs A inclusão desse elemento na configuração permite a coleta de logs sobre solicitações com falha para um site ou aplicativo do IIS. Você também deve habilitar as opções de rastreamento no sistema. WebServer em Web.config.
Fontes de dados Uma lista de diretórios a serem monitorados.

Elemento DataSources

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Diretórios - DataSources

Uma lista de diretórios a serem monitorados.

Elementos Subordinados Description
DirectoryConfiguration Obrigatório. Atributo obrigatório:

containerName - O nome do contêiner de blob em sua conta de Armazenamento do Azure que será usado para armazenar os arquivos de log.

Elemento DirectoryConfiguration

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Diretórios - DataSources - DirectoryConfiguration

Pode incluir o elemento Absolute ou LocalResource , mas não ambos.

Elementos Subordinados Description
Absoluto O caminho absoluto para o diretório a ser monitorado. Os seguintes atributos são necessários:

- Caminho - O caminho absoluto para o diretório a ser monitorado.

- expandEnvironment - Configura se as variáveis de ambiente no Path são expandidas.
LocalResource O caminho relativo a um recurso local a ser monitorado. Os atributos necessários são:

- Nome - O recurso local que contém o diretório a ser monitorado

- relativePath - O caminho relativo a Name que contém o diretório a ser monitorado

Elemento EtwProviders

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders

Configura a coleção de eventos ETW de provedores baseados em EventSource e/ou Manifesto ETW.

Elementos Subordinados Description
EtwEventSourceProviderConfiguration Configura a coleção de eventos gerados a partir da classe EventSource. Atributo obrigatório:

provider - O nome da classe do evento EventSource.

Os atributos opcionais são:

- scheduledTransferLogLevelFilter - O nível mínimo de gravidade a ser transferido para sua conta de armazenamento.

- scheduledTransferPeriod - O intervalo entre as transferências agendadas para o armazenamento arredondado para o minuto mais próximo. O valor é um XML "Tipo de dados de duração".
EtwManifestProviderConfiguration Atributo obrigatório:

provider - O GUID do provedor de eventos

Os atributos opcionais são:

- scheduledTransferLogLevelFilter - O nível mínimo de gravidade a ser transferido para sua conta de armazenamento.

- scheduledTransferPeriod - O intervalo entre as transferências agendadas para o armazenamento arredondado para o minuto mais próximo. O valor é um XML "Tipo de dados de duração".

Elemento EtwEventSourceProviderConfiguration

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders- EtwEventSourceProviderConfiguration

Configura a coleção de eventos gerados a partir da classe EventSource.

Elementos Subordinados Description
DefaultEvents Atributo opcional:

eventDestination - O nome da tabela para armazenar os eventos em
Evento Atributo obrigatório:

id - O id do evento.

Atributo opcional:

eventDestination - O nome da tabela para armazenar os eventos em

Elemento EtwManifestProviderConfiguration

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders - EtwManifestProviderConfiguration

Elementos Subordinados Description
DefaultEvents Atributo opcional:

eventDestination - O nome da tabela para armazenar os eventos em
Evento Atributo obrigatório:

id - O id do evento.

Atributo opcional:

eventDestination - O nome da tabela para armazenar os eventos em

Elemento Metrics

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Métricas

Permite gerar uma tabela de contador de desempenho otimizada para consultas rápidas. Cada contador de desempenho definido no elemento PerformanceCounters é armazenado na tabela Métricas , além da tabela Contador de Desempenho.

O atributo resourceId é obrigatório. A ID do recurso da Máquina Virtual ou do Conjunto de Dimensionamento de Máquina Virtual no qual você está implantando o Diagnóstico do Azure. Obtenha o resourceID do portal do Azure. Selecione Procurar ->Grupos de Recursos -><Nome.> Clique no bloco Propriedades e copie o valor do campo ID . Essa propriedade resourceID é usada para enviar métricas personalizadas e para adicionar uma propriedade resourceID aos dados enviados para Hubs de Eventos. Observe que você precisa adicionar a propriedade resourceId sob o elemento Metrics se quiser que os eventos carregados nos Hubs de Eventos tenham uma ID de recurso.

Elementos Subordinados Description
Agregação Métrica Atributo obrigatório:

scheduledTransferPeriod - O intervalo entre as transferências agendadas para o armazenamento arredondado para o minuto mais próximo. O valor é um XML "Tipo de dados de duração".

Elemento PerformanceCounters

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - PerformanceCounters

Permite a coleta de contadores de desempenho.

Atributo opcional:

Atributo scheduledTransferPeriod opcional. Ver explicação anteriormente.

Elemento filho Description
PerformanceCounterConfiguration Os seguintes atributos são necessários:

- counterSpecifier - O nome do contador de desempenho. Por exemplo, \Processor(_Total)\% Processor Time. Para obter uma lista de contadores de desempenho no seu host, execute o comando typeperf.

- sampleRate - Com que frequência o contador deve ser amostrado.

Atributo opcional:

unidade - A unidade de medida do contador. Os valores estão disponíveis em UnitType Class
Pias Acrescentado no ponto 1.5. Opcional. Aponta para um local de coletor para também enviar dados de diagnóstico. Por exemplo, Azure Monitor ou Hubs de Eventos. Observe que você precisa adicionar a propriedade resourceId sob o elemento Metrics se quiser que os eventos carregados nos Hubs de Eventos tenham uma ID de recurso.

Elemento WindowsEventLog

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - WindowsEventLog

Habilita a coleta de Logs de Eventos do Windows.

Atributo scheduledTransferPeriod opcional. Ver explicação anteriormente.

Elemento filho Description
DataSource Os logs de eventos do Windows a serem coletados. Atributo obrigatório:

name - A consulta XPath que descreve os eventos do Windows a serem coletados. Por exemplo:

Application!*[System[(Level <=3)]], System!*[System[(Level <=3)]], System!*[System[Provider[@Name='Microsoft Antimalware']]], Security!*[System[(Level <= 3)]

Para coletar todos os eventos, especifique "*"
Pias Acrescentado no ponto 1.5. Opcional. Aponta para um local de coletor para também enviar dados de diagnóstico para todos os elementos filho que suportam coletores. Exemplo de coletor é o Application Insights ou Hubs de Eventos.

Elemento Logs

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Logs

Presente nas versões 1.0 e 1.1. Falta em 1.2. Adicionado novamente em 1.3.

Define a configuração de buffer para logs básicos do Azure.

Atributo Tipo Description
bufferQuotaInMB unsignedInt Opcional. Especifica a quantidade máxima de armazenamento do sistema de arquivos disponível para os dados especificados.

A predefinição é 0.
scheduledTransferLogLevelFilter string Opcional. Especifica o nível mínimo de severidade para entradas de log que são transferidas. O valor padrão é Undefined, que transfere todos os logs. Outros valores possíveis (na ordem da maioria para a menor informação) são Verbose, Information, Warning, Error e Critical.
scheduledTransferPeriod Duração Opcional. Especifica o intervalo entre as transferências agendadas de dados, arredondadas para o minuto mais próximo.

O padrão é PT0S.
Pias string Acrescentado no ponto 1.5. Opcional. Aponta para um local de coletor para também enviar dados de diagnóstico. Por exemplo, Application Insights ou Hubs de Eventos. Observe que você precisa adicionar a propriedade resourceId sob o elemento Metrics se quiser que os eventos carregados nos Hubs de Eventos tenham uma ID de recurso.

DockerSources

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - DockerSources

Acrescentado no ponto 1.9.

Nome do Elemento Description
Estatísticas Diz ao sistema para coletar estatísticas para contêineres do Docker

Elemento SinksConfig

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig

Uma lista de locais para os quais enviar dados de diagnóstico e a configuração associada a esses locais.

Nome do Elemento Description
Pia Veja a descrição em outro lugar nesta página.

Elemento da pia

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - Sink

Adicionado na versão 1.5.

Define locais para os quais enviar dados de diagnóstico. Por exemplo, o serviço Application Insights.

Atributo Tipo Description
Designação string Uma cadeia de caracteres que identifica o nome do coletor.
Elemento Tipo Description
Application Insights string Usado somente ao enviar dados para o Application Insights. Contenha a Chave de Instrumentação para uma conta ativa do Application Insights à qual você tenha acesso.
Canais string Um para cada filtragem adicional que você

Elemento Canais

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - Sink - Canais

Adicionado na versão 1.5.

Define filtros para fluxos de dados de log que passam por um coletor.

Elemento Tipo Description
Canal string Veja a descrição em outro lugar nesta página.

Elemento de canal

Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - Sink - Canais - Canal

Adicionado na versão 1.5.

Define locais para os quais enviar dados de diagnóstico. Por exemplo, o serviço Application Insights.

Atributos Tipo Description
logNível string Especifica o nível mínimo de severidade para entradas de log que são transferidas. O valor padrão é Undefined, que transfere todos os logs. Outros valores possíveis (na ordem da maioria para a menor informação) são Verbose, Information, Warning, Error e Critical.
Designação string Um nome exclusivo do canal para se referir

Elemento PrivateConfig

Árvore: Raiz - DiagnosticsConfiguration - PrivateConfig

Adicionado na versão 1.3.

Opcional

Armazena os detalhes privados da conta de armazenamento (nome, chave e ponto de extremidade). Essas informações são enviadas para a máquina virtual, mas não podem ser recuperadas dela.

Elementos Subordinados Description
StorageAccount A conta de armazenamento a ser usada. Os seguintes atributos são obrigatórios:

- name - O nome da conta de armazenamento.

- key - A chave para a conta de armazenamento.

- endpoint - O ponto de extremidade para acessar a conta de armazenamento.

-sasToken (adicionado 1.8.1)- Você pode especificar um token SAS em vez de uma chave de conta de armazenamento na configuração privada. Se fornecida, a chave da conta de armazenamento será ignorada.
Requisitos para o token SAS:
- Suporta apenas o token SAS da conta
- Os tipos de serviço B, T são necessários.
- As permissões A, C, U, W são necessárias.
- c, o tipos de recursos são necessários.
- Suporta apenas o protocolo HTTPS
- O início e o prazo de validade devem ser válidos.

Elemento IsEnabled

Árvore: Raiz - DiagnosticsConfiguration - IsEnabled

Booleano. Use true para habilitar o diagnóstico ou false para desabilitar o diagnóstico.

Configuração de exemplo

A seguir está um exemplo completo de configuração para a extensão de diagnóstico do Windows mostrada em JSON e XML.

JSON

O PublicConfig e o PrivateConfig são separados porque, na maioria dos casos de uso JSON, eles são passados como variáveis diferentes. Esses casos incluem modelos do Resource Manager, PowerShell e Visual Studio.

Nota

A definição de coletor de configuração pública do Azure Monitor tem duas propriedades, resourceId e region. Eles são necessários apenas para VMs clássicas e serviços de nuvem clássica. A propriedade region não deve ser usada para outros recursos, a propriedade resourceId é usada em VMs ARM para preencher o campo resourceID em logs carregados para Hubs de Eventos.

"PublicConfig" {
    "WadCfg": {
        "DiagnosticMonitorConfiguration": {
            "overallQuotaInMB": 10000,
            "DiagnosticInfrastructureLogs": {
                "scheduledTransferLogLevelFilter": "Error"
            },
            "PerformanceCounters": {
                "scheduledTransferPeriod": "PT1M",
                "sinks": "AzureMonitorSink",
                "PerformanceCounterConfiguration": [
                    {
                        "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
                        "sampleRate": "PT1M",
                        "unit": "percent"
                    }
                ]
            },
            "Directories": {
                "scheduledTransferPeriod": "PT5M",
                "IISLogs": {
                    "containerName": "iislogs"
                },
                "FailedRequestLogs": {
                    "containerName": "iisfailed"
                },
                "DataSources": [
                    {
                        "containerName": "mynewprocess",
                        "Absolute": {
                            "path": "C:\\MyNewProcess",
                            "expandEnvironment": false
                        }
                    },
                    {
                        "containerName": "badapp",
                        "Absolute": {
                            "path": "%SYSTEMDRIVE%\\BadApp",
                            "expandEnvironment": true
                        }
                    },
                    {
                        "containerName": "goodapp",
                        "LocalResource": {
                            "relativePath": "..\\PeanutButter",
                            "name": "Skippy"
                        }
                    }
                ]
            },
            "EtwProviders": {
                "sinks": "",
                "EtwEventSourceProviderConfiguration": [
                    {
                        "scheduledTransferPeriod": "PT5M",
                        "provider": "MyProviderClass",
                        "Event": [
                            {
                                "id": 0
                            },
                            {
                                "id": 1,
                                "eventDestination": "errorTable"
                            }
                        ],
                        "DefaultEvents": {
                        }
                    }
                ],
                "EtwManifestProviderConfiguration": [
                    {
                        "scheduledTransferPeriod": "PT2M",
                        "scheduledTransferLogLevelFilter": "Information",
                        "provider": "5974b00b-84c2-44bc-9e58-3a2451b4e3ad",
                        "Event": [
                            {
                                "id": 0
                            }
                        ],
                        "DefaultEvents": {
                        }
                    }
                ]
            },
            "WindowsEventLog": {
                "scheduledTransferPeriod": "PT5M",
                "DataSource": [
                    {
                        "name": "System!*[System[Provider[@Name='Microsoft Antimalware']]]"
                    },
                    {
                        "name": "System!*[System[Provider[@Name='NTFS'] and (EventID=55)]]"
                    },
                    {
                        "name": "System!*[System[Provider[@Name='disk'] and (EventID=7 or EventID=52 or EventID=55)]]"
                    }
                ]
            },
            "Logs": {
                "scheduledTransferPeriod": "PT1M",
                "scheduledTransferLogLevelFilter": "Verbose",
                "sinks": "ApplicationInsights.AppLogs"
            },
            "CrashDumps": {
                "directoryQuotaPercentage": 30,
                "dumpType": "Mini",
                "containerName": "wad-crashdumps",
                "CrashDumpConfiguration": [
                    {
                        "processName": "mynewprocess.exe"
                    },
                    {
                        "processName": "badapp.exe"
                    }
                ]
            }
        },
        "SinksConfig": {
            "Sink": [
                {
                    "name": "AzureMonitorSink",
                    "AzureMonitor":
                    {
                        "ResourceId": "{insert resourceId if a classic VM or cloud service, else property not needed}",
                        "Region": "{insert Azure region of resource if a classic VM or cloud service, else property not needed}"
                    }
                },
                {
                    "name": "ApplicationInsights",
                    "ApplicationInsights": "{Insert InstrumentationKey}",
                    "Channels": {
                        "Channel": [
                            {
                                "logLevel": "Error",
                                "name": "Errors"
                            },
                            {
                                "logLevel": "Verbose",
                                "name": "AppLogs"
                            }
                        ]
                    }
                },
                {
                    "name": "EventHub",
                    "EventHub": {
                        "Url": "https://myeventhub-ns.servicebus.windows.net/diageventhub",
                        "SharedAccessKeyName": "SendRule",
                        "usePublisherId": false
                    }
                },
                {
                    "name": "secondaryEventHub",
                    "EventHub": {
                        "Url": "https://myeventhub-ns.servicebus.windows.net/secondarydiageventhub",
                        "SharedAccessKeyName": "SendRule",
                        "usePublisherId": false
                    }
                },
                {
                    "name": "secondaryStorageAccount",
                    "StorageAccount": {
                        "name": "secondarydiagstorageaccount",
                        "endpoint": "https://core.windows.net"
                    }
                }
            ]
        }
    },
    "StorageAccount": "diagstorageaccount",
    "StorageType": "TableAndBlob"
}

Nota

A definição de coletor de configuração privada do Azure Monitor tem duas propriedades, PrincipalId e Secret. Eles são necessários apenas para VMs clássicas e serviços de nuvem clássica. Essas propriedades não devem ser usadas para outros recursos.

"PrivateConfig" {
    "storageAccountName": "diagstorageaccount",
    "storageAccountKey": "{base64 encoded key}",
    "storageAccountEndPoint": "https://core.windows.net",
    "storageAccountSasToken": "{sas token}",
    "EventHub": {
        "Url": "https://myeventhub-ns.servicebus.windows.net/diageventhub",
        "SharedAccessKeyName": "SendRule",
        "SharedAccessKey": "{base64 encoded key}"
    },
    "AzureMonitorAccount": {
        "ServicePrincipalMeta": {
            "PrincipalId": "{Insert service principal client Id}",
            "Secret": "{Insert service principal client secret}"
        }
    },
    "SecondaryStorageAccounts": {
        "StorageAccount": [
            {
                "name": "secondarydiagstorageaccount",
                "key": "{base64 encoded key}",
                "endpoint": "https://core.windows.net",
                "sasToken": "{sas token}"
            }
        ]
    },
    "SecondaryEventHubs": {
        "EventHub": [
            {
                "Url": "https://myeventhub-ns.servicebus.windows.net/secondarydiageventhub",
                "SharedAccessKeyName": "SendRule",
                "SharedAccessKey": "{base64 encoded key}"
            }
        ]
    }
}

XML

<?xml version="1.0" encoding="utf-8"?>  
<DiagnosticsConfiguration  xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">   
  <PublicConfig>  
    <WadCfg>  
      <DiagnosticMonitorConfiguration overallQuotaInMB="10000">  

        <PerformanceCounters scheduledTransferPeriod="PT1M" sinks="AzureMonitorSink">  
          <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT1M" unit="percent" />  
        </PerformanceCounters>  

        <Directories scheduledTransferPeriod="PT5M">  
          <IISLogs containerName="iislogs" />  
          <FailedRequestLogs containerName="iisfailed" />  

          <DataSources>  
            <DirectoryConfiguration containerName="mynewprocess">  
              <Absolute path="C:\MyNewProcess" expandEnvironment="false" />  
            </DirectoryConfiguration>  
            <DirectoryConfiguration containerName="badapp">  
              <Absolute path="%SYSTEMDRIVE%\BadApp" expandEnvironment="true" />  
            </DirectoryConfiguration>  
            <DirectoryConfiguration containerName="goodapp">  
              <LocalResource name="Skippy" relativePath="..\PeanutButter"/>  
            </DirectoryConfiguration>  
          </DataSources>  

        </Directories>  

        <EtwProviders>  
          <EtwEventSourceProviderConfiguration   
                       provider="MyProviderClass"   
                       scheduledTransferPeriod="PT5M">  
            <Event id="0"/>  
            <Event id="1" eventDestination="errorTable"/>  
            <DefaultEvents />  
          </EtwEventSourceProviderConfiguration>  
          <EtwManifestProviderConfiguration provider="5974b00b-84c2-44bc-9e58-3a2451b4e3ad" scheduledTransferLogLevelFilter="Information" scheduledTransferPeriod="PT2M">  
            <Event id="0"/>  
            <DefaultEvents eventDestination="defaultTable"/>  
          </EtwManifestProviderConfiguration>  
        </EtwProviders>  

        <WindowsEventLog scheduledTransferPeriod="PT5M">  
          <DataSource name="System!*[System[Provider[@Name='Microsoft Antimalware']]]"/>  
          <DataSource name="System!*[System[Provider[@Name='NTFS'] and (EventID=55)]]" />  
          <DataSource name="System!*[System[Provider[@Name='disk'] and (EventID=7 or EventID=52 or EventID=55)]]" />  
        </WindowsEventLog>  

        <Logs  bufferQuotaInMB="1024"   
             scheduledTransferPeriod="PT1M"   
             scheduledTransferLogLevelFilter="Verbose"   
             sinks="ApplicationInsights.AppLogs"/>  <!-- sinks attribute added in 1.5 -->  

        <CrashDumps containerName="wad-crashdumps" directoryQuotaPercentage="30" dumpType="Mini">  
          <CrashDumpConfiguration processName="mynewprocess.exe" />  
          <CrashDumpConfiguration processName="badapp.exe"/>  
        </CrashDumps>  

        <DockerSources> <!-- Added in 1.9 -->
          <Stats enabled="true" sampleRate="PT1M" scheduledTransferPeriod="PT1M" />
        </DockerSources>

      </DiagnosticMonitorConfiguration>  

      <SinksConfig>   <!-- Added in 1.5 -->  
        <Sink name="AzureMonitorSink">
            <AzureMonitor> <!-- Added in 1.11 -->
                <resourceId>{insert resourceId}</ResourceId> <!-- Parameter only needed for classic VMs and Classic Cloud Services, exclude VMSS and Resource Manager VMs-->
                <Region>{insert Azure region of resource}</Region> <!-- Parameter only needed for classic VMs and Classic Cloud Services, exclude VMSS and Resource Manager VMs -->
            </AzureMonitor>
        </Sink>
        <Sink name="ApplicationInsights">   
          <ApplicationInsights>{Insert InstrumentationKey}</ApplicationInsights>   
          <Channels>   
            <Channel logLevel="Error" name="Errors"  />   
            <Channel logLevel="Verbose" name="AppLogs"  />   
          </Channels>   
        </Sink>   
        <Sink name="EventHub"> <!-- Added in 1.7 -->
          <EventHub Url="https://myeventhub-ns.servicebus.windows.net/diageventhub" SharedAccessKeyName="SendRule" usePublisherId="false" />
        </Sink>
        <Sink name="secondaryEventHub"> <!-- Added in 1.7 -->
          <EventHub Url="https://myeventhub-ns.servicebus.windows.net/secondarydiageventhub" SharedAccessKeyName="SendRule" usePublisherId="false" />
        </Sink>
        <Sink name="secondaryStorageAccount"> <!-- Added in 1.7 -->
          <StorageAccount name="secondarydiagstorageaccount" endpoint="https://core.windows.net" />
        </Sink>
   </SinksConfig>

  </WadCfg>  

  <StorageAccount>diagstorageaccount</StorageAccount>
  <StorageType>TableAndBlob</StorageType> <!-- Added in 1.8 -->  
  </PublicConfig>  

  <PrivateConfig>  <!-- Added in 1.3 -->  
    <StorageAccount name="" key="" endpoint="" sasToken="{sas token}"  />  <!-- sasToken in Private config added in 1.8.1 -->  
    <EventHub Url="https://myeventhub-ns.servicebus.windows.net/diageventhub" SharedAccessKeyName="SendRule" SharedAccessKey="{base64 encoded key}" />

    <AzureMonitorAccount>
        <ServicePrincipalMeta> <!-- Added in 1.11; only needed for classic VMs and Classic cloud services -->
            <PrincipalId>{Insert service principal clientId}</PrincipalId>
            <Secret>{Insert service principal client secret}</Secret>
        </ServicePrincipalMeta>
    </AzureMonitorAccount>

    <SecondaryStorageAccounts>
       <StorageAccount name="secondarydiagstorageaccount" key="{base64 encoded key}" endpoint="https://core.windows.net" sasToken="{sas token}" />
    </SecondaryStorageAccounts>

    <SecondaryEventHubs>
       <EventHub Url="https://myeventhub-ns.servicebus.windows.net/secondarydiageventhub" SharedAccessKeyName="SendRule" SharedAccessKey="{base64 encoded key}" />
    </SecondaryEventHubs>

  </PrivateConfig>  
  <IsEnabled>true</IsEnabled>  
</DiagnosticsConfiguration>  

Nota

A definição de coletor de configuração pública do Azure Monitor tem duas propriedades, resourceId e region. Eles são necessários apenas para VMs clássicas e serviços de nuvem clássica. Essas propriedades não devem ser usadas para Máquinas Virtuais do Gerenciador de Recursos ou conjuntos de Escala de Máquina Virtual. Há também um elemento de Configuração Privada adicional para o coletor do Azure Monitor, que passa em uma ID Principal e Segredo. Isso só é necessário para VMs clássicas e serviços de nuvem clássicos. Para VMs do Gerenciador de Recursos e VMSS, a definição do Azure Monitor no elemento de configuração privada pode ser excluída.