iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
DevOps

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

Day 11: 流 (Streams) 配置與路由

  • 分享至 

  • xImage
  •  

核心概念與作用

流(Streams)是 Graylog 中用於實時消息分類與路由的關鍵功能。
它能夠根據定義的規則將輸入的日誌消息自動分發到不同的目標,實現日誌的有序管理和高效檢索。

在 Graylog 中,所有消息默認會流入 Default Stream,這個內建的流無法刪除或暫停。
通過創建自定義流和配置流規則,我們可以將特定條件的消息路由到指定的索引集或輸出目標。

流規則配置步驟

創建應用日誌分流

假設我們有多個應用通過 GELF UDP 輸入發送日誌,需要按應用名稱分流處理:

步驟 1:創建新流

  • 導航至 Streams 頁面,點擊 Create stream
  • 設定 Title 與 Description
  • 選擇對應的 Index set

步驟 2:配置流規則

  • 點擊 stream 右邊的 Data routing
  • 建立新的規則

多條件組合規則

對於更複雜的路由需求,可以組合多個規則,例如:

Rule 1: source = "192.168.1.100"
Rule 2: level >= 3
Match type: ALL (AND邏輯)

這將匹配來自特定主機且日誌級別大於等於 3 以上的消息。

實際應用場景

按應用類型分流

通過 GELF UDP 接收的應用日誌通常包含 application_name 或其它自定義欄位。利用這些可以實現精確分流:

  • 資料庫日誌流application_name = "mysql"
  • Web 服務器日誌流application_name = "nginx"
  • 應用程式日誌流_app_name = "my_web_app"

按嚴重級別分流

Critical Stream: level <= 2
Warning Stream: level = 4  
Info Stream: level >= 6

這樣的配置能夠將不同嚴重程度的日誌分別路由到對應的索引,便於後續的告警配置和分析處理。

最佳實踐建議

性能考量:流規則在消息索引階段執行,規則複雜度直接影響系統性能。建議使用簡單的字段匹配而非複雜的正則表達式。

移除默認流:創建流時可選擇 Remove matches from 'Default Stream',避免消息重複存儲,節省存儲空間。

規則測試:配置完成後,務必規則是否正確匹配預期消息,確保路由邏輯符合需求。

通過合理的流配置,能夠實現日誌的自動化分類管理,為後續的檢索分析、告警配置和儀表板創建奠定堅實基礎。


上一篇
Day 10: 索引 (Index) 管理與存儲優化
下一篇
Day 12: 從 Streams 到目的地
系列文
從零開始的 graylog 探險12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言