安裝和設定適用於 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 診斷延伸模組結構描述

  1. 在 Azure 入口網站中開啟虛擬機器的功能表。

  2. 在 VM 功能表的 [監視] 區段中,選取 [診斷設定]

  3. 如果尚未啟用診斷延伸模組,請選取 [啟用客體層級監視]

    Screenshot that shows enabling monitoring.

  4. 這會為 VM 建立新的 Azure 儲存體帳戶, 並根據 VM 的資源群組名稱來命名。 然後會選取一組預設的客體效能計數器和記錄。

    Screenshot that shows Diagnostic settings.

  5. 在 [效能計數器] 索引標籤上,選取您想要從此虛擬機器收集的客體計量。 使用 [自訂] 設定,以進行更進階的選取。

    Screenshot that shows Performance counters.

  6. 在 [記錄] 索引標籤上,選取要從虛擬機器收集的記錄。 記錄可以傳送至儲存體或事件中樞,但不能傳送至 Azure 監視器。 使用 Log Analytics 代理程式,將來賓記錄收集至 Azure 監視器。

    Screenshot that shows the Logs tab with different logs selected for a virtual machine.

  7. 在 [損毀傾印] 索引標籤上,指定在損毀後收集記憶體傾印的任何程序。 此資料會寫入至儲存體帳戶中的診斷設定。 您可以選擇性地指定 Blob 容器。

    Screenshot that shows the Crash dumps tab.

  8. 在 [接收器] 索引標籤上,指定是否要將資料傳送至 Azure 儲存體以外的位置。 如果您選取 [Azure 監視器],系統會將來賓效能資料傳送至 Azure 監視器計量。 您無法使用 Azure 入口網站來設定事件中樞接收器。

    Screenshot that shows the Sinks tab with the Send diagnostic data to Azure Monitor option enabled.

    如果您尚未針對虛擬機器啟用系統指派的身分識別,當您儲存 Azure 監視器接收器設定時,可能會看到下列警告。 選取橫幅可啟用系統指派的身分識別。

    Screenshot that shows the managed identity warning.

  9. 在 [代理程式] 索引標籤上,您可以變更儲存體帳戶、設定磁碟配額,以及指定是否要收集診斷基礎結構記錄。

    Screenshot that shows the Agent tab with the option to set the storage account.

  10. 選取儲存 以儲存設定。

注意

診斷延伸模組的設定可以是 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 診斷延伸模組傳送至事件中樞