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 元素
樹狀結構︰根目錄 - DiagnosticsConfiguration - PublicConfig
說明公用診斷組態。
子元素 | 描述 |
---|---|
WadCfg | 必要。 請參閱本頁面上其他部分的說明。 |
StorageAccount | 要儲存資料的 Azure 儲存體帳戶名稱。 可能也會在執行 Set-AzureServiceDiagnosticsExtension Cmdlet 時指定為參數。 |
StorageType | 可以是 Table、Blob 或 TableAndBlob。 預設值是 Table。 若選擇 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 元素
樹狀結構︰根目錄 - DiagnosticsConfiguration - PublicConfig - WadCFG
識別並設定要收集的遙測資料。
DiagnosticMonitorConfiguration 元素
樹狀結構︰根目錄 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration
必要
屬性 | 描述 |
---|---|
overallQuotaInMB | 可供 Azure 診斷所收集的各種類型診斷資料取用的本機磁碟空間量上限。 預設設定為 4096 MB。 |
useProxyServer | 設定 Azure 診斷來使用 Proxy 伺服器設定,如 IE 設定中所設定。 |
sinks | 在 1.5 中新增。 選擇性。 針對支援接收的所有子元素,同時要傳送診斷資料的接收位置指標。 接收範例為 Application Insights 或事件中樞。 請注意,如果您想要上傳至事件中樞的事件具有資源識別碼,則必須在計量元素下新增 resourceId 屬性。 |
子元素 | 描述 |
---|---|
CrashDumps | 請參閱本頁面上其他部分的說明。 |
DiagnosticInfrastructureLogs | 啟用收集 Azure 診斷所產生的記錄。 診斷基礎結構記錄適用於疑難排解診斷系統本身。 選用屬性包括: - scheduledTransferLogLevelFilter - 設定所收集之記錄的最低嚴重性層級。 - scheduledTransferPeriod - 排程傳輸至儲存體之間的間隔,無條件進位到最接近的分鐘數。 值是 XML「持續時間資料類型」(英文)。 |
目錄 | 請參閱本頁面上其他部分的說明。 |
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 - 設定是否要展開 Path 中的環境變數。 |
LocalResource | 相對於要監視之本機資源的路徑。 必要屬性包括: - Name - 包含要監視之目錄的本機資源 - relativePath - 包含要監視目錄之 Name 的相對路徑 |
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 - 事件的識別碼。 選用屬性: eventDestination - 要儲存事件的資料表名稱 |
EtwManifestProviderConfiguration 元素
樹狀結構︰根目錄 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - EtwProviders - EtwManifestProviderConfiguration
子元素 | 描述 |
---|---|
DefaultEvents | 選用屬性: eventDestination - 要儲存事件的資料表名稱 |
事件 | 必要屬性: id - 事件的識別碼。 選用屬性: eventDestination - 要儲存事件的資料表名稱 |
Metrics 元素
樹狀結構︰根目錄 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - Metrics
讓您能夠產生已最佳化的效能計數器資料表來進行快速查詢。 除了效能計數器資料表之外,PerformanceCounters 元素中所定義的每個效能計數器都會儲存於 Metrics 資料表中。
resourceId 是必要屬性。 您要部署 Azure 診斷的虛擬機器或虛擬機器擴展集資源識別碼。 從 Azure 入口網站取得 resourceID。 選取 [瀏覽] -[資源群組]> -[名稱]><>。 按一下 [屬性] 圖格,並複製 [識別碼] 欄位的值。 這個 resourceID 屬性用於傳送自訂計量,以及用於將 resourceID 屬性新增至傳送至事件中樞的資料。 請注意,如果您想要上傳至事件中樞的事件具有資源識別碼,則必須在計量元素下新增 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 監視器或事件中樞。 請注意,如果您想要上傳至事件中樞的事件具有資源識別碼,則必須在計量元素下新增 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 | 選擇性。 指定所傳輸記錄項目的最低嚴重性層級。 預設值為 Undefined,會傳輸所有記錄。 其他可能的值 (按照從大到小的順序排列) 為 Verbose、Information、Warning、Error 及 Critical。 |
scheduledTransferPeriod | duration | 選擇性。 指定排程傳輸資料之間的間隔,無條件進位到最接近的分鐘數。 預設值為 PT0S。 |
sinks | string | 在 1.5 中新增。 選擇性。 同時要傳送診斷資料的接收位置指標。 例如,Application Insights 或事件中樞。 請注意,如果您想要上傳至事件中樞的事件具有資源識別碼,則必須在計量元素下新增 resourceId 屬性。 |
DockerSources
樹狀結構︰根目錄 - DiagnosticsConfiguration - PublicConfig - WadCFG - DiagnosticMonitorConfiguration - DockerSources
已在 1.9 版中新增。
元素名稱 | Description |
---|---|
Stats | 會請系統收集 Docker 容器的統計資料 |
SinksConfig 元素
樹狀結構︰根目錄 - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig
傳送診斷資料的位置清單,以及與這些位置相關聯的組態。
元素名稱 | Description |
---|---|
接收 | 請參閱本頁面上其他部分的說明。 |
Sink 元素
樹狀結構︰根目錄 - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - Sink
已在 1.5 版中新增。
定義要傳送診斷資料的目標位置。 例如 Application Insights 服務。
屬性 | 類型 | 描述 |
---|---|---|
name | 字串 | 識別 sinkname 的字串。 |
元素 | 類型 | 描述 |
---|---|---|
Application Insights | 字串 | 僅會在將資料傳送至 Application Insights 時使用。 包含您有權存取之使用中 Application Insights 帳戶的檢測金鑰。 |
聲道 | 字串 | 每個可額外篩選該資料流的其中一個 |
Channels 元素
樹狀結構︰根目錄 - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - Sink - Channels
已在 1.5 版中新增。
針對通過接收之記錄資料的資料流定義篩選器。
元素 | 類型 | 描述 |
---|---|---|
通道 | 字串 | 請參閱本頁面上其他部分的說明。 |
Channel 元素
樹狀結構︰根目錄 - DiagnosticsConfiguration - PublicConfig - WadCFG - SinksConfig - Sink - Channels - Channel
已在 1.5 版中新增。
定義要傳送診斷資料的目標位置。 例如 Application Insights 服務。
屬性 | 類型 | 描述 |
---|---|---|
logLevel | string | 指定所傳輸記錄項目的最低嚴重性層級。 預設值為 Undefined,會傳輸所有記錄。 其他可能的值 (按照從大到小的順序排列) 為 Verbose、Information、Warning、Error 及 Critical。 |
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
因為在大部分的 JSON 使用案例中,PublicConfig 和 PrivateConfig 會分隔開來,因此我們會以不同變數來傳遞這兩個檔案。 這些案例包括 Resource Manager 範本、PowerShell 和 Visual Studio。
注意
公用設定 Azure 監視器接收定義具有兩個屬性: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.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 監視器接收另外還有一個私用設定項目,可傳入主體識別碼和密碼。 這只有傳統 VM 和傳統雲端服務才需要使用。 對於 Resource Manager VM 與 VMSS,可排除私用設定項目中的 Azure 監視器定義。