Windows 诊断扩展架构
Azure 诊断扩展是 Azure Monitor 中的一个代理,用于从 Azure 计算资源的来宾操作系统和工作负荷中收集监视数据。 本文详细介绍了用于在 Windows 虚拟机和其他计算资源上配置诊断扩展的架构。
注意
本文中的架构适用于版本 1.3 及更高版本(Azure SDK 2.4 及更高版本)。 已对较新的配置节进行注释,以显示其添加于哪一版本。 架构版本 1.0 和 1.2 已存档,不再可用。
公共配置文件架构
通过执行以下 PowerShell 命令下载公共配置文件架构定义:
(Get-AzureServiceAvailableExtension -ExtensionName 'PaaSDiagnostics' -ProviderNamespace 'Microsoft.Azure.Diagnostics').PublicConfigurationSchema | Out-File -Encoding utf8 -FilePath 'C:\temp\WadConfig.xsd'
常见的属性类型
scheduledTransferPeriod 属性显示在多个元素中。 它是到存储空间的计划传输之间的间隔,向上舍入为最接近的分钟数。 值是 XML“持续时间数据类型。”
DiagnosticsConfiguration 元素
树:根 - DiagnosticsConfiguration
在版本 1.3 中添加。
诊断配置文件的顶级元素。
Attribute xmlns - 诊断配置文件的 XML 命名空间是:
http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration
子元素 | 说明 |
---|---|
PublicConfig | 必需。 在此页的其他位置查看说明。 |
PrivateConfig | 可选。 在此页的其他位置查看说明。 |
IsEnabled | 布尔值。 在此页的其他位置查看说明。 |
PublicConfig 元素
树:根 - DiagnosticsConfiguration - PublicConfig
描述公共诊断配置。
子元素 | 说明 |
---|---|
WadCfg | 必需。 在此页的其他位置查看说明。 |
StorageAccount | 用于存储数据的 Azure 存储帐户的名称。 执行 Set-AzureServiceDiagnosticsExtension cmdlet 时,还可能将其指定为参数。 |
StorageType | 可以是 Table、Blob 或 TableAndBlob。 Table 是默认值。 当选择了 TableAndBlob 时,诊断数据将写入两次 -- 针对每种类型写入一次。 |
LocalResourceDirectory | Monitoring Agent 在其中存储事件数据的虚拟机上的目录。 如果不设置,则使用默认目录: 对于辅助角色/Web 角色: C:\Resources\<guid>\directory\<guid>.<RoleName.DiagnosticStore\ 对于虚拟机: C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\<WADVersion>\WAD<WADVersion> 必需属性: - path - Azure 诊断将使用的系统上的目录。 - expandEnvironment - 控制是否在路径名称中扩展环境变量。 |
WadCFG 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG
标识并配置要收集的遥测数据。
DiagnosticMonitorConfiguration 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration
必须
属性 | 说明 |
---|---|
overallQuotaInMB | 由 Azure 诊断收集的各类诊断数据使用的最大本地磁盘空间量。 默认设置是 4096 MB。 |
useProxyServer | 将 Azure 诊断配置为使用在 Internet Explorer 设置中设置的代理服务器设置。 |
sinks | 在 1.5 中添加。 可选。 指向接收器位置以同时发送支持接收器的所有子元素的诊断数据。 接收器示例是 Application Insights 或事件中心。 注意,如果希望上传到事件中心的事件具有资源 ID,则需要在“指标”元素下添加 resourceId 属性 。 |
子元素 | 说明 |
---|---|
CrashDumps | 在此页的其他位置查看说明。 |
DiagnosticInfrastructureLogs | 启用收集 Azure 诊断生成的日志。 诊断基础结构日志可用于排查诊断系统本身的故障。 可选属性: - scheduledTransferLogLevelFilter - 配置收集的日志的最低严重级别。 - scheduledTransferPeriod - 到存储空间的计划传输之间的时间间隔,向上舍入为最接近的分钟数。 值是 XML“持续时间数据类型。” |
Directories | 在此页的其他位置查看说明。 |
EtwProviders | 在此页的其他位置查看说明。 |
度量值 | 在此页的其他位置查看说明。 |
PerformanceCounters | 在此页的其他位置查看说明。 |
WindowsEventLog | 在此页的其他位置查看说明。 |
DockerSources | 在此页的其他位置查看说明。 |
CrashDumps 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - CrashDumps
启用故障转储收集。
属性 | 说明 |
---|---|
containerName | 可选。 Azure 存储帐户中用于存储故障转储的 blob 容器的名称。 |
crashDumpType | 可选。 将 Azure 诊断配置为收集少量或完整故障转储。 |
directoryQuotaPercentage | 可选。 配置为 VM 上故障转储保留的 overallQuotaInMB 的百分比。 |
子元素 | 说明 |
---|---|
CrashDumpConfiguration | 必需。 定义每个进程的配置值。 还必需以下属性: processName - 希望 Azure 诊断为其收集故障转储的进程的名称。 |
Directories 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Directories
启用收集目录内容、IIS 失败的访问请求日志和/或 IIS 日志。
可选的 scheduledTransferPeriod 属性。 请参阅前面的说明。
子元素 | 说明 |
---|---|
IISLogs | 在配置中包括此元素可启用收集 IIS 日志: containerName - Azure 存储帐户中用于存储 IIS 日志的 blob 容器的名称。 |
FailedRequestLogs | 在配置中包括此元素可启用收集有关对 IIS 站点或应用程序的失败请求的日志。 还必须在 Web.config 文件中的 system.WebServer 下启用跟踪选项。 |
DataSources | 要监视的目录的列表。 |
DataSources 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Directories - DataSources
要监视的目录的列表。
子元素 | 说明 |
---|---|
DirectoryConfiguration | 必需。 必需属性: containerName - Azure 存储帐户中用于存储日志文件的 blob 容器的名称。 |
DirectoryConfiguration 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Directories - DataSources - DirectoryConfiguration
可能包括 Absolute 或 LocalResource 元素,但不能同时包含两者。
子元素 | 说明 |
---|---|
Absolute | 要监视的目录的绝对路径。 需要以下属性: - Path - 要监视的目录的绝对路径。 - expandEnvironment - 配置是否在路径中扩展环境变量。 |
LocalResource | 要监视的本地资源的相对路径。 必需属性: - Name - 包含要监视的目录的本地资源 - relativePath - 包含要监视的目录的名称的相对路径 |
EtwProviders 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders
配置从基于 EventSource 和/或 ETW 清单的提供程序收集 ETW 事件。
子元素 | 说明 |
---|---|
EtwEventSourceProviderConfiguration | 配置收集从 EventSource 类生成的事件。 必需属性: provider - EventSource 事件的类名称。 可选属性: - scheduledTransferLogLevelFilter - 要传输到存储帐户的最低严重级别。 - scheduledTransferPeriod - 到存储空间的计划传输之间的时间间隔,向上舍入为最接近的分钟数。 值是 XML“持续时间数据类型。” |
EtwManifestProviderConfiguration | 必需属性: provider - 事件提供程序的 GUID 可选属性: - scheduledTransferLogLevelFilter - 要传输到存储帐户的最低严重级别。 - scheduledTransferPeriod - 到存储空间的计划传输之间的时间间隔,向上舍入为最接近的分钟数。 值是 XML“持续时间数据类型。” |
EtwEventSourceProviderConfiguration 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders- EtwEventSourceProviderConfiguration
配置收集从 EventSource 类生成的事件。
子元素 | 说明 |
---|---|
DefaultEvents | 可选属性: eventDestination -存储事件的表的名称 |
事件 | 必需属性: id - 事件 ID。 可选属性: eventDestination -存储事件的表的名称 |
EtwManifestProviderConfiguration 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders - EtwManifestProviderConfiguration
子元素 | 说明 |
---|---|
DefaultEvents | 可选属性: eventDestination -存储事件的表的名称 |
事件 | 必需属性: id - 事件 ID。 可选属性: eventDestination -存储事件的表的名称 |
Metrics 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Metrics
可以生成针对快速查询进行优化的性能计数器表。 在 PerformanceCounters 元素中定义的每个性能计数器除存储在性能计数器表内外,还存储在度量值表中。
必需 resourceId 属性。 要在其中部署 Azure 诊断的虚拟机或虚拟机规模集的资源 ID。 从 Azure 门户获取 resourceID。 选择“浏览”->“资源组”->“<名称>”。 单击“属性”磁贴,并从“ID”字段复制值。 此 resourceID 属性既用于发送自定义指标,又用于为发送到事件中心的数据添加 resourceID 属性。 注意,如果希望上传到事件中心的事件具有资源 ID,则需要在“指标”元素下添加 resourceId 属性 。
子元素 | 说明 |
---|---|
MetricAggregation | 必需属性: scheduledTransferPeriod - 到存储空间的计划传输之间的时间间隔,向上舍入为最接近的分钟数。 值是 XML“持续时间数据类型。” |
PerformanceCounters 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - PerformanceCounters
启用性能计数器收集。
可选属性:
可选的 scheduledTransferPeriod 属性。 请参阅前面的说明。
子元素 | 说明 |
---|---|
PerformanceCounterConfiguration | 需要以下属性: - counterSpecifier - 性能计数器的名称。 例如, \Processor(_Total)\% Processor Time 。 若要获取性能计数器列表,请在主机上运行 typeperf 命令。- sampleRate - 应对计数器进行采样的频率。 可选属性: unit - 计数器的度量单位。 值在 UnitType 类中提供 |
sinks | 在 1.5 中添加。 可选。 指向同时要发送诊断数据的接收器位置。 例如 Azure Monitor 或事件中心。 注意,如果希望上传到事件中心的事件具有资源 ID,则需要在“指标”元素下添加 resourceId 属性 。 |
WindowsEventLog 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - WindowsEventLog
启用收集 Windows 事件日志。
可选的 scheduledTransferPeriod 属性。 请参阅前面的说明。
子元素 | 说明 |
---|---|
DataSource | 要收集的 Windows 事件日志。 必需属性: name - 描述要收集的 Windows 事件的 XPath 查询。 例如: Application!*[System[(Level <=3)]], System!*[System[(Level <=3)]], System!*[System[Provider[@Name='Microsoft Antimalware']]], Security!*[System[(Level <= 3)] 若要收集所有事件,请指定“*” |
sinks | 在 1.5 中添加。 可选。 指向接收器位置以同时发送支持接收器的所有子元素的诊断数据。 接收器示例是 Application Insights 或事件中心。 |
Logs 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Logs
在 1.0 和 1.1 版本中提供。 1\.2 中不提供。 在 1.3 中重新添加。
定义基本 Azure 日志的缓冲区配置。
属性 | 类型 | 说明 |
---|---|---|
bufferQuotaInMB | unsignedInt | 可选。 指定可用于存储指定数据的文件系统存储最大容量。 默认值为 0。 |
scheduledTransferLogLevelFilter | string | 可选。 指定传输的日志条目的最低严重级别。 默认值是“未定义”,这会传输所有日志。 其他可能的值是(按信息严重级别从高到低排序)“详细”、“信息”、“警告”、“错误”和“严重”。 |
scheduledTransferPeriod | duration | 可选。 指定计划的数据传输之间的时间间隔,向上舍入为最接近的分钟数。 默认是 PT0S。 |
sinks | string | 在 1.5 中添加。 可选。 指向同时要发送诊断数据的接收器位置。 例如,Application Insights 或事件中心。 注意,如果希望上传到事件中心的事件具有资源 ID,则需要在“指标”元素下添加 resourceId 属性 。 |
DockerSources
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - DockerSources
在 1.9 中添加的。
元素名称 | 说明 |
---|---|
Stats | 告诉系统收集 Docker 容器的统计信息 |
SinksConfig 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig
向其中发送诊断数据的位置的列表以及与这些位置关联的配置。
元素名称 | 说明 |
---|---|
接收器 | 在此页的其他位置查看说明。 |
Sink 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - Sink
在版本 1.5 中添加。
定义向其中发送诊断数据的位置。 例如,Application Insights 服务。
属性 | 类型 | 说明 |
---|---|---|
name | string | 标识 sinkname 的字符串。 |
元素 | 类型 | 说明 |
---|---|---|
Application Insights | string | 仅在将数据发送到 Application Insights 时使用。 包含有权访问的有效 Application Insights 帐户的检测密钥。 |
通道 | string | 每个对应一个流处理的其他筛选 |
Channels 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - Sink - Channels
在版本 1.5 中添加。
定义通过接收器的日志数据流的筛选器。
元素 | 类型 | 说明 |
---|---|---|
Channel | string | 在此页的其他位置查看说明。 |
Channel 元素
树:根 - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - Sink - Channels - Channel
在版本 1.5 中添加。
定义向其中发送诊断数据的位置。 例如,Application Insights 服务。
属性 | 类型 | 说明 |
---|---|---|
logLevel | string | 指定传输的日志条目的最低严重级别。 默认值是“未定义”,这会传输所有日志。 其他可能的值是(按信息严重级别从高到低排序)“详细”、“信息”、“警告”、“错误”和“严重”。 |
name | string | 要引用的通道的唯一名称 |
PrivateConfig 元素
树:根 - DiagnosticsConfiguration - PrivateConfig
在版本 1.3 中添加。
可选
存储存储帐户的私有详细信息(名称、密钥和终结点)。 此信息发送到虚拟机,但不能从中检索。
子元素 | 说明 |
---|---|
StorageAccount | 要使用的存储帐户。 需要以下属性 - name - 存储帐户的名称。 - key - 存储帐户的密钥。 - endpoint - 用于访问存储帐户的终结点。 -sasToken(在 1.8.1 中添加)- 可以在专用配置中指定 SAS 令牌而非存储帐户密钥。如果提供了此项,则会忽略存储帐户密钥。 对 SAS 令牌的要求: - 仅支持帐户 SAS 令牌 - b、t 服务类型是必需的。 - a、c、u、w 权限是必需的。 - c、o 资源类型是必需的。 - 仅支持 HTTPS 协议 - 起始时间和到期时间必须有效。 |
IsEnabled 元素
树:根 - DiagnosticsConfiguration - IsEnabled
布尔值。 使用 true
启用诊断或使用 false
禁用诊断。
配置示例
以下是以 JSON 和 XML 格式显示的 Windows 诊断扩展的完整示例配置。
JSON
PublicConfig 和 PrivateConfig 是分开的,因为在大多数 JSON 用例中,它们作为不同的变量传递。 这些用例包括资源管理器模板、PowerShell 和 Visual Studio。
注意
公共配置 Azure Monitor 接收器定义有两个属性:resourceId 和 region。 这些属性仅是经典 VM 和经典云服务所必需的。 region 属性不应用于其他资源,在 ARM VM 上使用 resourceId 属性以将 resourceID 字段填充到上传到事件中心的日志中 。
"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.chinacloudapi.cn/diageventhub",
"SharedAccessKeyName": "SendRule",
"usePublisherId": false
}
},
{
"name": "secondaryEventHub",
"EventHub": {
"Url": "https://myeventhub-ns.servicebus.chinacloudapi.cn/secondarydiageventhub",
"SharedAccessKeyName": "SendRule",
"usePublisherId": false
}
},
{
"name": "secondaryStorageAccount",
"StorageAccount": {
"name": "secondarydiagstorageaccount",
"endpoint": "https://core.chinacloudapi.cn"
}
}
]
}
},
"StorageAccount": "diagstorageaccount",
"StorageType": "TableAndBlob"
}
注意
专用配置 Azure Monitor 接收器定义有两个属性:PrincipalId 和 Secret。 这些属性仅是经典 VM 和经典云服务所必需的。 这些属性不应用于其他资源。
"PrivateConfig" {
"storageAccountName": "diagstorageaccount",
"storageAccountKey": "{base64 encoded key}",
"storageAccountEndPoint": "https://core.chinacloudapi.cn",
"storageAccountSasToken": "{sas token}",
"EventHub": {
"Url": "https://myeventhub-ns.servicebus.chinacloudapi.cn/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.chinacloudapi.cn",
"sasToken": "{sas token}"
}
]
},
"SecondaryEventHubs": {
"EventHub": [
{
"Url": "https://myeventhub-ns.servicebus.chinacloudapi.cn/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.chinacloudapi.cn/diageventhub" SharedAccessKeyName="SendRule" usePublisherId="false" />
</Sink>
<Sink name="secondaryEventHub"> <!-- Added in 1.7 -->
<EventHub Url="https://myeventhub-ns.servicebus.chinacloudapi.cn/secondarydiageventhub" SharedAccessKeyName="SendRule" usePublisherId="false" />
</Sink>
<Sink name="secondaryStorageAccount"> <!-- Added in 1.7 -->
<StorageAccount name="secondarydiagstorageaccount" endpoint="https://core.chinacloudapi.cn" />
</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.chinacloudapi.cn/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.chinacloudapi.cn" sasToken="{sas token}" />
</SecondaryStorageAccounts>
<SecondaryEventHubs>
<EventHub Url="https://myeventhub-ns.servicebus.chinacloudapi.cn/secondarydiageventhub" SharedAccessKeyName="SendRule" SharedAccessKey="{base64 encoded key}" />
</SecondaryEventHubs>
</PrivateConfig>
<IsEnabled>true</IsEnabled>
</DiagnosticsConfiguration>
注意
公共配置 Azure Monitor 接收器定义有两个属性:resourceId 和 region。 这些属性仅是经典 VM 和经典云服务所必需的。 这些属性不应该用于资源管理器虚拟机或虚拟机规模集。 Azure Monitor 接收器还有一个额外的 Private Config 元素,它传入主体 ID 和机密。 此属性仅是经典 VM 和经典云服务所必需的。 对于资源管理器 VM 和 VMSS,可以排除 private config 元素中的 Azure Monitor 定义。