常用日誌採集框架對比

一、Logstash

  Logstash誕生於2009年8月,2013年被ElasticSearch公司收購。Logstash是一個分佈式日誌收集框架,開發語言是JRuby,經常與ElasticSearch,Kibana配合使用組成著名的ELK技術棧,所謂ELK就是ElasticSearch、Logstash、Kibana這三個組件。

 

 

二、Filebeat

  Filebeat是一款輕量級日誌採集器(同一個公司推出的Logstash替代品),可用於轉發和彙總日誌與文件。Filebeat內置有多種模塊(Nginx、MySQL、Redis、Elasticsearch、Logstash等),可針對常見格式的日誌大大簡化收集、解析和可視化過程,只需一條命令即可。

 

三、Flume

  Flume誕生於2010年,最早由Cloudrea開發,是一個高可用,高可靠的分佈式海量日誌採集系統,支持定製各類數據發送方,一般和 kafka 訂閱消息系統搭配較多。其設計原理也是基於將數據流,如日誌數據從各種網站服務器上彙集起來存儲到HDFS,HBase等集中存儲系統中。Flume目前有兩個版本,OG和NG,區別很大,初始的發行版本叫做FlumeOG,後被apache收購,改名爲Apache Flume,收購重構後的版本統稱爲Flume NG(next generation下一代的意思);所以現在Flume已經是ApacheETL工具集中的一員。

  Flume與logstash相比,兩者最初的設計目的就不太一樣。Flume本身最初設計的目的是爲了把數據傳入HDFS中(並不是爲了採集日誌而設計,這和Logstash有根本的區別)。

 

 

四、Fluentd

fluentd是一款開源的日誌收集工具。基於ruby和C編寫,它擁有非常多的插件,可以滿足的我們對各種格式的日誌進行收集,過濾,解析等。把日誌信息變成我們想要的格式。並且,沒有找到滿足我們的插件,我們可以自己寫插件。

fluentd收集日誌時,將所有日誌看做JSON格式的數據。並且用正則表達式去匹配日誌。fluentd自帶豐富的日誌收集格式。以及可以將日誌收集到各種存儲的數據庫。

fluentd有7種類型的插件:輸入、解析器、過濾器、輸出、格式化程序、存儲和緩衝區。

Fluend-bit是Fluentd的精華版本,純C編寫、大小450kb,更輕量級,主要支持數據的收集和處理功能。

對比

類型
Logstash
Filebeat
Flume
Fluentd

平臺

Linux&Windows Linux&Windows Linux&Windows Linux&Windows
運行環境 java go java ruby
資源開銷 非常小
配置 簡單 簡單 較複雜 複雜
可靠性 不穩定 穩定 高可靠 可靠

方案

較成熟的日誌系統方案:Filebeat → Logstash → ElasticSearch → Kibana

 

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