Windows 事件記錄檔是用戶端作系統和 Windows 機器工作負載健康情況的一些最常見來源。 您可以從標準記錄 (例如系統和應用程式) 以及所需監視應用程式建立的任何自訂記錄中收集事件。 使用 數據收集規則 (DCR) 搭配 Windows 事件數據源,從虛擬機收集 Windows 事件 記錄檔。
如需建立 DCR 的詳細數據,請參閱 使用 Azure 監視器從 VM 用戶端收集數據。 本文提供 Windows 事件數據來源類型的其他詳細數據。
備註
若要直接使用 DCR 定義,或使用 ARM 範本等其他方法進行部署,請參閱 Azure 監視器中的數據收集規則 (DCR) 範例。
設定 Windows 事件資料來源
使用 Azure 監視器中的從虛擬機用戶端收集數據程式建立 DCR。 在 DCR 的 [收集和傳遞] 索引標籤上,從 [數據源類型] 下拉式清單中選取 [Windows 事件記錄檔]。 從一組要收集的記錄和嚴重性等級中選取。 對於每個記錄,只會收集具有選取的嚴重性層級的記錄。
小提示
如果您選取 DCR 中的 安全性 記錄檔,事件會傳送至 Log Analytics 工作區中的 事件 數據表,其中包含來自系統與應用程式等其他記錄的事件。 另一個選項是在工作區上啟用 Microsoft Sentinel ,並 透過 AMA 連接器啟用 Microsoft Sentinel 的 Windows 安全性事件。 這會使用相同的 Azure 監視器代理程式 並收集相同的事件,但會傳送至 Sentinel 所使用的 SecurityEvent 數據表。
選取 [自訂],以 使用 XPath 查詢篩選事件。 使用 XPath 指定要收集的事件,您即可對收集的事件進行更細微的控制。 如需 XPath 查詢的詳細數據和範例,請參閱 使用 XPath 查詢篩選事件 。
新增目的地
Windows 事件數據只能傳送至儲存在 事件 數據表中的 Log Analytics 工作區。 新增 Azure 監視器記錄 類型的目的地,然後選取 Log Analytics 工作區。 雖然您可以新增多個工作區,但請注意,這會將重複的數據傳送至每個工作區,進而產生額外的成本。
確認資料收集
若要確認正在收集數據,請檢查 事件 數據表中的記錄。 從虛擬機或 Azure 入口網站中的 Log Analytics 工作區,選取 [ 記錄 ],然後按兩下 [ 資料表] 按鈕。 在 [虛擬機器] 類別下,按一下 [事件] 旁的 [執行]。
使用 XPath 查詢篩選事件
Azure 入口網站中的基本設定僅提供有限的能力來根據記錄和嚴重性篩選事件。 若要指定更細微的篩選,請使用自定義組態,並指定只篩選所需事件的 XPath。
XPath 項目是以格式 LogName!XPathQuery 撰寫。 例如,您可能只想從應用程式事件記錄檔傳回事件識別碼為 1035 的事件。 這些事件的 XPathQuery 會是 *[System[EventID=1035]]。 因為您要擷取應用程式事件記錄檔的事件,所以 XPath 為 Application!*[System[EventID=1035]]
備註
Azure 監視器代理程式會使用 EvtSubscribe 系統 API 來訂閱 Windows 事件記錄檔。 Windows OS 不允許訂閱類型為 Analytic/Debug 通道的 Windows 事件記錄檔。 因此,您無法從分析和偵錯通道收集或匯出數據至Log Analytics工作區。
從 Windows 事件檢視器擷取 XPath 查詢
您可以使用 Windows 中的事件查看器來擷取 XPath 查詢,如下列螢幕快照所示。
將 XPath 查詢貼至 [新增資料來源] 畫面上的欄位時,如步驟 5 所示,您必須附加後面加上驚嘆號 (!) 的記錄類型類別。
小提示
您可以使用 PowerShell Cmdlet Get-WinEvent 搭配 FilterXPath 參數,先在本機電腦上測試 XPath 查詢的有效性。 如需詳細資訊,請參閱 Windows 代理程式型連線指示中提供的提示。 Get-WinEvent PowerShell Cmdlet 最多可支援 23 個運算式。 Azure 監視器資料收集規則支援多達 20 個項目。 下列指令碼即為範例:
$XPath = '*[System[EventID=1035]]'
Get-WinEvent -LogName 'Application' -FilterXPath $XPath
- 在上述 cmdlet 中,
-LogName參數值為 XPath 查詢的初始部分 (到驚嘆號 (!) 為止)。 XPath 查詢的其餘部分會進入$XPath參數。 - 若指令碼傳回事件,則查詢有效。
- 如果您收到「找不到符合指定選擇準則的事件」訊息,查詢可能有效,但本機電腦上沒有相符的事件。
- 如果您收到訊息內容為「指定的查詢無效」,則查詢語法無效。
下表提供 XPath 查詢的範例來篩選事件:
| 說明 | XPath |
|---|---|
| 僅收集事件識別碼 = 4648 的系統事件 | System!*[System[EventID=4648]] |
| 收集安全性記錄事件,事件識別碼 = 4648,且處理序名稱為 consent.exe | Security!*[System[(EventID=4648)]] and *[EventData[Data[@Name='ProcessName']='C:\Windows\System32\consent.exe']] |
| 從系統事件記錄檔收集所有嚴重、錯誤、警告和資訊事件,但事件識別碼 = 6 (驅動程式載入) 的事件除外 | System!*[System[(Level=1 or Level=2 or Level=3) and (EventID != 6)]] |
| 收集所有成功和失敗的安全性事件,但事件識別碼 4624 (成功登入) 的事件除外 | Security!*[System[(band(Keywords,13510798882111488)) and (EventID != 4624)]] |
備註
如需 Windows 事件記錄檔支援的 XPath 限制清單,請參閱 XPath 1.0 限制。 例如,您可以在查詢中使用「position」、「Band」和「timediff」函數,但目前不支援「start-with」和「contains」等其他函數。
後續步驟
- 深入了解 Azure 監視器代理程式。
- 深入了解資料收集規則。




