您可以通過Logtail外掛程式採集Windows事件記錄。本文介紹如何通過Log Service控制台建立Logtail配置採集Windows事件記錄。
前提條件
已在伺服器上安裝Windows Logtail 1.0.0.0及以上版本。具體操作,請參見安裝Logtail(Windows系統)。
伺服器日誌的內容持續新增。Logtail只採集增量日誌,如果下發Logtail配置後記錄檔無更新,則Logtail不會採集該檔案中的日誌。更多資訊,請參見讀取日誌。
原理
對於事件記錄,Windows提供了Windows Event Log和Event Logging兩套API,前者是後者的升級,僅在Windows Vista及以上的版本中提供。Logtail外掛程式會根據所啟動並執行系統,自動選擇API(優先選擇Windows Event Log)來擷取Windows事件記錄。
Windows事件記錄採用發布訂閱的模式,應用程式或者核心將事件記錄發布到指定的通道(例如Application、Security、System),Logtail通過對應的Logtail外掛程式調用Windows API,實現對這些通道的訂閱,從而不斷地擷取相關的事件記錄並發送到Log Service。
Logtail支援同時採集多個通道事件,例如同時採集應用程式和系統日誌。
查看通道資訊
您可以在Windows伺服器的事件檢視器中查看通道資訊。
單擊開始。
搜尋並開啟事件檢視器。
在左側導覽列中展開Windows 日誌。
查看通道的全名。
在Windows日誌下,選擇目標通道,按右鍵屬性,查看通道全名,包括:
應用程式:Application
安全:Security
Setup:Setup
系統:System
查看通道相關資訊。
在Windows日誌下,單擊目標通道,在頁面中間地區查看事件的層級、日期和時間、來源和事件ID等資訊。
在Logtail配置中,您可根據這些資訊進行日誌過濾。
採集步驟
在接入資料地區,單擊Windows事件記錄。
選擇目標Project和Logstore,單擊下一步。
在機器組配置頁面,配置機器組。
根據實際需求,選擇使用情境和安裝環境。
重要無論是否已有機器組,都必鬚根據實際需求正確選擇使用情境和安裝環境,這將影響後續的頁面配置。
確認目標機器組已在應用機器組地區,單擊下一步。
已有機器組
從源機器組列表選擇目標機器組。
沒有可用機器組
單擊建立機器組,在建立機器組面板設定相關參數。機器組標識分為IP地址和使用者自訂標識,更多資訊請參見建立使用者自訂標識機器組(推薦)或建立IP地址機器組。
重要建立機器組後立刻應用,可能因為串連未生效,導致心跳為FAIL,您可單擊重試。如果還未解決,請參見Logtail機器組無心跳進行排查。
在資料來源設定頁簽中,設定配置名稱和外掛程式配置,然後單擊下一步。
inputs為資料來源配置,必選項。
重要一個inputs中只允許配置一個類型的資料來源。
processors為處理配置,用於解析資料。可選項,您可以配置一種或多種處理方式。
如果當前的inputs配置無法滿足日誌解析需求,您可以在外掛程式配置中添加processors配置,即添加Logtail外掛程式處理資料。例如提取欄位、提取日誌時間、脫敏資料、過濾日誌等。更多資訊,請參見使用Logtail外掛程式處理資料。
例如您要採集應用程式和系統兩個通道對應的日誌,則可以在inputs中添加兩個元素,樣本如下所示。
{ "inputs": [ { "type": "service_wineventlog", "detail": { "Name": "Application", "IgnoreOlder": 259200 } }, { "type": "service_wineventlog", "detail": { "Name": "System", "IgnoreOlder": 259200 } } ] }
參數
類型
是否必選
說明
type
String
是
資料來源類型,固定為service_wineventlog。
Name
String
是
待採集事件記錄所屬的通道名稱。不配置時,預設為Application,表示採集應用程式通道中的事件記錄。您可以在Windows系統中查看通道全名。更多資訊,請參見步驟4。
IgnoreOlder
UINT
否
根據事件時間過濾日誌,此配置是相對於採集開始時間的位移量,單位為秒,早於此設定的日誌會被忽略。 例如:
設定為3600,表示相對於採集開始時間一小時前的日誌都會被忽略。
設定為14400,表示相對於採集開始時間四小時前的日誌都會被忽略。
預設為空白,表示不根據事件時間進行過濾,採集伺服器上所有的歷史事件記錄。
說明該選項僅在首次配置採集時生效,Logtail會記錄事件採集的Checkpoint,保證不會重複採集事件記錄。
Level
String
否
根據事件等級過濾日誌,預設值為information, warning, error, critical,表示採集除了verbose等級外的其他所有日誌。 可選值包括:information、warning、error、critical、verbose。您可以使用半形逗號(,)指定多個等級。
說明該參數僅支援Windows Event Log API,即只能在Windows Vista及以上的作業系統上使用。
EventID
String
否
根據事件ID過濾日誌,可以指定正向過濾(單個或範圍)或者反向過濾(不支援範圍設定)。預設為空白,表示採集所有事件。例如:
1-200表示只採集事件ID在1-200範圍內的事件記錄。
20表示只採集事件ID為20的事件記錄。
-100表示採集除了事件ID為100以外的所有事件記錄。
1-200,-100表示採集1-200範圍內除了100以外的事件記錄。
您可以使用半形逗號(,)指定多個值。
說明該參數僅支援Windows Event Log API,即只能在Windows Vista及以上的作業系統上使用。
Provider
String數組
否
根據事件來源過濾日誌。例如設定為["App1", "App2"] 表示只採集來源名字為App1和App2的事件記錄,其他事件記錄都會被忽略。
預設為空白,表示採集所有來源的事件。
說明該參數僅支援Windows Event Log API,即只能在Windows Vista及以上的作業系統上使用。
IgnoreZeroValue
Boolean
否
並非每條事件記錄都擁有所有的欄位,您可以使用此參數過濾空欄位,空欄位的定義根據類型而定,例如整數類型使用0表示空欄位。
預設為false,表示不過濾空欄位。
建立索引和預覽資料,然後單擊下一步。Log Service預設開啟全文索引。您也可以根據採集到的日誌,手動建立欄位索引,或者單擊自動產生索引,Log Service將自動產生欄位索引。更多資訊,請參見建立索引。
重要如果需要查詢日誌中的所有欄位,建議使用全文索引。如果只需查詢部分欄位、建議使用欄位索引,減少索引流量。如果需要對欄位進行分析(SELECT語句),必須建立欄位索引。
單擊查詢日誌,系統將跳轉至Logstore查詢分析頁面。您需要等待1分鐘左右,待索引生效後,才能在原始日誌頁簽中,查看已採集到的日誌。更多資訊,請參見查詢和分析日誌。
相關文檔
Log Service為Linux系統提供Logtail自動診斷工具,可以根據工具提示快速定位並解決問題。請參見如何使用Logtail自動診斷工具。
使用Logtail採集日誌後,如果預覽頁面為空白或查詢頁面無資料,請按照Logtail採集日誌失敗的排查思路進行排查。
在使用Logtail採集日誌時,可能遇到正則解析失敗、檔案路徑不正確、流量超過Shard服務能力等錯誤。查看Logtail採集錯誤的步驟,請參見如何查看Logtail採集錯誤資訊。採集資料常見的錯誤類型請參見Log Service採集資料常見的錯誤類型。
預設情況下,一個記錄檔只能匹配一個Logtail配置。如果同一份日誌需要被採集多份,請參見如何?檔案中的日誌被採集多份。
將企業內網伺服器日誌採集到Log Service,請參見採集企業內網伺服器日誌。
不同伺服器上的日誌的儲存路徑或檔案名稱相同,需要區分不同伺服器,請參見機器組Topic屬性。區分不同使用者或執行個體產生的日誌資料,請參見檔案路徑正則。
後續步驟
採集Windows事件至Log Service後,您可以在Log Service控制台上查看日誌。
欄位名 | 說明 |
activity_id | 當前事件所屬活動的全域事務ID,同一個活動的事件具有相同的全域事務ID。 |
computer_name | 產生當前事件的節點名。 |
event_data | 和當前事件相關的資料。 |
event_id | 當前事件的ID。 |
kernel_time | 當前事件消耗的核心程式的時間,一般為0。 |
keywords | 當前事件關聯的關鍵字,用於事件分類。 |
level | 當前事件的等級。 |
log_name | 當前事件的通道名,即Logtail採集配置中Name參數。 |
message | 當前事件關聯的訊息。 |
message_error | 在解析當前事件關聯訊息時發生的錯誤資訊。 |
opcode | 當前事件關聯的作業碼。 |
process_id | 當前事件的進程ID。 |
processor_id | 當前事件對應的處理器ID,一般為0。 |
processor_time | 當前事件消耗的處理器時間,一般為0。 |
provider_guid | 當前事件來源的全域事務ID。 |
record_number | 當前事件關聯的記錄編號。事件的記錄編號會隨著每條事件的寫入遞增,當超過2 32(Event Logging)或2 64(Windows Event Log)後會重新從0開始。 |
related_activity_id | 當前事件所屬活動關聯的其他活動的全域事務ID。 |
session_id | 當前事件的會話ID,一般為0。 |
source_name | 當前事件的來源,即Logtail採集配置中Provider參數。 |
task | 當前事件關聯的任務。 |
thread_id | 當前事件的線程ID。 |
type | 擷取當前事件使用的API。 |
user_data | 當前事件關聯的使用者資料。 |
user_domain | 當前事件關聯的使用者域。 |
user_identifier | 當前事件關聯的使用者Windows安全標識。 |
user_name | 當前事件關聯的使用者名稱。 |
user_time | 當前事件消耗的使用者態時間,一般為0。 |
user_type | 當前事件關聯的使用者的類型。 |
version | 當前事件的版本號碼。 |
xml | 當前事件最原始的資訊,XML格式。 |