使用 Azure 監視器代理程式收集 Windows 事件
Windows 事件 是 資料收集規則 (DCR) 中使用的其中一個資料來源。 使用 Azure 監視器代理程式收集資料 提供建立 DCR 的詳細資料。 本文提供 Windows 事件資料來源類型的其他詳細資料。
Windows 事件記錄檔是 Windows 機器 Azure 監視器代理程式 最常見的資料來源之一,因為它是 Windows 操作系統及其上執行應用程式的常見健康情況和資訊來源。 您可以從標準記錄 (例如系統和應用程式) 以及所需監視應用程式建立的任何自訂記錄中收集事件。
必要條件
- 您至少擁有參與者權限所在的 Log Analytics 工作區。 Windows 事件會傳送至 Event 資料表。
- 使用 Azure 監視器代理程式收集資料 中所述的新 DCR 或現有 DCR。
設定 Windows 事件資料來源
在 DCR 的 [收集並傳遞] 步驟中,從 [資料來源類型] 下拉式清單中選取 [ Windows 事件記錄]。 從一組要收集的記錄和嚴重性等級中選取。
選取 [自訂],以 使用 XPath 查詢篩選事件。 您便可指定 XPath 以收集任何特定值。
安全性事件
有兩種方法可使用 Azure 監視器代理程式收集安全性事件:
- 選取 DCR 中的安全性事件記錄檔,就像系統和應用程式記錄一樣。 這些事件將與其他事件傳送到 Log Analytics 工作區中的 Event 資料表。
- 在工作區上啟用 Microsoft Sentinel,該工作區也會使用 Azure 監視器代理程式收集事件。 安全性事件會傳送至 SecurityEvent。
使用 XPath 查詢篩選事件
Log Analytics 工作區中收集的任何資料皆須付費。 因此,您應該僅收集所需的事件資料。 Azure 入口網站中的基本設定提供您篩選事件的有限功能。 若要指定其他篩選條件,則須使用自訂設定,並指定 XPath 以篩選出不需要的事件。
XPath 項目是以格式 LogName!XPathQuery
撰寫。 例如,您可能只想從應用程式事件記錄檔傳回事件識別碼為 1035 的事件。 這些事件的 XPathQuery
會是 *[System[EventID=1035]]
。 因為您要擷取應用程式事件記錄檔的事件,所以 XPath 為 Application!*[System[EventID=1035]]
提示
如需降低 Azure 監視器成本的策略,請參閱成本最佳化和 Azure 監視器。
注意
AMA 會使用 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」等其他函數。
目的地
Windows 事件資料可以傳送至下列位置。
Destination | 資料表/命名空間 |
---|---|
Log Analytics 工作區 | 事件 |
下一步
- 使用 Azure 監視器代理程式收集文字記錄。
- 深入了解 Azure 監視器代理程式。
- 深入了解資料收集規則。