采集Windows事件日志
您可以通過Logtail插件采集Windows事件日志。本文介紹如何通過日志服務(wù)控制臺(tái)創(chuàng)建Logtail配置采集Windows事件日志。
前提條件
已在服務(wù)器上安裝Windows Logtail 1.0.0.0及以上版本。具體操作,請參見安裝Logtail(Windows系統(tǒng))。
- 目標(biāo)服務(wù)器持續(xù)產(chǎn)生日志。重要 Logtail只采集增量日志。如果下發(fā)Logtail配置后,日志文件無更新,則Logtail不會(huì)采集該文件中的日志。更多信息,請參見讀取日志。
原理
對于事件日志,Windows提供了Windows Event Log和Event Logging兩套API,前者是后者的升級,僅在Windows Vista及以上的版本中提供。Logtail插件會(huì)根據(jù)所運(yùn)行的系統(tǒng),自動(dòng)選擇API(優(yōu)先選擇Windows Event Log)來獲取Windows事件日志。
Windows事件日志采用發(fā)布訂閱的模式,應(yīng)用程序或者內(nèi)核將事件日志發(fā)布到指定的通道(例如Application、Security、System),Logtail通過對應(yīng)的Logtail插件調(diào)用Windows API,實(shí)現(xiàn)對這些通道的訂閱,從而不斷地獲取相關(guān)的事件日志并發(fā)送到日志服務(wù)。
Logtail支持同時(shí)采集多個(gè)通道事件,例如同時(shí)采集應(yīng)用程序和系統(tǒng)日志。
查看通道信息
您可以在Windows服務(wù)器的事件查看器中查看通道信息。
單擊開始。
搜索并打開事件查看器。
在左側(cè)導(dǎo)航欄中展開Windows 日志。
查看通道的全名。
在Windows日志下,選擇目標(biāo)通道,右鍵單擊屬性,查看通道全名,包括:
應(yīng)用程序:Application
安全:Security
Setup:Setup
系統(tǒng):System
查看通道相關(guān)信息。
在Windows日志下,單擊目標(biāo)通道,在頁面中間區(qū)域查看事件的級別、日期和時(shí)間、來源和事件ID等信息。
在Logtail配置中,您可根據(jù)這些信息進(jìn)行日志過濾。
采集步驟
在接入數(shù)據(jù)區(qū)域,單擊Windows事件日志。
- 選擇目標(biāo)Project和Logstore,單擊下一步。
在機(jī)器組配置頁面,配置機(jī)器組。
根據(jù)實(shí)際需求,選擇使用場景和安裝環(huán)境。
重要無論是否已有機(jī)器組,都必須根據(jù)實(shí)際需求正確選擇使用場景和安裝環(huán)境,這將影響后續(xù)的頁面配置。
確認(rèn)目標(biāo)機(jī)器組已在應(yīng)用機(jī)器組區(qū)域,單擊下一步。
已有機(jī)器組
從源機(jī)器組列表選擇目標(biāo)機(jī)器組。
沒有可用機(jī)器組
單擊創(chuàng)建機(jī)器組,在創(chuàng)建機(jī)器組面板設(shè)置相關(guān)參數(shù)。機(jī)器組標(biāo)識分為IP地址和用戶自定義標(biāo)識,更多信息請參見創(chuàng)建用戶自定義標(biāo)識機(jī)器組(推薦)或創(chuàng)建IP地址機(jī)器組。
重要創(chuàng)建機(jī)器組后立刻應(yīng)用,可能因?yàn)檫B接未生效,導(dǎo)致心跳為FAIL,您可單擊重試。如果還未解決,請參見Logtail機(jī)器組無心跳進(jìn)行排查。
在數(shù)據(jù)源設(shè)置頁簽中,設(shè)置配置名稱和插件配置,然后單擊下一步。
inputs為數(shù)據(jù)源配置,必選項(xiàng)。
重要一個(gè)inputs中只允許配置一個(gè)類型的數(shù)據(jù)源。
processors為處理配置,用于解析數(shù)據(jù)。可選項(xiàng),您可以配置一種或多種處理方式。
如果當(dāng)前的inputs配置無法滿足日志解析需求,您可以在插件配置中添加processors配置,即添加Logtail插件處理數(shù)據(jù)。例如提取字段、提取日志時(shí)間、脫敏數(shù)據(jù)、過濾日志等。更多信息,請參見使用Logtail插件處理數(shù)據(jù)。
例如您要采集應(yīng)用程序和系統(tǒng)兩個(gè)通道對應(yīng)的日志,則可以在inputs中添加兩個(gè)元素,示例如下所示。
{ "inputs": [ { "type": "service_wineventlog", "detail": { "Name": "Application", "IgnoreOlder": 259200 } }, { "type": "service_wineventlog", "detail": { "Name": "System", "IgnoreOlder": 259200 } } ] }
參數(shù)
類型
是否必選
說明
type
String
是
數(shù)據(jù)源類型,固定為service_wineventlog。
Name
String
是
待采集事件日志所屬的通道名稱。不配置時(shí),默認(rèn)為Application,表示采集應(yīng)用程序通道中的事件日志。您可以在Windows系統(tǒng)中查看通道全名。更多信息,請參見步驟4。
IgnoreOlder
UINT
否
根據(jù)事件時(shí)間過濾日志,此配置是相對于采集開始時(shí)間的偏移量,單位為秒,早于此設(shè)置的日志會(huì)被忽略。 例如:
設(shè)置為3600,表示相對于采集開始時(shí)間一小時(shí)前的日志都會(huì)被忽略。
設(shè)置為14400,表示相對于采集開始時(shí)間四小時(shí)前的日志都會(huì)被忽略。
默認(rèn)為空,表示不根據(jù)事件時(shí)間進(jìn)行過濾,采集服務(wù)器上所有的歷史事件日志。
說明該選項(xiàng)僅在首次配置采集時(shí)生效,Logtail會(huì)記錄事件采集的Checkpoint,保證不會(huì)重復(fù)采集事件日志。
Level
String
否
根據(jù)事件等級過濾日志,默認(rèn)值為information, warning, error, critical,表示采集除了verbose等級外的其他所有日志。 可選值包括:information、warning、error、critical、verbose。您可以使用半角逗號(,)指定多個(gè)等級。
說明該參數(shù)僅支持Windows Event Log API,即只能在Windows Vista及以上的操作系統(tǒng)上使用。
EventID
String
否
根據(jù)事件ID過濾日志,可以指定正向過濾(單個(gè)或范圍)或者反向過濾(不支持范圍設(shè)置)。默認(rèn)為空,表示采集所有事件。例如:
1-200表示只采集事件ID在1-200范圍內(nèi)的事件日志。
20表示只采集事件ID為20的事件日志。
-100表示采集除了事件ID為100以外的所有事件日志。
1-200,-100表示采集1-200范圍內(nèi)除了100以外的事件日志。
您可以使用半角逗號(,)指定多個(gè)值。
說明該參數(shù)僅支持Windows Event Log API,即只能在Windows Vista及以上的操作系統(tǒng)上使用。
Provider
String數(shù)組
否
根據(jù)事件來源過濾日志。例如設(shè)置為["App1", "App2"] 表示只采集來源名字為App1和App2的事件日志,其他事件日志都會(huì)被忽略。
默認(rèn)為空,表示采集所有來源的事件。
說明該參數(shù)僅支持Windows Event Log API,即只能在Windows Vista及以上的操作系統(tǒng)上使用。
IgnoreZeroValue
Boolean
否
并非每條事件日志都擁有所有的字段,您可以使用此參數(shù)過濾空字段,空字段的定義根據(jù)類型而定,例如整數(shù)類型使用0表示空字段。
默認(rèn)為false,表示不過濾空字段。
創(chuàng)建索引和預(yù)覽數(shù)據(jù),然后單擊下一步。日志服務(wù)默認(rèn)開啟全文索引。您也可以根據(jù)采集到的日志,手動(dòng)創(chuàng)建字段索引,或者單擊自動(dòng)生成索引,日志服務(wù)將自動(dòng)生成字段索引。更多信息,請參見創(chuàng)建索引。
重要如果需要查詢?nèi)罩局械乃凶侄危ㄗh使用全文索引。如果只需查詢部分字段、建議使用字段索引,減少索引流量。如果需要對字段進(jìn)行分析(SELECT語句),必須創(chuàng)建字段索引。
- 單擊查詢?nèi)罩?/b>,系統(tǒng)將跳轉(zhuǎn)至Logstore查詢分析頁面。您需要等待1分鐘左右,待索引生效后,才能在原始日志頁簽中,查看已采集到的日志。更多信息,請參見查詢和分析日志。
問題排查
使用Logtail采集日志后,如果預(yù)覽頁面或查詢頁面無數(shù)據(jù),您可以參見Logtail采集日志失敗的排查思路進(jìn)行排查。
后續(xù)步驟
采集Windows事件至日志服務(wù)后,您可以在日志服務(wù)控制臺(tái)上查看日志。
字段名 | 說明 |
activity_id | 當(dāng)前事件所屬活動(dòng)的全局事務(wù)ID,同一個(gè)活動(dòng)的事件具有相同的全局事務(wù)ID。 |
computer_name | 產(chǎn)生當(dāng)前事件的節(jié)點(diǎn)名。 |
event_data | 和當(dāng)前事件相關(guān)的數(shù)據(jù)。 |
event_id | 當(dāng)前事件的ID。 |
kernel_time | 當(dāng)前事件消耗的內(nèi)核時(shí)間,一般為0。 |
keywords | 當(dāng)前事件關(guān)聯(lián)的關(guān)鍵字,用于事件分類。 |
level | 當(dāng)前事件的等級。 |
log_name | 當(dāng)前事件的通道名,即Logtail采集配置中Name參數(shù)。 |
message | 當(dāng)前事件關(guān)聯(lián)的消息。 |
message_error | 在解析當(dāng)前事件關(guān)聯(lián)消息時(shí)發(fā)生的錯(cuò)誤信息。 |
opcode | 當(dāng)前事件關(guān)聯(lián)的操作碼。 |
process_id | 當(dāng)前事件的進(jìn)程ID。 |
processor_id | 當(dāng)前事件對應(yīng)的處理器ID,一般為0。 |
processor_time | 當(dāng)前事件消耗的處理器時(shí)間,一般為0。 |
provider_guid | 當(dāng)前事件來源的全局事務(wù)ID。 |
record_number | 當(dāng)前事件關(guān)聯(lián)的記錄編號。事件的記錄編號會(huì)隨著每條事件的寫入遞增,當(dāng)超過2 32(Event Logging)或2 64(Windows Event Log)后會(huì)重新從0開始。 |
related_activity_id | 當(dāng)前事件所屬活動(dòng)關(guān)聯(lián)的其他活動(dòng)的全局事務(wù)ID。 |
session_id | 當(dāng)前事件的會(huì)話ID,一般為0。 |
source_name | 當(dāng)前事件的來源,即Logtail采集配置中Provider參數(shù)。 |
task | 當(dāng)前事件關(guān)聯(lián)的任務(wù)。 |
thread_id | 當(dāng)前事件的線程ID。 |
type | 獲取當(dāng)前事件使用的API。 |
user_data | 當(dāng)前事件關(guān)聯(lián)的用戶數(shù)據(jù)。 |
user_domain | 當(dāng)前事件關(guān)聯(lián)的用戶域。 |
user_identifier | 當(dāng)前事件關(guān)聯(lián)的用戶Windows安全標(biāo)識。 |
user_name | 當(dāng)前事件關(guān)聯(lián)的用戶名。 |
user_time | 當(dāng)前事件消耗的用戶態(tài)時(shí)間,一般為0。 |
user_type | 當(dāng)前事件關(guān)聯(lián)的用戶的類型。 |
version | 當(dāng)前事件的版本號。 |
xml | 當(dāng)前事件最原始的信息,XML格式。 |