分享方式:


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 可以是 TableBlobTableAndBlob。 數據表是預設值。 選擇 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

可包含 AbsoluteLocalResource 元素,但不包含兩者。

子元素 描述
絕對 要監視之目錄的絕對路徑。 以下為必要屬性:

- 路徑 - 要監視之目錄的絕對路徑。

- 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 屬性。 請參閱稍早的說明。

子項目 描述
PerformanceCounterConfiguration 以下為必要屬性:

- counterSpecifier - 性能計數器的名稱。 例如: \Processor(_Total)\% Processor Time 。 若要取得主機上的效能計數器清單,請執行 命令 typeperf

- sampleRate - 應該取樣計數器的頻率。

選擇性屬性:

unit - 計數器的測量單位。 值可在 UnitType 類別取得
已在1.5中新增。 選擇性。 指向接收位置,以傳送診斷數據。 例如,Azure 監視器或事件中樞。 請注意,如果您想要上傳至事件中樞的事件具有資源標識符,則必須在 Metrics 元素下新增 resourceId 屬性。

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 令牌
- bt 服務類型是必要的。
- 需要 acuw 許可權。
- co 資源類型是必要的。
- 僅支援 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 監視器接收定義有兩個屬性: PrincipalIdSecret。 這些僅適用於傳統 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 監視器定義。