已啟用 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 監視器代理程式進行疑難排解:
仔細檢閱此處的必要條件。
確認已成功安裝並佈建延伸模組,這會在您的電腦上安裝代理程式二進位檔:
- 開啟 Azure 入口網站 > 選取已啟用 Arc 的伺服器 > 開啟左側窗格中的 [設定]:[擴充] > 'AzureMonitorWindowsAgent' 應會顯示狀態:[成功]
- 如果沒有,請檢查 Arc 代理程式 (連線的電腦代理程式) 是否能夠連線到 Azure,且延伸模組服務正在執行。
您應看到下列輸出:azcmagent show
Resource Name : <server name> [...] Dependent Service Status Agent Service (himds) : running GC Service (gcarcservice) : running Extension Service (extensionservice) : running
- 等候 10-15 分鐘,因為延伸模組可能處於轉換狀態。 如果仍然未顯示,請解除安裝然後重新安裝延伸模組,並且重複驗證以查看延伸模組是否顯示。
- 如果未顯示,請檢查您是否在電腦上
C:\ProgramData\GuestConfig\extension_logs\Microsoft.Azure.Monitor.AzureMonitorWindowsAgent
位置的延伸模組記錄中看到任何錯誤
確認代理程式正在執行:
- 使用下列查詢,檢查代理程式是否在將活動訊號記錄發出至 Log Analytics 工作區。 如果「自訂計量」是 DCR 中唯一的目的地,那麼請略過:
Heartbeat | where Category == "Azure Monitor Agent" and Computer == "<computer-name>" | take 10
- 如果不是,請開啟工作管理員,並檢查 'MonAgentCore.exe' 處理序是否正在執行。 如果是,請等候 5 分鐘的時間讓活動訊號顯示。
- 如果不是,請檢查您是否在電腦上
C:\Resources\Directory\AMADataStore\Configuration
位置的核心代理程式記錄中看到任何錯誤
- 使用下列查詢,檢查代理程式是否在將活動訊號記錄發出至 Log Analytics 工作區。 如果「自訂計量」是 DCR 中唯一的目的地,那麼請略過:
確認 DCR 存在且與已啟用 Arc 的伺服器相關聯:
- 如果使用 Log Analytics 工作區作為目的地,請確認 DCR 存在於與 Log Analytics 工作區相同的實體區域中。
- 在已啟用 Arc 的伺服器上,確認檔案
C:\Resources\Directory\AMADataStore\mcs\mcsconfig.latest.xml
是否存在。 如果此檔案不存在,已啟用 Arc 的伺服器可能無法與 DCR 相關聯。 - 開啟 Azure 入口網站 > 選取您的資料收集規則 > 從左側窗格開啟 [設定]:[資源] > 您應該會看到已啟用 Arc 的伺服器列在這裡
- 如果未列出,按一下 [新增],然後從資源選擇器中選取已啟用 Arc 的伺服器。 在所有 DCR 之間重複進行。
確認代理程式能夠從 AMCS 服務下載相關聯的 DCR:
- 檢查您是否在下列位置看到下載的最新 DCR:
C:\Resources\Directory\AMADataStore\mcs\configchunks
- 檢查您是否在下列位置看到下載的最新 DCR:
收集效能計數器的問題
- 檢查您的 DCR JSON 是否包含 'performanceCounters' 的區段。 如果沒有,請修正您的 DCR。 請參閱如何建立 DCR 或範例 DCR。
- 確認檔案
C:\Resources\Directory\AMADataStore\mcs\mcsconfig.lkg.xml
存在。 - 開啟檔案,並檢查其是否包含
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>
使用「自訂計量」作為目的地的問題
仔細檢閱此處的必要條件。
請確定已正確撰寫相關聯的 DCR 以收集效能計數器,並將其傳送至 Azure 監視器計量。 您應該會在 DCR 中看到這個區段:
"destinations": { "azureMonitorMetrics": { "name":"myAmMetricsDest" } }
執行 PowerShell 命令:
Get-WmiObject Win32_Process -Filter "name = 'MetricsExtension.Native.exe'" | select Name,ExecutablePath,CommandLine | Format-List
驗證輸出中的 CommandLine 參數包含引數 "-TokenSource MSI"
確認
C:\Resources\Directory\AMADataStore\mcs\AuthToken-MSI.json
檔案存在。確認
C:\Resources\Directory\AMADataStore\mcs\CUSTOMMETRIC_<subscription>_<region>_MonitoringAccount_Configuration.json
檔案存在。執行
C:\Packages\Plugins\Microsoft.Azure.Monitor.AzureMonitorWindowsAgent\<version-number>\Monitoring\Agent\table2csv.exe C:\Resources\Directory\AMADataStore\Tables\MaMetricsExtensionEtw.tsf
命令以收集記錄- 此命令會產生檔案 'MaMetricsExtensionEtw.csv'
- 開啟該檔案並尋找任何層級 2 錯誤,然後嘗試修正錯誤。
收集 Windows 事件記錄檔的問題
- 檢查您的 DCR JSON 是否包含 'windowsEventLogs' 的區段。 如果沒有,請修正您的 DCR。 請參閱如何建立 DCR 或範例 DCR。
- 確認檔案
C:\Resources\Directory\AMADataStore\mcs\mcsconfig.lkg.xml
存在。 - 開啟檔案,並檢查其是否包含
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>