分享方式:


已啟用 Windows Arc 的伺服器上的 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 Arc 的伺服器上執行的最新版 Azure 監視器代理程式進行疑難排解:

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

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

    1. 開啟 Azure 入口網站 > 選取已啟用 Arc 的伺服器 > 開啟左側窗格中的 [設定]:[擴充] > 'AzureMonitorWindowsAgent' 應會顯示狀態:[成功]
    2. 如果沒有,請檢查 Arc 代理程式 (連線的電腦代理程式) 是否能夠連線到 Azure,且延伸模組服務正在執行。
      azcmagent show
      
      您應看到下列輸出:
      Resource Name                           : <server name>
      [...]
      Dependent Service Status
        Agent Service (himds)                 : running
        GC Service (gcarcservice)             : running
        Extension Service (extensionservice)  : running
      
    3. 等候 10-15 分鐘,因為延伸模組可能處於轉換狀態。 如果仍然未顯示,請解除安裝然後重新安裝延伸模組,並且重複驗證以查看延伸模組是否顯示。
    4. 如果未顯示,請檢查您是否在電腦上 C:\ProgramData\GuestConfig\extension_logs\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:\Resources\Directory\AMADataStore\Configuration 位置的核心代理程式記錄中看到任何錯誤
  4. 確認 DCR 存在且與已啟用 Arc 的伺服器相關聯:

    1. 如果使用 Log Analytics 工作區作為目的地,請確認 DCR 存在於與 Log Analytics 工作區相同的實體區域中。
    2. 在已啟用 Arc 的伺服器上,確認檔案 C:\Resources\Directory\AMADataStore\mcs\mcsconfig.latest.xml 是否存在。 如果此檔案不存在,已啟用 Arc 的伺服器可能無法與 DCR 相關聯。
    3. 開啟 Azure 入口網站 > 選取您的資料收集規則 > 從左側窗格開啟 [設定]:[資源] > 您應該會看到已啟用 Arc 的伺服器列在這裡
    4. 如果未列出,按一下 [新增],然後從資源選擇器中選取已啟用 Arc 的伺服器。 在所有 DCR 之間重複進行。
  5. 確認代理程式能夠從 AMCS 服務下載相關聯的 DCR:

    1. 檢查您是否在下列位置看到下載的最新 DCR:C:\Resources\Directory\AMADataStore\mcs\configchunks

收集效能計數器的問題

  1. 檢查您的 DCR JSON 是否包含 'performanceCounters' 的區段。 如果沒有,請修正您的 DCR。 請參閱如何建立 DCR範例 DCR
  2. 確認檔案 C:\Resources\Directory\AMADataStore\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:\Resources\Directory\AMADataStore\mcs\AuthToken-MSI.json 檔案存在。

  5. 確認 C:\Resources\Directory\AMADataStore\mcs\CUSTOMMETRIC_<subscription>_<region>_MonitoringAccount_Configuration.json 檔案存在。

  6. 執行 C:\Packages\Plugins\Microsoft.Azure.Monitor.AzureMonitorWindowsAgent\<version-number>\Monitoring\Agent\table2csv.exe C:\Resources\Directory\AMADataStore\Tables\MaMetricsExtensionEtw.tsf 命令以收集記錄

    1. 此命令會產生檔案 'MaMetricsExtensionEtw.csv'
    2. 開啟該檔案並尋找任何層級 2 錯誤,然後嘗試修正錯誤。

收集 Windows 事件記錄檔的問題

  1. 檢查您的 DCR JSON 是否包含 'windowsEventLogs' 的區段。 如果沒有,請修正您的 DCR。 請參閱如何建立 DCR範例 DCR
  2. 確認檔案 C:\Resources\Directory\AMADataStore\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>