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