分享方式:


針對 Windows 虛擬機器和擴展集上 Azure 監視器代理程式的疑難排解指引

Azure 監視器代理程式概觀

進一步閱讀之前,您必須熟悉 Azure 監視器代理程式資料收集規則

詞彙

名稱 縮略字 描述
Azure 監視器代理程式 AMA 新的 Azure 監視器代理程式
資料收集規則 DCR 關於代理程式設定資料收集的規則,亦即要收集的內容、傳送目的地等等
Azure 監視器設定服務 AMCS 裝載於 Azure 中的區域服務,可控制此代理程式和其他 Azure 監視器部分的資料收集。 代理程式會呼叫此服務以擷取 DCR。
記錄端點 -- 用於將資料傳送至 Log Analytics 工作區的端點
計量端點 -- 用於將資料傳送至 Azure 監視器計量資料庫的端點。
Instance Metadata Service 與 Hybrid IMDS 和 HIMDS 裝載於 Azure 中的服務,可提供目前執行中的虛擬機器相關資訊,以及個別提供擴展集 (透過 IMDS) 和已啟用 Arc 的伺服器 (透過 HIMDS) 相關資訊
Log Analytics 工作區 LAW Azure 監視器中的目的地,您可以將代理程式收集的記錄傳送至此
自訂計量 -- Azure 監視器中的目的地,您可以將代理程式收集的客體計量傳送至此

基本疑難排解步驟 (安裝、代理程式未執行、設定問題)

請遵循下列步驟,針對在 Windows 虛擬機器上執行的最新版 Azure 監視器代理程式進行疑難排解:

  1. 仔細檢閱此處的必要條件

  2. 確認已成功安裝並佈建延伸模組,這會在您的電腦上安裝代理程式二進位檔

    1. 開啟 Azure 入口網站 > 選取虛擬機器 > 從左側窗格開啟 [設定]:[擴充功能 + 應用程式] > 'AzureMonitorWindowsAgent' 應會顯示的狀態為:「佈建成功」
    2. 如果未顯示,請檢查電腦是否可以連線到 Azure,並使用下列命令尋找要安裝的延伸模組:
      az vm extension image list-versions --location <machine-region> --name AzureMonitorWindowsAgent --publisher Microsoft.Azure.Monitor
      
    3. 等候 10-15 分鐘,因為延伸模組可能處於轉換狀態。 如果仍然未顯示,請解除安裝然後重新安裝延伸模組,並且重複驗證以查看延伸模組是否顯示。
    4. 如果未顯示,請檢查您是否在電腦上 C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Monitor.AzureMonitorWindowsAgent 位置的延伸模組記錄中看到任何錯誤
  3. 確認代理程式正在執行

    1. 使用下列查詢,檢查代理程式是否在將活動訊號記錄發出至 Log Analytics 工作區。 如果「自訂計量」是 DCR 中唯一的目的地,那麼請略過:
      Heartbeat | where Category == "Azure Monitor Agent" and Computer == "<computer-name>" | take 10
      
    2. 如果不是,請開啟工作管理員,並檢查 'MonAgentCore.exe' 處理序是否正在執行。 如果是,請等候 5 分鐘的時間讓活動訊號顯示。
    3. 如果不是,請檢查您是否在電腦上 C:\WindowsAzure\Resources\AMADataStore.<virtual-machine-name>\Configuration 位置的核心代理程式記錄中看到任何錯誤
  4. 確認 DCR 存在且與虛擬機器相關聯:

    1. 如果使用 Log Analytics 工作區作為目的地,請確認 DCR 存在於與 Log Analytics 工作區相同的實體區域中。
    2. 在您的虛擬機器上,確認檔案 C:\WindowsAzure\Resources\AMADataStore.<virtual-machine-name>\mcs\mcsconfig.latest.xml 存在。 如果此檔案不存在:
      • 虛擬機器可能未與 DCR 相關聯。 請參閱步驟 3
      • 虛擬機器可能未啟用受控識別。 請參閱這裡以了解如何啟用。
      • IMDS 服務未執行/無法從虛擬機器存取。 請檢查您是否可以從電腦存取 IMDS
      • AMA 無法存取 IMDS。 請檢查您是否會在 C:\WindowsAzure\Resources\AMADataStore.<virtual-machine-name>\Tables\MAEventTable.tsf 檔案中看到 IMDS 錯誤。
    3. 開啟 Azure 入口網站 > 選取您的資料收集規則 > 從左側窗格開啟 [設定]:[資源] > 您應該會看到此處所列出的虛擬機器。
    4. 如果未列出,請按一下 [新增],然後從資源選擇器中選取您的虛擬機器。 在所有 DCR 之間重複進行。
  5. 確認代理程式能夠從 AMCS 服務下載相關聯的 DCR:

    1. 檢查您是否在下列位置看到下載的最新 DCR:C:\WindowsAzure\Resources\AMADataStore.<virtual-machine-name>\mcs\configchunks

收集效能計數器的問題

  1. 檢查您的 DCR JSON 是否包含 'performanceCounters' 的區段。 如果沒有,請修正您的 DCR。 請參閱如何建立 DCR範例 DCR
  2. 確認檔案 C:\WindowsAzure\Resources\AMADataStore.<virtual-machine-name>\mcs\mcsconfig.lkg.xml 存在。
  3. 開啟檔案,並檢查其是否包含 CounterSet 節點,如下列範例所示:
    <CounterSet storeType="Local" duration="PT1M" 
        eventName="c9302257006473204344_16355538690556228697" 
        sampleRateInSeconds="15" format="Factored">
        <Counter>\Processor(_Total)\% Processor Time</Counter>
        <Counter>\Memory\Committed Bytes</Counter>
        <Counter>\LogicalDisk(_Total)\Free Megabytes</Counter>
        <Counter>\PhysicalDisk(_Total)\Avg. Disk Queue Length</Counter>
    </CounterSet>
    

使用「自訂計量」作為目的地的問題

  1. 仔細檢閱此處的必要條件
  2. 請確定已正確撰寫相關聯的 DCR 以收集效能計數器,並將其傳送至 Azure 監視器計量。 您應該會在 DCR 中看到這個區段:
    "destinations": {  
    "azureMonitorMetrics": {  
        "name":"myAmMetricsDest" 
        } 
    }
    
  3. 執行 PowerShell 命令:
    Get-WmiObject Win32_Process -Filter "name = 'MetricsExtension.Native.exe'" | select Name,ExecutablePath,CommandLine | Format-List
    
    驗證輸出中的 CommandLine 參數包含引數 "-TokenSource MSI"
  4. 確認 C:\WindowsAzure\Resources\AMADataStore.<virtual-machine-name>\mcs\AuthToken-MSI.json 檔案存在。
  5. 確認 C:\WindowsAzure\Resources\AMADataStore.<virtual-machine-name>\mcs\CUSTOMMETRIC_<subscription>_<region>_MonitoringAccount_Configuration.json 檔案存在。
  6. 執行 C:\Packages\Plugins\Microsoft.Azure.Monitor.AzureMonitorWindowsAgent\<version-number>\Monitoring\Agent\table2csv.exe C:\WindowsAzure\Resources\AMADataStore.<virtual-machine-name>\Tables\MaMetricsExtensionEtw.tsf 命令以收集記錄
    1. 此命令會產生檔案 'MaMetricsExtensionEtw.csv'
    2. 開啟該檔案並尋找任何層級 2 錯誤,然後嘗試修正錯誤。

收集 Windows 事件記錄檔的問題

  1. 檢查您的 DCR JSON 是否包含 'windowsEventLogs' 的區段。 如果沒有,請修正您的 DCR。 請參閱如何建立 DCR範例 DCR
  2. 確認檔案 C:\WindowsAzure\Resources\AMADataStore.<virtual-machine-name>\mcs\mcsconfig.lkg.xml 存在。
  3. 開啟檔案,並檢查其是否包含 Subscription 節點,如下列範例所示:
    <Subscription eventName="c9302257006473204344_14882095577508259570" 
    query="System!*[System[(Level = 1 or Level = 2 or Level = 3)]]">
        <Column name="ProviderGuid" type="mt:wstr" defaultAssignment="00000000-0000-0000-0000-000000000000">
          <Value>/Event/System/Provider/@Guid</Value>
        </Column>
        ...
    
        </Column>
    </Subscription>