Esquema de extensão de diagnóstico do Windows
Diagnóstico do Azure extensão é um agente no Azure Monitor que recolhe dados de monitorização do sistema operativo convidado e cargas de trabalho de recursos de computação do Azure. Este artigo detalha o esquema utilizado 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 as versões 1.3 e mais recentes (Azure SDK 2.4 e mais recente). As secções de configuração mais recentes são comentadas para mostrar em que versão foram adicionadas. A versão 1.0 e 1.2 do esquema foi arquivada e já não está disponível.
Esquema de ficheiro de configuração pública
Transfira a definição de esquema de ficheiro de configuração pública ao executar 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 Atributo Comuns
o atributo scheduledTransferPeriod aparece em vários elementos. É o intervalo entre as transferências agendadas para o armazenamento arredondada até ao minuto mais próximo. O valor é um XML "Tipo de Dados de Duração".
DiagnosticsConfiguration Element
Árvore: Raiz - DiagnosticsConfiguration
Adicionado na versão 1.3.
O elemento de nível superior do ficheiro de configuração de diagnóstico.
Atributo xmlns - O espaço de nomes XML para o ficheiro de configuração de diagnóstico é:
http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration
Elementos Subordinados | Descrição |
---|---|
PublicConfig | Obrigatório. Veja a descrição noutro local nesta página. |
PrivateConfig | Opcional. Veja a descrição noutro local nesta página. |
IsEnabled | Booleano. Veja a descrição noutro local nesta página. |
Elemento PublicConfig
Árvore: Raiz – DiagnosticsConfiguration – PublicConfig
Descreve a configuração do diagnóstico público.
Elementos Subordinados | Descrição |
---|---|
WadCfg | Obrigatório. Veja a descrição noutro local nesta página. |
StorageAccount | O nome da conta de Armazenamento do Azure para armazenar os dados. Também pode ser especificado como um parâmetro ao executar o cmdlet Set-AzureServiceDiagnosticsExtension. |
StorageType | Pode ser Tabela, Blob ou TableAndBlob. A tabela é predefinida. Quando TableAndBlob é escolhido, os dados de diagnóstico são escritos duas vezes - uma vez para cada tipo. |
LocalResourceDirectory | O diretório na máquina virtual onde o Agente de Monitorização armazena dados de eventos. Caso contrário, defina, é utilizado o diretório predefinido: Para uma função De Trabalho/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 utilizado por 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 telemétricos a recolher.
DiagnosticMonitorConfiguration Element
Árvore: Raiz – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration
Necessário
Atributos | Descrição |
---|---|
overallQuotaInMB | A quantidade máxima de espaço em disco local que pode ser consumida pelos vários tipos de dados de diagnóstico recolhidos pelo Diagnóstico do Azure. A predefinição é 4096 MB. |
useProxyServer | Configure Diagnóstico do Azure para utilizar as definições do servidor proxy, conforme definido nas definições do IE. |
sinks | Adicionado em 1,5. Opcional. Aponta para uma localização de sink para também enviar dados de diagnóstico para todos os elementos subordinados que suportam sinks. O exemplo de sink é Application Insights ou Hubs de Eventos. Tenha em atenção que tem de adicionar a propriedade resourceId no elemento Métricas se pretender que os eventos carregados para os Hubs de Eventos tenham um ID de recurso. |
Elementos Subordinados | Descrição |
---|---|
CrashDumps | Veja a descrição noutro local nesta página. |
DiagnosticInfrastructureLogs | Ative a recolha de registos gerados por Diagnóstico do Azure. Os registos da infraestrutura de diagnóstico são úteis para resolver problemas do próprio sistema de diagnósticos. Os atributos opcionais são: - scheduledTransferLogLevelFilter - Configura o nível mínimo de gravidade dos registos recolhidos. - scheduledTransferPeriod - O intervalo entre as transferências agendadas para o armazenamento arredondado até ao minuto mais próximo. O valor é um XML "Tipo de Dados de Duração". |
Diretórios | Veja a descrição noutro local nesta página. |
EtwProviders | Veja a descrição noutro local nesta página. |
Métricas | Veja a descrição noutro local nesta página. |
PerformanceCounters | Veja a descrição noutro local nesta página. |
WindowsEventLog | Veja a descrição noutro local nesta página. |
DockerSources | Veja a descrição noutro local nesta página. |
Elemento CrashDumps
Árvore: Raiz – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration – CrashDumps
Ative a coleção de informações de falha de sistema.
Atributos | Descrição |
---|---|
containerName | Opcional. O nome do contentor de blobs na sua conta de Armazenamento do Azure a ser utilizado para armazenar informações de falha de sistema. |
crashDumpType | Opcional. Configura Diagnóstico do Azure para recolher informações de falha de sistema mini ou completas. |
directoryQuotaPercentage | Opcional. Configura a percentagem de globalQuotaInMB a ser reservada para informações de falha de sistema na VM. |
Elementos Subordinados | Descrição |
---|---|
CrashDumpConfiguration | Obrigatório. Define valores de configuração para cada processo. O atributo seguinte também é necessário: processName – o nome do processo para o qual pretende Diagnóstico do Azure recolher uma informação de falha de sistema. |
Elemento diretórios
Árvore: Raiz – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration – Diretórios
Ativa a coleção dos conteúdos de um diretório, registos de pedidos de acesso falhados do IIS e/ou registos do IIS.
Atributo scheduledTransferPeriod opcional. Veja a explicação anteriormente.
Elementos Subordinados | Descrição |
---|---|
IISLogs | A inclusão deste elemento na configuração permite a coleção de registos do IIS: containerName - o nome do contentor de blobs na sua conta de Armazenamento do Azure a ser utilizado para armazenar os registos do IIS. |
FailedRequestLogs | A inclusão deste elemento na configuração permite a recolha de registos sobre pedidos falhados a um site ou aplicação do IIS. Também tem de ativar as opções de rastreio no sistema. WebServer no Web.config. |
DataSources | Uma lista de diretórios a monitorizar. |
Elemento DataSources
Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Directories - DataSources
Uma lista de diretórios a monitorizar.
Elementos Subordinados | Descrição |
---|---|
DirectoryConfiguration | Obrigatório. Atributo obrigatório: containerName - o nome do contentor de blobs na sua conta de Armazenamento do Azure que deve ser utilizado para armazenar os ficheiros de registo. |
Elemento DirectoryConfiguration
Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Directories - DataSources - DirectoryConfiguration
Pode incluir o elemento Absolute ou LocalResource , mas não ambos.
Elementos Subordinados | Descrição |
---|---|
Absoluto | O caminho absoluto para o diretório a monitorizar. São necessários os seguintes atributos: - Caminho – o caminho absoluto para o diretório a monitorizar. - expandEnvironment – configura se as variáveis de ambiente no Caminho são expandidas. |
LocalResource | O caminho relativo a um recurso local a monitorizar. Os atributos necessários são: - Nome – o recurso local que contém o diretório a monitorizar - relativePath – o caminho relativo ao Nome que contém o diretório a monitorizar |
Elemento EtwProviders
Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders
Configura a coleção de eventos ETW a partir de fornecedores baseados em EventSource e/ou ETW Manifest.
Elementos Subordinados | Descrição |
---|---|
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 de gravidade mínimo a transferir para a sua conta de armazenamento. - scheduledTransferPeriod - O intervalo entre as transferências agendadas para o armazenamento arredondado até ao minuto mais próximo. O valor é um XML "Tipo de Dados de Duração". |
EtwManifestProviderConfiguration | Atributo obrigatório: fornecedor – o GUID do fornecedor de eventos Os atributos opcionais são: - scheduledTransferLogLevelFilter - o nível de gravidade mínimo a transferir para a sua conta de armazenamento. - scheduledTransferPeriod - O intervalo entre as transferências agendadas para o armazenamento arredondado até ao minuto mais próximo. O valor é um XML "Tipo de Dados de Duração". |
EtwEventSourceProviderConfiguration Element
Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders- EtwEventSourceProviderConfiguration
Configura a coleção de eventos gerados a partir da Classe EventSource.
Elementos Subordinados | Descrição |
---|---|
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 |
EtwManifestProviderConfiguration Element
Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders - EtwManifestProviderConfiguration
Elementos Subordinados | Descrição |
---|---|
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 de Métricas
Árvore: Raiz – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration – Métricas
Permite-lhe 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.
É necessário o atributo resourceId . O ID de recurso da Máquina Virtual ou do Conjunto de Dimensionamento de Máquinas Virtuais no qual está a implementar Diagnóstico do Azure. Obtenha o resourceID do portal do Azure. Selecione Procurar ->Grupos de Recursos -><Nome>. Clique no mosaico Propriedades e copie o valor do campo ID . Esta propriedade resourceID é utilizada para enviar métricas personalizadas e para adicionar uma propriedade resourceID aos dados enviados para os Hubs de Eventos. Tenha em atenção que tem de adicionar a propriedade resourceId no elemento Métricas se pretender que os eventos carregados para os Hubs de Eventos tenham um ID de recurso.
Elementos Subordinados | Descrição |
---|---|
Agregação de Métricas | Atributo obrigatório: scheduledTransferPeriod - O intervalo entre as transferências agendadas para o armazenamento arredondado até ao minuto mais próximo. O valor é um XML "Tipo de Dados de Duração". |
Elemento PerformanceCounters
Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - PerformanceCounters
Ativa a coleção de contadores de desempenho.
Atributo opcional:
Atributo scheduledTransferPeriod opcional. Veja a explicação anteriormente.
Elemento Subordinado | Descrição |
---|---|
PerformanceCounterConfiguration | São necessários os seguintes atributos: - counterSpecifier - O nome do contador de desempenho. Por exemplo, \Processor(_Total)\% Processor Time . Para obter uma lista de contadores de desempenho no anfitrião, execute o comando typeperf .- sampleRate - Com que frequência o contador deve ser amostrado. Atributo opcional: unit - A unidade de medida do contador. Os valores estão disponíveis na Classe UnitType |
sinks | Adicionado em 1,5. Opcional. Aponta para uma localização de sink para também enviar dados de diagnóstico. Por exemplo, Azure Monitor ou Hubs de Eventos. Tenha em atenção que tem de adicionar a propriedade resourceId no elemento Métricas se pretender que os eventos carregados para os Hubs de Eventos tenham um ID de recurso. |
Elemento WindowsEventLog
Árvore: Raiz – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration – WindowsEventLog
Ativa a coleção de Registos de Eventos do Windows.
Atributo scheduledTransferPeriod opcional. Veja a explicação anteriormente.
Elemento Subordinado | Descrição |
---|---|
DataSource | Os registos de Eventos do Windows a recolher. Atributo obrigatório: name - A consulta XPath que descreve os eventos do Windows a recolher. Por exemplo: Application!*[System[(Level <=3)]], System!*[System[(Level <=3)]], System!*[System[Provider[@Name='Microsoft Antimalware']]], Security!*[System[(Level <= 3)] Para recolher todos os eventos, especifique "*" |
sinks | Adicionado em 1,5. Opcional. Aponta para uma localização de sink para também enviar dados de diagnóstico para todos os elementos subordinados que suportam sinks. O exemplo de sink é Application Insights ou Hubs de Eventos. |
Elemento Registos
Árvore: Raiz – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration – Registos
Presente na versão 1.0 e 1.1. Falta na 1.2. Adicionado novamente em 1.3.
Define a configuração da memória intermédia para os registos básicos do Azure.
Atributo | Tipo | Descrição |
---|---|---|
bufferQuotaInMB | unsignedInt | Opcional. Especifica a quantidade máxima de armazenamento do sistema de ficheiros que está disponível para os dados especificados. A predefinição é 0. |
scheduledTransferLogLevelFilter | string | Opcional. Especifica o nível mínimo de gravidade das entradas de registo que são transferidas. O valor predefinido é Indefinido, que transfere todos os registos. Outros valores possíveis (por ordem da maioria das informações) são Verboso, Informações, Aviso, Erro e Crítico. |
scheduledTransferPeriod | duração | Opcional. Especifica o intervalo entre as transferências agendadas de dados, arredondadas até ao minuto mais próximo. A predefinição é PT0S. |
sinks | string | Adicionado em 1,5. Opcional. Aponta para uma localização de sink para também enviar dados de diagnóstico. Por exemplo, Application Insights ou Hubs de Eventos. Tenha em atenção que tem de adicionar a propriedade resourceId no elemento Métricas se pretender que os eventos carregados para os Hubs de Eventos tenham um ID de recurso. |
DockerSources
Árvore: Raiz – DiagnosticsConfiguration – PublicConfig – WadCFG – DiagnosticMonitorConfiguration – DockerSources
Adicionado em 1,9.
Nome do Elemento | Descrição |
---|---|
Estatísticas | Indica ao sistema para recolher estatísticas para contentores do Docker |
SinksConfig Element
Árvore: Raiz – DiagnosticsConfiguration – PublicConfig – WadCFG – SinksConfig
Uma lista de localizações para onde enviar dados de diagnóstico e a configuração associada a essas localizações.
Nome do Elemento | Descrição |
---|---|
Sink | Veja a descrição noutro local nesta página. |
Elemento Sink
Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - Sink
Adicionado na versão 1.5.
Define localizações para onde enviar dados de diagnóstico. Por exemplo, o serviço Application Insights.
Atributo | Tipo | Descrição |
---|---|---|
name | string | Uma cadeia que identifica o nome do sinkname. |
Elemento | Tipo | Descrição |
---|---|---|
Application Insights | string | Utilizado apenas ao enviar dados para o Application Insights. Contenha a Chave de Instrumentação para uma conta ativa do Application Insights à qual tem acesso. |
Channels (Canais) | string | Uma para cada filtragem adicional que transmite |
Elemento Canais
Árvore: Raiz - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - Sink - Canais
Adicionado na versão 1.5.
Define filtros para fluxos de dados de registo que passam por um sink.
Elemento | Tipo | Descrição |
---|---|---|
Canal | string | Veja a descrição noutro local nesta página. |
Elemento de Canal
Tree: Root - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - Sink - Channels - Channel
Adicionado na versão 1.5.
Define localizações para onde enviar dados de diagnóstico. Por exemplo, o serviço Application Insights.
Atributos | Tipo | Descrição |
---|---|---|
logLevel | string | Especifica o nível mínimo de gravidade das entradas de registo que são transferidas. O valor predefinido é Indefinido, que transfere todos os registos. Outros valores possíveis (por ordem da maioria das informações) são Verboso, Informações, Aviso, Erro e Crítico. |
nome | string | Um nome exclusivo do canal para se referir a |
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 final). Estas informações são enviadas para a máquina virtual, mas não podem ser obtidas da mesma.
Elementos Subordinados | Descrição |
---|---|
StorageAccount | A conta de armazenamento a utilizar. São necessários os seguintes atributos - name - O nome da conta de armazenamento. - key - A chave para a conta de armazenamento. - ponto final – o ponto final para aceder à conta de armazenamento. -sasToken (adicionado 1.8.1)- Pode especificar um token SAS em vez de uma chave de conta de armazenamento na configuração privada. Se for fornecida, a chave da conta de armazenamento é ignorada. Requisitos para o Token de SAS: - Suporta apenas o token DE SAS da conta - b, são necessários tipos de serviço t . - a, c, u, w permissões são necessárias. - c, os tipos de recursos o são necessários. - Suporta apenas o protocolo HTTPS - A hora de início e de expiração tem de ser válida. |
Elemento IsEnabled
Árvore: Raiz – DiagnosticsConfiguration – IsEnabled
Booleano. Utilize true
para ativar o diagnóstico ou false
para desativar os diagnósticos.
Configuração de exemplo
Segue-se uma configuração de exemplo completa para a extensão de diagnóstico do Windows apresentada tanto no JSON como no XML.
JSON
O PublicConfig e o PrivateConfig estão separados porque, na maioria dos casos de utilização JSON, são transmitidos como variáveis diferentes. Estes casos incluem Resource Manager modelos, o PowerShell e o Visual Studio.
Nota
A definição de sink do Azure Monitor de configuração pública tem duas propriedades, resourceId e região. Estas apenas são necessárias para VMs Clássicas e serviços Cloud Clássicos. A propriedade região não deve ser utilizada para outros recursos, a propriedade resourceId é utilizada em VMs do ARM para preencher o campo resourceID nos registos carregados para os 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 sink do Azure Monitor de configuração privada tem duas propriedades, PrincipalId e Secret. Estas apenas são necessárias para VMs Clássicas e serviços Cloud Clássicos. Estas propriedades não devem ser utilizadas 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 sink do Azure Monitor de configuração pública tem duas propriedades, resourceId e região. Estas apenas são necessárias para VMs Clássicas e serviços Cloud Clássicos. Estas propriedades não devem ser utilizadas para Resource Manager Máquinas Virtuais ou conjuntos de Dimensionamento de Máquinas Virtuais. Existe também um elemento de Configuração Privada adicional para o sink do Azure Monitor, que passa num ID principal e segredo. Isto só é necessário para VMs Clássicas e Serviços Cloud Clássicas. Para Resource Manager VMs e VMSS, a definição do Azure Monitor no elemento de configuração privada pode ser excluída.