一文了解日誌收集工具fluent-bit

"本文主要對fluent-bit特性及使用場景介紹"

1、簡介

fluent-bit是一種在Linux,OSX和BSD系列操作系統運行,兼具快速、輕量級日誌處理器和轉發器。它非常注重性能,通過簡單的途徑從不同來源收集日誌事件。

2、功能

fluent-bit是一個開源的、多平臺的、旨在成爲像一把瑞士軍刀一樣進行日誌收集和轉發。它爲我們提供一個終端到終端的解決方案,收集,存儲和分析的基礎架構。fluent-bit是此管道中是不可或缺的一部分,它可以解決日誌收集需求。作爲一個開源項目,它已被廣泛採用,fluent-bit能夠勝任和解決docker和Kubernetes等關鍵組件的雲服務日誌記錄需求。

3、fluent-bit工作原理

fluent-bit是一個簡單日誌收集工具,上圖就是對它工作流程的全局概述,它通過輸入、轉換、過濾、緩衝、路由到輸出而完成日誌的收集。

4、爲什麼使用fluent-bit

如今,我們環境中的信息源數量正在不斷增加,數據收集和日誌轉發很困難,大規模處理數據收集非常複雜,並且收集和彙總各種數據需要一個專門的工具來處理:

  • 不同的信息來源。

  • 不同的數據格式。

  • 多個目的地。

fluent-bit出於滿足對高性能的需求和優化工具,它可以從任何輸入源收集數據,統一的數據並將其發送到多個目的地而且支持delimiter、key-value、json等主流格式。比如我們常見的logstash耗費資源嚴重,filebeat可以作爲輕量級日誌收集工具,目前只能對接對接到ES、logstash、kafaka、redis而且對數據處理能力有限必須配合大數據平臺使用(具體查看:Kubernetes日誌收集解決方案)。fluent-bit兼具filebeat的功能,但是filebeat不具備fluent-bit數據處理和路由轉發能力,如果我只想簡單收集日誌,filebeat不能滿足,具體請查看:Kubernetes集羣環境下fluentd日誌收集方案介紹

5、fluentd和fluent-bit的關係及特性

日誌收集場景和需求是多變的,爲了滿足日誌收集的靈活性,我們會根據需求選擇不同的插件,比如:ELK常見解決方案Kubernetes日誌收集解決方案,當前我們主要介紹fluentd和fluent-bit兩個開源項目之間的關係及特性,fluentd和fluent-bit都是有Treasure Data公司贊助開發,目標是解決日誌收集、處理和轉發。

這兩個項目有很多相似之處,fluent-bit完全基於Fluentd體系結構和設計經驗。從體系結構的角度來看,選擇使用哪個取決於使用場景,我們可以考慮:

  • Fluentd是日誌收集器,處理器和聚合器。

  • fluent-bit是一個日誌收集器和處理器(它沒有Fluentd等強大的聚合功能)。


fluentd

fluent-bit

範圍

容器/服務器

容器/服務器

語言

C和Ruby

C

大小

約40MB

約450KB

性能

高性能

高性能

依賴關係

作爲Ruby Gem構建,主要依賴gems

除了一些安裝編譯插件(GCC、CMAKE)其它零依賴。

插件支持

超過650個可用插件

大約35個可用插件

許可證

Apache許可證2.0版

Apache許可證2.0版

根據兩個組件不同特點可以考慮將Fluentd主要用作聚合器,將fluent-bit作爲日誌轉發器,兩個項目相互補充,從而提供了完整的可靠輕量級日誌解決方案,當然fluent-bit也可以獨立完成日誌收集。

6、fluent-bit支持平臺

操作系統

平臺

cpu架構

Linux

Centos 7

x86_64


Debian 8 (Jessie)

x86_64


Debian 9 (Stretch)

x86_64


Raspbian 8 (Debian Jessie)

AArch32


Raspbian 9 (Debian Stretch)

AArch32


Ubuntu 16.04 (Xenial Xerus)

x86_64


Ubuntu 18.04 (Bionic Beaver)

x86_64

從體系結構支持的角度來看,fluent-bit在基於x86,x86_64,AArch32和AArch64的處理器上具有全部功能。fluent-bit也可以在OSX和*BSD系統上工作,但並非所有插件在所有平臺上都可用。官方支持將根據社區需求而擴大。

7、下載地址及參考文檔

http://fluentbit.io/download/

https://docs.fluentbit.io/manual/

8、安裝及使用方法

參考:日誌收集工具fluentd安裝配置及使用介紹

9、總結

本文主要介紹了fluent-bit特性及功能,接下來我會分爲三遍文章進行分享,分別是fluent-bit在docker和Kubernetes中的使用、fluent-bit插件使用和指令介紹、fluentd和fluent-bit在線上環境的使用,敬請關注。

推薦閱讀:


Kubernetes排障指南

從零搭建Kubernetes下的nignx和tomcat

Kubernetes中如何使用ClusterDNS進行服務發現?

從Ice到Kubernetes容器技術,微服務架構經歷了什麼?

如何使用docker?


原創不易,隨手關注或者”在看“,誠摯感謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章