淺聊FileBeat
????????在使用一個工具或者說一套組合工具之前要先對它和它的同類工具進行了解選出一個最適合自己的項目的工具然后進行使用,而我使用的就是filebeat
什么是FileBeat
????????Filebeat是一個開源的文本日志收集器,它是elastic公司Beats數(shù)據(jù)采集產(chǎn)品的一個子產(chǎn)品,采用go語言開發(fā),一般安裝在業(yè)務(wù)服務(wù)器上作為代理來監(jiān)測日志目錄或特定的日志文件,并把它們發(fā)送到logstash、elasticsearch、redis或Kafka等。 可以在官方地址
為什么使用FileBeat
????????日志收集的工具有很多,比如logstash,雖然logstash功能強大,但是它依賴java并且在數(shù)據(jù)量大的時候進程會消耗過多的系統(tǒng)資源,會嚴重影響業(yè)務(wù)系統(tǒng)的性能。
????????而filebeat就是一個完美的替代者,它基于Go語言沒有任何依賴,配置文件簡單。同時,filebeat比logstash更加輕量級,所以占用系統(tǒng)資源極少,非常適合安裝在生產(chǎn)機器上。
????????Filebeat可以直接將數(shù)據(jù)發(fā)送到Elasticsearch、Kafka或者Redis,在那里可以進一步處理和增強數(shù)據(jù),然后在Kibana中將其可視化,目前來說Filebeat是 ELK 日志系統(tǒng)在Agent上的第一選擇。
FileBeat的主要組件
????????filebeat主要由兩個組件構(gòu)成prospector(探測器)和harvester(收集器),這兩類組件一起協(xié)作完成Filebeat的工作。
-
prospector:Prospector負責(zé)管理Harvster,它會找到所有需要進行讀取的數(shù)據(jù)源。然后交給Harvster進行內(nèi)容收集,如果input type配置的是log類型,Prospector將會去配置路徑下查找所有能匹配上的文件,然后為每一個文件創(chuàng)建一個Harvster。
-
harvester:Harvester負責(zé)進行單個文件的內(nèi)容收集,在運行過程中,每一個Harvester會對一個文件逐行進行內(nèi)容讀取,并且把讀寫到的內(nèi)容發(fā)送到配置的output中。當Harvester開始進行文件的讀取后,將會負責(zé)這個文件的打開和關(guān)閉操作,因此,在Harvester運行過程中,文件都處于打開狀態(tài)。如果在收集過程中,刪除了這個文件或者是對文件進行了重命名,F(xiàn)ilebeat依然會繼續(xù)對這個文件進行讀取,這時候?qū)恢闭加弥募鶎?yīng)的磁盤空間,直到Harvester關(guān)閉。
FileBeat如何保存文件的狀態(tài)
????????Filebeat保留每個文件的狀態(tài),并經(jīng)常將狀態(tài)刷新到磁盤中的注冊表文件中。該狀態(tài)用于記住harvester讀取的最后一個偏移量,并確保發(fā)送所有日志行。如果無法訪問輸出(如Elasticsearch或Logstash),F(xiàn)ilebeat將跟蹤最后發(fā)送的行,并在輸出再次可用時繼續(xù)讀取文件。當Filebeat運行時,每個輸入的狀態(tài)信息也保存在內(nèi)存中。當Filebeat重新啟動時,來自注冊表文件的數(shù)據(jù)用于重建狀態(tài),F(xiàn)ilebeat在最后一個已知位置繼續(xù)每個harvester。對于每個輸入,F(xiàn)ilebeat都會保留它找到的每個文件的狀態(tài)。由于文件可以重命名或移動,文件名和路徑不足以標識文件。對于每個文件,F(xiàn)ilebeat存儲唯一的標識符,以檢測文件是否以前被捕獲。
FileBeat何如保證至少一次數(shù)據(jù)消費
Filebeat保證事件將至少傳遞到配置的輸出一次,并且不會丟失數(shù)據(jù)。是因為它將每個事件的傳遞狀態(tài)存儲在注冊表文件中。在已定義的輸出被阻止且未確認所有事件的情況下,F(xiàn)ilebeat將繼續(xù)嘗試發(fā)送事件,直到輸出確認已接收到事件為止。如果Filebeat在發(fā)送事件的過程中關(guān)閉,它不會等待輸出確認所有事件后再關(guān)閉。當Filebeat重新啟動時,將再次將Filebeat關(guān)閉前未確認的所有事件發(fā)送到輸出。這樣可以確保每個事件至少發(fā)送一次,但最終可能會有重復(fù)的事件發(fā)送到輸出。通過設(shè)置shutdown_timeout選項,可以將Filebeat配置為在關(guān)機前等待特定時間
參考文檔:
filebeat基礎(chǔ)_途徑日暮不賞丶的博客-CSDN博客_filebeat是什么
一篇文章搞懂filebeat(ELK) - 一寸HUI - 博客園文章來源:http://www.zghlxwxcb.cn/news/detail-411770.html
閑談日志采集器FileBeat - 知乎.文章來源地址http://www.zghlxwxcb.cn/news/detail-411770.html
到了這里,關(guān)于FileBeat-日志收集器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!