iT邦幫忙

2021 iThome 鐵人賽

DAY 24
0
Software Development

系統與服務雜談系列 第 24

Log Agent - Fluent Bit 簡介

前幾篇講這麼多, 來介紹一個服務Fleunt Bit

Fleunt Bit

它是一個開源的數據收集器、數據處理器、數據轉發器. 同類型的服務還有Logstash、Beat、Fluentd.
且它支持多平台(Linux,Windows都能)
它允許從不同的來源收集數據, 並且處理過後,發送到多個目的地. 也完全兼容K8S和Docker的環境.

Fluent Bit基本是基於Fluentd的架構與通用設計取其精華,
用C開發出來的, 比較一下兩者
https://ithelp.ithome.com.tw/upload/images/20211007/20104930dbLW6AoNRW.png
先看主要Fluentd的優勢, 就是超級豐富的Plugin.
Fluent bit雖然plugin數量不多, 但都是非常實用的, 且也有提供SDK能自己開發.
Fluent-bit-go

最重要的是FluentBit吃的資源非常的低, 低到它能在Embedded環境內執行, 也不太影響應用程式.
加上沒有執行環境的依賴, 使得它非常好到處執行.
相當牛B /images/emoticon/emoticon05.gif

他有幾個特點

  • Event drivent: Async I/O, 用這特性來收集與發送
  • Route: 資料通過每個階段的plugin時, 會被打上tag, 由這tag最後能決定要輸出到哪些地方去
  • 傳輸安全: 支持TLS/SSL傳輸
  • 內建四種格式的Parser : JSON, Regex, Logfmt and LTSV;
    • logfmt, 就是上篇講的kvp(key=value格式)
  • Stream processing: 可以使用簡單的SQL做查詢, 並且轉換格式後, 做輸出; 也能做些Aggregate操作

它的資料處理Pipeline很好理解, 大部分跟Logstash名稱功能都一樣

  • Input : 收集資料
  • Parser : 剖析其格式變成Structured Log
  • Filter : 不只是過濾, 也能修改資料, 或是幫忙添加資料
  • Buffer : 文件處理時的緩衝區, 因為等等是輸出, 通常是打到外部網路的服務上去, 還沒處理的數據資料都會在這
  • Router : 路由規則, 透過Tag與Matcher來決定這資料要往哪個地方輸出, 或是往多個地方輸出
  • Output : 就輸出到目的地, 可以是DB, 網路服務, 雲上的存儲

接著幾天就慢慢安裝設定來玩看看


上一篇
分布式可觀測性 Tracing、Time Series Data、LSM淺談
下一篇
Log Agent - Fluent Bit 安裝與常見架構模式
系列文
系統與服務雜談32

尚未有邦友留言

立即登入留言