Flume、Logstash、Filebeat對比


Flume、Logstash、Filebeat對比

日志采集工具對比


1、Flume簡介

Flume的設計宗旨是向Hadoop集群批量導入基於事件的海量數據。系統中最核心的角色是agent,Flume采集系統就是由一個個agent所連接起來形成。每一個agent相當於一個數據傳遞員,內部有三個組件:

  • source: 采集源,用於跟數據源對接,以獲取數據

  • sink:傳送數據的目的地,用於往下一級agent或者最終存儲系統傳遞數據

  • channel:agent內部的數據傳輸通道,用於從source傳輸數據到sink

 


2、LogStash簡介

Logstash 是開源的服務器端數據處理管道,能夠同時從多個來源采集數據,轉換數據,然后將數據發送到存儲庫中。數據從源傳輸到存儲庫的過程中,Logstash 過濾器能夠解析各個事件,識別已命名的字段以構建結構,並將它們轉換成通用格式,以便更輕松、更快速地分析和實現商業價值

Logstash是基於pipeline方式進行數據處理的,pipeline可以理解為數據處理流程的抽象。在一條pipeline數據經過上游數據源匯總到消息隊列中,然后由多個工作線程進行數據的轉換處理,最后輸出到下游組件。一個logstash中可以包含多個pipeline。

Logstash管道有兩個必需的元素,輸入和輸出,以及一個可選元素過濾器:

  • Input:數據輸入組件,用於對接各種數據源,接入數據,支持解碼器,允許對數據進行編碼解碼操作;必選組件;

  • output:數據輸出組件,用於對接下游組件,發送處理后的數據,支持解碼器,允許對數據進行編碼解碼操作;必選組件;

  • filter:數據過濾組件,負責對輸入數據進行加工處理;可選組件;Logstash安裝部署

  • pipeline:一條數據處理流程的邏輯抽象,類似於一條管道,數據從一端流入,經過處理后,從另一端流出;一個pipeline包括輸入、過濾、輸出3個部分,其中輸入和輸出部分是必選組件,過濾是可選組件;instance:一個Logstash實例,可以包含多條數據處理流程,即多個pipeline;

  • event:pipeline中的數據都是基於事件的,一個event可以看作是數據流中的一條數據或者一條消息;


3、FileBeat簡介

Filebeat是一個日志文件托運工具,在服務器上安裝客戶端后,Filebeat會監控日志目錄或者指定的日志文件,追蹤讀取這些文件(追蹤文件的變化,不停的讀),並且轉發這些信息到ElasticSearch或者Logstarsh中存放。

當你開啟Filebeat程序的時候,它會啟動一個或多個探測器(prospectors)去檢測你指定的日志目錄或文件,對於探測器找出的每一個日志文件,Filebeat啟動收割進程(harvester),每一個收割進程讀取一個日志文件的新內容,並發送這些新的日志數據到處理程序(spooler),處理程序會集合這些事件,最后filebeat會發送集合的數據到你指定的地點。

Filebeat由兩個主要組成部分組成:prospector和 harvesters。這些組件一起工作來讀取文件並將事件數據發送到指定的output。

  • Harvesters:負責讀取單個文件的內容。harvesters逐行讀取每個文件,並將內容發送到output中。每個文件都將啟動一個harvesters。harvesters負責文件的打開和關閉,這意味着harvesters運行時,文件會保持打開狀態。如果在收集過程中,即使刪除了這個文件或者是對文件進行重命名,Filebeat依然會繼續對這個文件進行讀取,這時候將會一直占用着文件所對應的磁盤空間,直到Harvester關閉。默認情況下,Filebeat會一直保持文件的開啟狀態,直到超過配置的close_inactive參數,Filebeat才會把Harvester關閉。

  • Prospector:負責管理Harvsters,並且找到所有需要進行讀取的數據源。如果input type配置的是log類型,Prospector將會去配置路徑下查找所有能匹配上的文件,然后為每一個文件創建一個Harvster。每個Prospector都運行在自己的Go routine里。

Filebeat目前支持兩種Prospector類型:log和stdin。每個Prospector類型可以在配置文件定義多個。log Prospector將會檢查每一個文件是否需要啟動Harvster,啟動的Harvster是否還在運行,或者是該文件是否被忽略(可以通過配置 ignore_order,進行文件忽略)。如果是在Filebeat運行過程中新創建的文件,只要在Harvster關閉后,文件大小發生了變化,新文件才會被Prospector選擇到。


4、綜合對比

img

新知圖譜, 日志收集組件—Flume、Logstash、Filebeat對比

img

 

flume:

設計目的寫HDFS,定制化開發和數據分發路由需求,注重數據傳輸(GB級別)

logstash:

使用簡單較好上手,插件豐富,擴展功能更強,注重數據預處理(GB級別)

filebeat

設計目的寫Logstash和ES,輕量型日志采集工具,與logstash協作,更穩健少宕機(數十MB級別)

 


5、參考

https://www.jianshu.com/p/f0b25ce6dd17

https://www.shangyexinzhi.com/article/2059751.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM