共用方式為


安裝和設定適用於 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. 如果尚未啟用診斷延伸模組,請選取 [啟用客體層級監視]

    顯示啟用監視的螢幕擷取畫面。

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

    顯示診斷設定的螢幕擷取畫面。

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

    顯示效能計數器的螢幕擷取畫面。

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

    顯示 [記錄] 索引標籤的螢幕擷取畫面,其中已為虛擬機器選取不同的記錄。

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

    顯示 [損毀傾印] 索引標籤的螢幕擷取畫面。

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

    顯示 [接收器] 索引標籤的螢幕擷取畫面,其中已啟用 [將診斷資料傳送至 Azure 監視器] 選項。

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

    顯示受控識別警告的螢幕擷取畫面。

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

    顯示 [代理程式] 索引標籤的螢幕擷取畫面,其中包含設定儲存體帳戶的選項。

  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 診斷監視器和設定變更。
WADDirectoriesTable 診斷監視器所監視的目錄。 此群組包含 IIS 記錄、IIS 失敗要求記錄和自訂目錄。 Blob 記錄檔的位置是在 [容器] 欄位中指定,而 Blob 的名稱則是在 RelativePath 欄位中指定。 AbsolutePath 欄位會指出檔案存在於 Azure 虛擬機器上的位置和名稱。
WadLogsTable 使用追蹤接聽程式在程式碼中寫入的記錄。
WADPerformanceCountersTable 效能計數器。
WADWindowsEventLogsTable Windows 事件記錄。
wad-iis-failedreqlogfiles 塊狀物 包含 IIS 失敗要求記錄中的資訊。
wad-iis-logfiles 塊狀物 包含有關 IIS 的資訊。
「自訂」 塊狀物 自訂容器,該容器是以設定診斷監視器所監視的目錄為基礎。 將會在 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 診斷延伸模組傳送至事件中樞