在 Graylog 中,Extractors 是最直接將原始日誌轉換為結構化資料的方式。它能夠在訊息寫入 OpenSearch 之前,就先行解析重點資訊,讓後續的搜尋、告警及儀表板更有效率。對於剛入門 Graylog 的使用者,Extractors 是理解日誌數據解析的最佳起點。
原始日誌往往是純文字,缺乏結構,例如:
GET /index.html 200
若不進行處理,Graylog 只能將上述內容存放在 message
欄位,搜尋或分析會相當不便。透過 Extractors,可以快速將訊息拆解成獨立欄位,例如:
http_method = GET
url = /index.html
status = 200
這樣一來,不論是查詢、統計,或建立告警條件,都會更靈活。
Graylog 提供多種方式來從訊息中提取欄位,主要包括:
假設我們已建立一個 GELF UDP Input,收到日誌訊息如下:
GET /login.html 200
步驟如下:
^(\S+)\s+(\S+)\s+(\d+)$
若輸入內容是 JSON,如:
{"user":"alice","action":"login","success":true}
可直接建立 JSON Extractor,Graylog 將自動解析成:
user = alice
action = login
success = true
Extractors 是 Graylog 中最直觀的日誌結構化工具,能快速滿足對於訊息在過濾與查詢上的需求。對於更進階、需要複雜條件判斷或運算的情況,則建議搭配 Pipelines 完成更彈性的數據處理。
明天將會提到如何使用 Pipelines 處理更為複雜的情況。