全部產品
Search
文件中心

Simple Log Service:採集Windows事件記錄

更新時間:Jun 30, 2024

您可以通過Logtail外掛程式採集Windows事件記錄。本文介紹如何通過Log Service控制台建立Logtail配置採集Windows事件記錄。

前提條件

  • 已在伺服器上安裝Windows Logtail 1.0.0.0及以上版本。具體操作,請參見安裝Logtail(Windows系統)

  • 伺服器日誌的內容持續新增。Logtail只採集增量日誌,如果下發Logtail配置後記錄檔無更新,則Logtail不會採集該檔案中的日誌。更多資訊,請參見讀取日誌

原理

對於事件記錄,Windows提供了Windows Event LogEvent Logging兩套API,前者是後者的升級,僅在Windows Vista及以上的版本中提供。Logtail外掛程式會根據所啟動並執行系統,自動選擇API(優先選擇Windows Event Log)來擷取Windows事件記錄。

Windows事件記錄採用發布訂閱的模式,應用程式或者核心將事件記錄發布到指定的通道(例如Application、Security、System),Logtail通過對應的Logtail外掛程式調用Windows API,實現對這些通道的訂閱,從而不斷地擷取相關的事件記錄並發送到Log Service。

Logtail支援同時採集多個通道事件,例如同時採集應用程式和系統日誌。

實現原理

查看通道資訊

您可以在Windows伺服器的事件檢視器中查看通道資訊。

  1. 單擊開始

  2. 搜尋並開啟事件檢視器

  3. 在左側導覽列中展開Windows 日誌

  4. 查看通道的全名。

    Windows日誌下,選擇目標通道,按右鍵屬性,查看通道全名,包括:

    • 應用程式:Application

    • 安全:Security

    • Setup:Setup

    • 系統:System

  5. 查看通道相關資訊。

    Windows日誌下,單擊目標通道,在頁面中間地區查看事件的層級、日期和時間、來源和事件ID等資訊。

    在Logtail配置中,您可根據這些資訊進行日誌過濾。

    事件記錄

採集步驟

  1. 登入Log Service控制台

  2. 接入資料地區,單擊Windows事件記錄

  3. 選擇目標Project和Logstore,單擊下一步

  4. 機器組配置頁面,配置機器組。

    1. 根據實際需求,選擇使用情境和安裝環境。

      重要

      無論是否已有機器組,都必鬚根據實際需求正確選擇使用情境和安裝環境,這將影響後續的頁面配置。

    2. 確認目標機器組已在應用機器組地區,單擊下一步

      已有機器組

      源機器組列表選擇目標機器組。

      image

      沒有可用機器組

      單擊建立機器組,在建立機器組面板設定相關參數。機器組標識分為IP地址使用者自訂標識,更多資訊請參見建立使用者自訂標識機器組(推薦)建立IP地址機器組

      重要

      建立機器組後立刻應用,可能因為串連未生效,導致心跳為FAIL,您可單擊重試。如果還未解決,請參見Logtail機器組無心跳進行排查。

  5. 資料來源設定頁簽中,設定配置名稱外掛程式配置,然後單擊下一步

    • 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,表示不過濾空欄位。

  6. 建立索引預覽資料,然後單擊下一步。Log Service預設開啟全文索引。您也可以根據採集到的日誌,手動建立欄位索引,或者單擊自動產生索引,Log Service將自動產生欄位索引。更多資訊,請參見建立索引

    重要

    如果需要查詢日誌中的所有欄位,建議使用全文索引。如果只需查詢部分欄位、建議使用欄位索引,減少索引流量。如果需要對欄位進行分析(SELECT語句),必須建立欄位索引。

  7. 單擊查詢日誌,系統將跳轉至Logstore查詢分析頁面。您需要等待1分鐘左右,待索引生效後,才能在原始日誌頁簽中,查看已採集到的日誌。更多資訊,請參見查詢和分析日誌

相關文檔

後續步驟

採集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格式。