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.