Windows 診斷延伸模組結構描述
Azure 診斷 擴充功能是 Azure 監視器中的代理程式,可從 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版中新增。
診斷組態檔的最上層元素。
屬性 xmlns - 診斷組態檔的 XML 命名空間為:
http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration
子元素 | 描述 |
---|---|
PublicConfig | 必要。 請參閱此頁面的其他地方的描述。 |
PrivateConfig | 選擇性。 請參閱此頁面的其他地方的描述。 |
IsEnabled | 布林值。 請參閱此頁面的其他地方的描述。 |
PublicConfig 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig
描述公用診斷組態。
子元素 | 描述 |
---|---|
WadCfg | 必要。 請參閱此頁面的其他地方的描述。 |
StorageAccount | 要儲存資料之 Azure 儲存體 帳戶的名稱。 在執行 Set-AzureServiceDiagnosticsExtension Cmdlet 時,也可以指定為參數。 |
StorageType | 可以是 Table、 Blob 或 TableAndBlob。 數據表是預設值。 選擇 TableAndBlob 時,診斷數據會寫入兩次,一次寫入至每個類型。 |
LocalResourceDirectory | 監視代理程式儲存事件數據之虛擬機上的目錄。 如果未設定,則會使用預設目錄: 針對背景工作/Web 角色: C:\Resources\<guid>\directory\<guid>.<RoleName.DiagnosticStore\ 針對虛擬機: C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\<WADVersion>\WAD<WADVersion> 必要的屬性包括: - path - 要由 Azure 診斷 使用的系統上的目錄。 - expandEnvironment - 控制環境變數是否在路徑名稱中展開。 |
WadCFG 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG
識別及設定要收集的遙測數據。
DiagnosticMonitorConfiguration 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration
必要
屬性 | 描述 |
---|---|
overallQuotaInMB | Azure 診斷 收集的各種診斷數據可能耗用的本機磁碟空間數量上限。 默認設定為 4096 MB。 |
useProxyServer | 將 Azure 診斷 設定為使用 Internet Explorer 設定中所設定的 Proxy 伺服器設定。 |
匯 | 已在1.5中新增。 選擇性。 指向接收位置,也傳送支援接收之所有子元素的診斷數據。 接收範例為 Application Insights 或事件中樞。 請注意,如果您想要上傳至事件中樞的事件具有資源標識符,則必須在 Metrics 元素下新增 resourceId 屬性。 |
子元素 | 描述 |
---|---|
CrashDumps | 請參閱此頁面的其他地方的描述。 |
DiagnosticInfrastructureLogs | 啟用 Azure 診斷所產生的記錄集合。 診斷基礎結構記錄適用於診斷系統本身的疑難解答。 選擇性屬性為: - scheduledTransferLogLevelFilter - 設定所收集記錄的最低嚴重性層級。 - scheduledTransferPeriod - 排程傳輸到記憶體之間的間隔,四捨五入到最接近的分鐘。 值為 XML「持續時間數據類型」。 |
Directories | 請參閱此頁面的其他地方的描述。 |
EtwProviders | 請參閱此頁面的其他地方的描述。 |
計量 | 請參閱此頁面的其他地方的描述。 |
PerformanceCounters | 請參閱此頁面的其他地方的描述。 |
WindowsEventLog | 請參閱此頁面的其他地方的描述。 |
DockerSources | 請參閱此頁面的其他地方的描述。 |
CrashDumps 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - CrashDumps
啟用損毀傾印的收集。
屬性 | 描述 |
---|---|
containerName | 選擇性。 要用來儲存損毀傾印之 Azure 儲存體 帳戶中的 Blob 容器名稱。 |
crashDumpType | 選擇性。 設定 Azure 診斷 收集迷你或完整損毀傾印。 |
directoryQuotaPercentage | 選擇性。 設定要保留給 VM 上損毀傾印的整體 QuotaInMB 百分比。 |
子元素 | 描述 |
---|---|
CrashDumpConfiguration | 必要。 定義每個進程的組態值。 也需要下列屬性: processName - 您想要 Azure 診斷 收集損毀傾印的程序名稱。 |
Directory 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - 目錄
啟用目錄內容的集合、IIS 失敗的存取要求記錄和/或 IIS 記錄。
選擇性 scheduledTransferPeriod 屬性。 請參閱稍早的說明。
子元素 | 描述 |
---|---|
IISLogs | 在組態中包含這個項目可啟用 IIS 記錄的集合: containerName - 要用來儲存 IIS 記錄之 Azure 儲存體 帳戶中的 Blob 容器名稱。 |
FailedRequestLogs | 在組態中包含這個專案,可讓您收集 IIS 網站或應用程式失敗要求的相關記錄。 您也必須在系統下啟用追蹤選項。Web.config 中的 WebServer。 |
DataSources | 要監視的目錄清單。 |
DataSources 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - 目錄 - DataSources
要監視的目錄清單。
子元素 | 描述 |
---|---|
DirectoryConfiguration | 必要。 必要屬性: containerName - 要用來儲存記錄檔之 Azure 儲存體 帳戶中的 Blob 容器名稱。 |
DirectoryConfiguration 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - 目錄 - DataSources - DirectoryConfiguration
可包含 Absolute 或 LocalResource 元素,但不包含兩者。
子元素 | 描述 |
---|---|
絕對 | 要監視之目錄的絕對路徑。 以下為必要屬性: - 路徑 - 要監視之目錄的絕對路徑。 - expandEnvironment - 設定 Path 中的環境變數是否展開。 |
LocalResource | 相對於要監視之本機資源的路徑。 必要的屬性包括: - 名稱 - 包含要監視之目錄的本機資源 - relativePath - 包含要監視之目錄的 Name 相對路徑 |
EtwProviders 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders
設定 EventSource 和/或 ETW 指令清單型提供者的 ETW 事件集合。
子元素 | 描述 |
---|---|
EtwEventSourceProviderConfiguration | 設定從 EventSource 類別產生的事件集合。 必要屬性: provider - EventSource 事件的類別名稱。 選擇性屬性為: - scheduledTransferLogLevelFilter - 要傳輸至記憶體帳戶的最低嚴重性層級。 - scheduledTransferPeriod - 排程傳輸到記憶體之間的間隔,四捨五入到最接近的分鐘。 值為 XML「持續時間數據類型」。 |
EtwManifestProviderConfiguration | 必要屬性: provider - 事件提供者的 GUID 選擇性屬性為: - scheduledTransferLogLevelFilter - 要傳輸至記憶體帳戶的最低嚴重性層級。 - scheduledTransferPeriod - 排程傳輸到記憶體之間的間隔,四捨五入到最接近的分鐘。 值為 XML「持續時間數據類型」。 |
EtwEventSourceProviderConfiguration 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders- EtwEventSourceProviderConfiguration
設定從 EventSource 類別產生的事件集合。
子元素 | 描述 |
---|---|
DefaultEvents | 選擇性屬性: eventDestination - 要儲存事件之數據表的名稱 |
事件 | 必要屬性: id - 事件的識別碼。 選擇性屬性: eventDestination - 要儲存事件之數據表的名稱 |
EtwManifestProviderConfiguration 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders - EtwManifestProviderConfiguration
子元素 | 描述 |
---|---|
DefaultEvents | 選擇性屬性: eventDestination - 要儲存事件之數據表的名稱 |
事件 | 必要屬性: id - 事件的識別碼。 選擇性屬性: eventDestination - 要儲存事件之數據表的名稱 |
Metrics 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - 計量
可讓您產生針對快速查詢優化的性能計數器數據表。 PerformanceCounters 元素中定義的每個性能計數器,除了性能計數器數據表之外,也會儲存在 Metrics 數據表中。
需要 resourceId 屬性。 您要部署 Azure 診斷 虛擬機或虛擬機擴展集的資源識別碼。 從 Azure 入口網站 取得 resourceID。 選取 [瀏覽 -> 資源群組 ->< 名稱]。> 按兩下 [ 屬性] 圖格,然後從 [標識符 ] 字段複製值。 這個 resourceID 屬性用於傳送自定義計量,以及將 resourceID 屬性新增至傳送至事件中樞的數據。 請注意,如果您想要上傳至事件中樞的事件具有資源標識符,則必須在 Metrics 元素下新增 resourceId 屬性。
子元素 | 描述 |
---|---|
MetricAggregation | 必要屬性: scheduledTransferPeriod - 排程傳輸到記憶體之間的間隔,四捨五入到最接近的分鐘。 值為 XML「持續時間數據類型」。 |
PerformanceCounters 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - PerformanceCounters
啟用性能計數器的集合。
選擇性屬性:
選擇性 scheduledTransferPeriod 屬性。 請參閱稍早的說明。
WindowsEventLog 元素
樹狀結構:Root - 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)] 若要收集所有事件,請指定 “*” |
匯 | 已在1.5中新增。 選擇性。 指向接收位置,也傳送支援接收之所有子元素的診斷數據。 接收範例為 Application Insights 或事件中樞。 |
Logs 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Logs
出現在 1.0 版和 1.1 版中。 1.2 中遺漏。 已新增回 1.3。
定義基本 Azure 記錄的緩衝區組態。
屬性 | 類型 | 描述 |
---|---|---|
bufferQuotaInMB | unsignedInt | 選擇性。 指定指定資料可用的檔案系統記憶體數量上限。 預設值是 0。 |
scheduledTransferLogLevelFilter | string | 選擇性。 指定傳輸之記錄專案的最小嚴重性層級。 默認值為 Undefined,會傳輸所有記錄。 其他可能的值(依最多到最少的信息順序)是詳細資訊、資訊、警告、錯誤和重大。 |
scheduledTransferPeriod | duration | 選擇性。 指定排程數據傳輸之間的間隔,四捨五入至最接近的分鐘。 預設值為 PT0S。 |
匯 | string | 已在1.5中新增。 選擇性。 指向接收位置,以傳送診斷數據。 例如,Application Insights 或事件中樞。 請注意,如果您想要上傳至事件中樞的事件具有資源標識符,則必須在 Metrics 元素下新增 resourceId 屬性。 |
DockerSources
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - DockerSources
已在1.9中新增。
元素名稱 | 描述 |
---|---|
統計 | 告知系統收集 Docker 容器的統計數據 |
SinksConfig 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig
要傳送診斷數據的位置清單,以及與這些位置相關聯的設定。
元素名稱 | 描述 |
---|---|
接收 | 請參閱此頁面的其他地方的描述。 |
Sink 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - SinksConfig
已在1.5版中新增。
定義要傳送診斷數據的位置。 例如,Application Insights 服務。
屬性 | 類型 | Description |
---|---|---|
name | 字串 | 識別 sinkname 的字串。 |
Element | 類型 | 描述 |
---|---|---|
Application Insights | 字串 | 只有在將數據傳送至 Application Insights 時才使用。 包含您有權存取的作用中 Application Insights 帳戶的檢測密鑰。 |
通路 | 字串 | 每個您串流的其他篩選各一個 |
Channels 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - 接收 - 信道
已在1.5版中新增。
定義透過接收傳遞之記錄數據的數據流篩選。
Element | 類型 | 描述 |
---|---|---|
通道 | 字串 | 請參閱此頁面的其他地方的描述。 |
Channel 元素
樹狀結構:Root - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - 接收 - 信道 - 信道
已在1.5版中新增。
定義要傳送診斷數據的位置。 例如,Application Insights 服務。
屬性 | 類型 | 描述 |
---|---|---|
logLevel | string | 指定傳輸之記錄專案的最小嚴重性層級。 默認值為 Undefined,會傳輸所有記錄。 其他可能的值(依最多到最少的信息順序)是詳細資訊、資訊、警告、錯誤和重大。 |
name | string | 要參考之通道的唯一名稱 |
PrivateConfig 元素
樹狀結構:Root - 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 元素
樹狀結構:Root - DiagnosticsConfiguration - IsEnabled
布林值。 使用 true
來啟用診斷或 false
停用診斷。
範例設定
以下是 JSON 和 XML 中顯示的 Windows 診斷擴充功能完整範例組態。
JSON
PublicConfig 和 PrivateConfig 會分開,因為在大部分的 JSON 使用案例中,它們會以不同的變數形式傳遞。 這些案例包括 Resource Manager 範本、PowerShell 和 Visual Studio。
注意
公用設定 Azure 監視器接收定義有兩個屬性 resourceId 和 region。 這些僅適用於傳統 VM 和傳統雲端服務。 區域屬性不應該用於其他資源,在 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.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"
}
注意
私人設定 Azure 監視器接收定義有兩個屬性: PrincipalId 和 Secret。 這些僅適用於傳統 VM 和傳統雲端服務。 這些屬性不應該用於其他資源。
"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>
注意
公用設定 Azure 監視器接收定義有兩個屬性 resourceId 和 region。 這些僅適用於傳統 VM 和傳統雲端服務。 這些屬性不應該用於 Resource Manager 虛擬機器 或虛擬機擴展集。 Azure 監視器接收也有額外的 Private Config 元素,會傳入主體標識碼和秘密。 這僅適用於傳統 VM 和傳統 雲端服務。 針對 Resource Manager VM 和 VMSS,可以排除私人 config 元素中的 Azure 監視器定義。