比較開源日誌:Logstash、FluentD 和 Fluent Bit

banq發表於2024-03-17

在本部落格中,我們將討論用於日誌管理的開源工具。有許多開源選項可用於管理應用程式日誌、系統日誌等。

Log Shipper 有助於集中來自不同區域的所有日誌,如應用程式日誌、系統日誌、網路等......,在這裡,我們將重點關注一些最流行的工具。讓我們從 Logstash 開始。

Logstash 
Logstash 是一個使用外掛從不同地方收集資料的工具,透過過濾外掛以不同的方式更改資料,並使用輸出外掛將其傳送到不同的目的地。

Logstash 幾乎可以處理您處理的任何型別的日誌,例如系統日誌、Web 伺服器日誌、錯誤日誌和應用程式日誌。使用 Logstash 可以非常簡單地收集所有日誌並將其儲存在一箇中心位置。

優點:

  • Logstash 提供正規表示式模式序列來識別和解析任何輸入事件中的各個欄位。
  • Logstash 支援各種 Web 伺服器和資料來源來提取日誌資料。
  • Logstash 是集中式的,這使得處理和收集來自不同伺服器的資料變得容易。
  • Logstash 支援許多資料庫、網路協議和其他服務作為日誌記錄事件的目標源。

缺點:
  • 利用高記憶體
  • Logstash 7.13 釋出時引入了一項重大更改,禁止 Logstash 將日誌傳送到非 Elastic 版本的 Elasticsearch,例如 OpenSearch。
  • 過濾器外掛不是通用的,因此,使用者可能需要找到正確的模式序列以避免解析錯誤。

FluentD 
FluentD 是一個免費且開源的資料收集器。FluentD 是一個跨平臺軟體專案,最初由 Treasure Data 建立。其主要目的是解決大資料日誌收集的複雜性。FluentD 根據 Apache License v2.0 獲得許可,採用 Ruby 程式語言進行編碼。其去中心化設定以其可靠性和跨不同平臺無縫工作的能力而聞名。收集大資料的一個主要障礙是來源之間缺乏通用標準,導致溝通困難。然而,FluentD 彌補了這一差距,使溝通更加容易,並解決了大資料日誌收集的主要障礙之一。

優點:

  • FluentD 的設定非常簡單,支援 500 多個外掛。
  • 由於其開源特性,FluentD 的使用不受任何限制。
  •  可靠性和高效能。
  •  Kubernetes 中的 FluentD 受益於一個大型且專注的社群,該社群積極支援其進步和發展。

缺點:
  • 其主要挑戰之一是效能。儘管 Fluentd 的大部分內容是用 C 編寫的,但其外掛框架是用 Ruby 實現的。
  • Fluentd 例項通常每秒可以處理大約 18,000 個事件

Fluent Bit 
Fluent Bit 是一款開源、多平臺工具,可作為處理和分發日誌的通用解決方案。Fluent Bit 由 Treasure Data Fluentd 的同一團隊開發,Fluent Bit 可以幫助您可靠、安全且靈活地聚合和處理所有資料。Fluent Bit完全用純C語言開發,並且支援嵌入式Linux。它使用的記憶體比 Fluentd 少。 

為什麼要開發 FluentBit?
目標是以更小、更高效的佔用空間提供 Fluentd 的速度、可擴充套件性和靈活性。結果是 Fluent Bit。與Fluentd相比,它的體積較小。
優點:

  • 高效能、低 CPU 和記憶體佔用。
  • 可移植,可在 Linux、MacOS、Windows 和 BSD 系統上執行。
  • 與其他應用程式相比,應用程式大小較小。

缺點:
  • 可用的外掛較少。 

Filebeat
Filebeat 是 Elastic 建立的開源輕量級資料傳送器。Filebeat 作為代理安裝在伺服器上,將運算元據傳送到指定的目的地。它監視指定的日誌檔案或位置,收集日誌事件,並將其轉發到 Elasticsearch 或 Logstash 進行索引和轉換。
優點:

  • Filebeat 是一款輕量級工具,可以有效管理大量資料負載,而不會對記憶體和 CPU 等系統資源產生大量要求。
  • 它沒有任何依賴項,因此易於安裝。
  • 它是一個支援伺服器和容器部署的單一二進位制檔案。
  • Filebeat的功能可以透過模組進行擴充套件,這有助於獲取、解析和轉發日誌。

缺點:
  • 缺乏可以提供 Filebeat 例項執行狀況洞察的內建監控功能。因此很難監控 Filebeat 的健康狀況。
  • 與其他工具相比,Filebeat 的資料處理能力有限

Vector
Vector 是一個輕量級、開源且高效能的日誌傳送程式,旨在收集、處理日誌和指標並將其傳輸到任何選定的目的地。Vector由Timber開發,後來被Datadog收購。Vector 聲稱它比任何其他原木運輸商快 10 倍。Vector 是使用 Rudy 語言開發的。
優點:

  • 它提供了一個依賴於 libc 的靜態二進位制檔案,該二進位制檔案已存在於大多數作業系統中。
  • 向量重對映語言 (VRL) 功能強大,一旦您精通它,您就可以執行復雜的操作。
  • 增強的速度和最佳化的記憶體利用率是 Vector 的主要功能,可確保高效的效能和資源管理。

缺點:
  • 與其他工具相比,Vector 的外掛支援較少。
  • 向量重對映語言 (VRL) 功能強大,但與其他一些工具相比,它的學習曲線更陡峭。

總結
我們討論了 5 種開源工具,每種工具都有其優點和缺點。每個日誌管理工具都是為了特定目的而開發的,並克服現有工具的缺點。歸根結底,關鍵是根據我們的要求選擇正確的工具,因為沒有任何一個託運商可以提供所有功能。

相關文章