iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
DevOps

從零開始的 graylog 探險系列 第 8

Day 8: 數據解析與字段提取 (Extractors 篇)

  • 分享至 

  • xImage
  •  

在 Graylog 中,Extractors 是最直接將原始日誌轉換為結構化資料的方式。它能夠在訊息寫入 OpenSearch 之前,就先行解析重點資訊,讓後續的搜尋、告警及儀表板更有效率。對於剛入門 Graylog 的使用者,Extractors 是理解日誌數據解析的最佳起點。

為什麼使用 Extractors

原始日誌往往是純文字,缺乏結構,例如:

GET /index.html 200

若不進行處理,Graylog 只能將上述內容存放在 message 欄位,搜尋或分析會相當不便。透過 Extractors,可以快速將訊息拆解成獨立欄位,例如:

  • http_method = GET
  • url = /index.html
  • status = 200

這樣一來,不論是查詢、統計,或建立告警條件,都會更靈活。

常見的 Extractor 類型

Graylog 提供多種方式來從訊息中提取欄位,主要包括:

  • Regular Expression:透過正則表達式提取內容,適合規律性高的日誌格式。
  • Grok Patterns:建立在 Regex 基礎上的模板,能加快規則撰寫。
  • JSON / CSV:針對結構化輸入(例如 GELF、JSON 格式 log)。
  • Split & Index:利用分隔符切割並挑選其中片段。

建立 Regex Extractor 範例

假設我們已建立一個 GELF UDP Input,收到日誌訊息如下:

GET /login.html 200

步驟如下:

  1. 在 Graylog Web 介面進入該 GELF UDP Input 設定。
  2. 點選「Manage extractors」並新增 Regular expression
  3. 設定 Regex:
    ^(\S+)\s+(\S+)\s+(\d+)$
    
    • Group 1 → http_method
    • Group 2 → url
    • Group 3 → status
  4. 儲存並套用後,日誌會自動轉換成結構化欄位,可直接於搜尋中使用。

JSON Extractor 範例

若輸入內容是 JSON,如:

{"user":"alice","action":"login","success":true}

可直接建立 JSON Extractor,Graylog 將自動解析成:

  • user = alice
  • action = login
  • success = true

最佳實踐

  • 保持規則簡單:適用於日誌格式穩定的場景。
  • 避免複雜 Regex:過多的運算會影響效能。
  • 命名清晰:字段名稱應能清楚表達數據含義。
  • 測試再部署:利用「Try extractor」功能確保規則正確。

小結

Extractors 是 Graylog 中最直觀的日誌結構化工具,能快速滿足對於訊息在過濾與查詢上的需求。對於更進階、需要複雜條件判斷或運算的情況,則建議搭配 Pipelines 完成更彈性的數據處理。
明天將會提到如何使用 Pipelines 處理更為複雜的情況。


上一篇
Day 7: 輸入源配置與管理
下一篇
Day 9: 數據解析與字段提取 (Pipelines 篇)
系列文
從零開始的 graylog 探險9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言