安裝和設定適用於 Windows 的 Azure 診斷延伸模組 (WAD)
Azure 診斷延伸模組是 Azure 監視器中的代理程式,可收集來自客體作業系統的監視資料,以及 Azure 虛擬機器和其他計算資源的工作負載。 本文提供如何安裝和設定適用於 Windows 的 Azure 診斷延伸模組資訊,並描述如何將資料儲存在 Azure 儲存體帳戶中。
此診斷延伸模組會實作為 Azure 中的 虛擬機器延伸模組。 其支援使用 Azure Resource Manager 範本、PowerShell 和 Azure CLI 的相同安裝選項。 如需如何安裝和維護虛擬機器延伸模組的資訊,請參閱適用於 Windows 的虛擬機器延伸模組和功能。
概觀
當您設定適用於 Windows 的 Azure 診斷延伸模組時,必須指定儲存體帳戶來傳送所有指定的資料。 您可以選擇性地新增一或多個「資料接收器」,將資料傳送至不同的位置:
- Azure 監視器接收器:將客體效能資料傳送至 Azure 監視器計量。
- Azure 事件中樞接收器:將客體效能和記錄資料傳送至事件中樞,以在 Azure 外部轉送。 無法在 Azure 入口網站中設定此接收器。
使用 Azure 入口網站進行安裝
您可以在 Azure 入口網站中,於個別虛擬機器上安裝和設定診斷延伸模組。 您將使用介面,而不是直接透過設定。 當您啟用診斷擴充功能時,其會自動使用包含最常見效能計數器和事件的預設設定。 您可以根據您的特定需求來修改此預設設定。
注意
下列步驟描述診斷延伸模組的最常見設定。 如需所有設定選項的詳細資訊,請參閱 Windows 診斷延伸模組結構描述。
在 Azure 入口網站中開啟虛擬機器的功能表。
在 VM 功能表的 [監視] 區段中,選取 [診斷設定]。
如果尚未啟用診斷延伸模組,請選取 [啟用客體層級監視]。
這會為 VM 建立新的 Azure 儲存體帳戶, 並根據 VM 的資源群組名稱來命名。 然後會選取一組預設的客體效能計數器和記錄。
在 [效能計數器] 索引標籤上,選取您想要從此虛擬機器收集的客體計量。 使用 [自訂] 設定,以進行更進階的選取。
在 [記錄] 索引標籤上,選取要從虛擬機器收集的記錄。 記錄可以傳送至儲存體或事件中樞,但不能傳送至 Azure 監視器。 使用 Log Analytics 代理程式,將來賓記錄收集至 Azure 監視器。
在 [損毀傾印] 索引標籤上,指定在損毀後收集記憶體傾印的任何程序。 此資料會寫入至儲存體帳戶中的診斷設定。 您可以選擇性地指定 Blob 容器。
在 [接收器] 索引標籤上,指定是否要將資料傳送至 Azure 儲存體以外的位置。 如果您選取 [Azure 監視器],系統會將來賓效能資料傳送至 Azure 監視器計量。 您無法使用 Azure 入口網站來設定事件中樞接收器。
如果您尚未針對虛擬機器啟用系統指派的身分識別,當您儲存 Azure 監視器接收器設定時,可能會看到下列警告。 選取橫幅可啟用系統指派的身分識別。
在 [代理程式] 索引標籤上,您可以變更儲存體帳戶、設定磁碟配額,以及指定是否要收集診斷基礎結構記錄。
選取儲存 以儲存設定。
注意
診斷延伸模組的設定可以是 JSON 或 XML 格式,但在 Azure 入口網站中完成的任何設定一律會以 JSON 形式儲存。 如果您使用 XML 搭配另一個設定方法,然後透過 Azure 入口網站變更您的組態,則設定會變更為 JSON。 此外,沒有選項可以設定這些記錄的保留期間。
Resource Manager 範本
如需使用 Azure Resource Manager 範本部署診斷延伸模組的資訊,請參閱使用 Windows VM 和 Azure Resource Manager 範本的監視和診斷。
Azure CLI 部署
您可以使用 Azure CLI,透過 az vm extension set 將 Azure 診斷延伸模組部署到現有的虛擬機器,如下列範例所示:
az vm extension set \
--resource-group myResourceGroup \
--vm-name myVM \
--name IaaSDiagnostics \
--publisher Microsoft.Azure.Diagnostics \
--protected-settings protected-settings.json \
--settings public-settings.json
受保護的設定會定義於設定結構描述的 PrivateConfig 元素中。 下列是定義儲存體帳戶其受保護設定檔案的基本範例。 如需私人設定的完整詳細資料,請參閱範例設定。
{
"storageAccountName": "mystorageaccount",
"storageAccountKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"storageAccountEndPoint": "https://core.windows.net"
}
公用設定會定義於設定結構描述的 Public 元素中。 下列是公用設定檔案的基本範例,其可收集診斷基礎結構記錄、單一效能計數器和單一事件記錄檔。 如需公用設定的完整詳細資料,請參閱範例設定。
{
"StorageAccount": "mystorageaccount",
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 5120,
"PerformanceCounters": {
"scheduledTransferPeriod": "PT1M",
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "\\Processor Information(_Total)\\% Processor Time",
"unit": "Percent",
"sampleRate": "PT60S"
}
]
},
"WindowsEventLog": {
"scheduledTransferPeriod": "PT1M",
"DataSource": [
{
"name": "Application!*[System[(Level=1 or Level=2 or Level=3)]]"
}
]
}
}
}
}
PowerShell 部署
您可以使用 PowerShell,透過 Set-AzVMDiagnosticsExtension 將 Azure 診斷延伸模組部署到現有的虛擬機器,如下列範例所示:
Set-AzVMDiagnosticsExtension -ResourceGroupName "myvmresourcegroup" `
-VMName "myvm" `
-DiagnosticsConfigurationPath "DiagnosticsConfiguration.json"
私人設定是在 PrivateConfig 元素中定義。 公用設定會定義於設定結構描述的 Public 元素中。 您也可以選擇將儲存體帳戶的詳細資料指定為 Set-AzVMDiagnosticsExtension
Cmdlet 的參數,而不是將其包含在私人設定中。
下列是設定檔的基本範例,其可收集診斷基礎結構記錄、單一效能計數器和單一事件記錄檔。 如需私人和公用設定的完整詳細資料,請參閱範例設定。
{
"PublicConfig": {
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": 10000,
"DiagnosticInfrastructureLogs": {
"scheduledTransferLogLevelFilter": "Error"
},
"PerformanceCounters": {
"scheduledTransferPeriod": "PT1M",
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "\\Processor(_Total)\\% Processor Time",
"sampleRate": "PT3M",
"unit": "percent"
}
]
},
"WindowsEventLog": {
"scheduledTransferPeriod": "PT1M",
"DataSource": [
{
"name": "Application!*[System[(Level=1 or Level=2 or Level=3)]]"
}
]
}
}
},
"StorageAccount": "mystorageaccount",
"StorageType": "TableAndBlob"
},
"PrivateConfig": {
"storageAccountName": "mystorageaccount",
"storageAccountKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"storageAccountEndPoint": "https://core.windows.net"
}
}
另請參閱使用 PowerShell 在執行 Windows 的虛擬機器中啟用 Azure 診斷。
資料存放區
下表列出從診斷擴充功能收集而來的不同資料類型,以及其是以資料表或 Blob 的形式儲存。 資料表中儲存的資料也可以儲存在 Blob 中,視您的公用設定中的 StorageType 設定而定。
資料 | 儲存體類型 | 描述 |
---|---|---|
WADDiagnosticInfrastructureLogsTable | Table | 診斷監視器和設定變更。 |
WADDirectoriesTable | Table | 診斷監視器所監視的目錄。 此群組包含 IIS 記錄、IIS 失敗要求記錄和自訂目錄。 Blob 記錄檔的位置是在 [容器] 欄位中指定,而 Blob 的名稱則是在 RelativePath 欄位中指定。 AbsolutePath 欄位會指出檔案存在於 Azure 虛擬機器上的位置和名稱。 |
WadLogsTable | Table | 使用追蹤接聽程式在程式碼中寫入的記錄。 |
WADPerformanceCountersTable | Table | 效能計數器。 |
WADWindowsEventLogsTable | Table | Windows 事件記錄。 |
wad-iis-failedreqlogfiles | Blob | 包含 IIS 失敗要求記錄中的資訊。 |
wad-iis-logfiles | Blob | 包含有關 IIS 的資訊。 |
"custom" | Blob | 自訂容器,該容器是以設定診斷監視器所監視的目錄為基礎。 將會在 WADDirectoriesTable 中指定此 Blob 容器的名稱。 |
用來檢視診斷資料的工具
有數個工具可用來檢視傳輸至儲存體後的資料。 例如:
- Visual Studio 中的伺服器總管:如果您已安裝 Azure Tools for Microsoft Visual Studio,您可以在伺服器總管中使用 Azure 儲存體節點,從您的 Azure 儲存體帳戶檢視唯讀的 Blob 和資料表資料。 您可以從本機儲存體模擬器帳戶及為 Azure 建立的儲存體帳戶顯示資料。 如需詳細資訊,請參閱使用伺服器總管瀏覽和管理儲存體資源。
- Microsoft Azure 儲存體總管:此獨立應用程式可讓您在 Windows、OSX 和 Linux 上輕鬆使用 Azure 儲存體資料。
- Azure Management Studio:此工具包含 Azure Diagnostics Manager。 您可以使用它來檢視、下載及管理在 Azure 上執行之應用程式所收集的診斷資料。
下一步
如需將監視資料轉送至 Azure 事件中樞的資訊,請參閱將資料從 Azure 診斷延伸模組傳送至事件中樞。