1.Too many open file handlers
Filebeat保持文件處理程序打開吠裆,直到文件到達(dá)文件末尾烂完,以便它可以近乎實(shí)時地讀取新的日志行。 如果Filebeat正在收集大量文件祝旷,則打開文件的數(shù)量可能會成為問題嘶窄。 在大多數(shù)環(huán)境中,正在更新的文件數(shù)量很少吻谋。
close_inactive配置選項(xiàng)應(yīng)相應(yīng)地設(shè)置為關(guān)閉不再處于活動狀態(tài)的文件现横。
您可以使用其他配置選項(xiàng)來關(guān)閉文件處理程序,但所有這些選項(xiàng)都應(yīng)該小心使用骇两,因?yàn)樗鼈兛赡苡懈弊饔谩?選項(xiàng)是:
close_renamed和close_removed選項(xiàng)在Windows上很有用姜盈,可以解決與文件旋轉(zhuǎn)相關(guān)的問題馏颂。
請參閱打開文件處理程序?qū)е耊indows文件旋轉(zhuǎn)問題?
打開文件處理程序會導(dǎo)致Windows文件旋轉(zhuǎn)問題?
在Windows上舍沙,您可能在重命名或刪除文件時遇到問題,因?yàn)镕ilebeat會使文件處理程序保持打開狀態(tài)壹无。
這可能會導(dǎo)致文件旋轉(zhuǎn)系統(tǒng)出現(xiàn)問題感帅。 為避免此問題失球,您可以一起使用close_removed和close_renamed選項(xiàng)帮毁。
重要
當(dāng)您配置這些選項(xiàng)時豺撑,收割機(jī)讀取文件之前可能會關(guān)閉文件。 如果探礦者無法再次拾取文件爷肝,并且收割機(jī)尚未完成讀取文件陆错,則缺失的行將永遠(yuǎn)不會被發(fā)送到輸出。
close_eof選項(xiàng)在具有大量只有很少條目的文件的環(huán)境中很有用对嚼。
close_timeout選項(xiàng)在關(guān)閉文件處理程序比發(fā)送所有日志行更重要的環(huán)境中很有用外莲。 有關(guān)更多詳細(xì)信息偷线,請參閱設(shè)置探礦者。
確保在使用這些配置選項(xiàng)之前閱讀這些配置選項(xiàng)的文檔声邦。
2.Filebeat使用了太多的CPU亥曹?
Filebeat可能被配置為頻繁掃描文件。 檢查filebeat.yml配置文件中scan_frequency的設(shè)置骗炉。 將scan_frequency設(shè)置為小于1s可能會導(dǎo)致Filebeat在頻繁的循環(huán)中掃描磁盤蛇受。
3.注冊文件太大?
Filebeat保持每個文件的狀態(tài)并將該狀態(tài)保存在registry_file中的磁盤上乍丈。 Filebeat重新啟動時把将,文件狀態(tài)用于在前一個位置繼續(xù)讀取文件。 如果每天都生成大量新文件请垛,則注冊表文件可能會變得太大。 要減小注冊表文件的大小瞳腌,有兩個可用的配置選項(xiàng):clean_removed和clean_inactive镜雨。
對于不再接觸并忽略的舊文件(請參閱ignore_older),我們建議您使用clean_inactive挑宠。 如果舊文件從磁盤中刪除颓影,請使用clean_removed選項(xiàng)诡挂。
4.linux Inode重用會導(dǎo)致Filebeat跳過行嗎?
Inode重用會導(dǎo)致Filebeat跳過行嗎璃俗?
在Linux文件系統(tǒng)上城豁,F(xiàn)ilebeat使用inode和設(shè)備來識別文件。
從磁盤中刪除文件時雳旅,可將inode分配給新文件间聊。
在涉及文件旋轉(zhuǎn)的使用情況下,如果舊文件被刪除并且之后立即創(chuàng)建新文件型豁,
新文件可能與刪除的文件具有完全相同的inode叹话。在這種情況下墩瞳,F(xiàn)ilebeat假定新文件與舊文件相同喉酌,并嘗試在舊位置繼續(xù)讀取泵喘,這是不正確的般妙。
默認(rèn)狀態(tài)不會從注冊表文件中刪除碟渺。要解決inode重用問題,我們建議您使用clean_ *選項(xiàng)(特別是clean_inactive)來刪除非活動文件的狀態(tài)苫拍。
例如绒极,如果您的文件每24小時輪換一次,并且輪換的文件不再更新榔袋,則可以將ignore_older設(shè)置為48小時铡俐,將clean_inactive設(shè)置為72小時。
您可以將clean_removed用于從磁盤中刪除的文件聪黎。請注意备恤,clean_removed會在掃描期間無法找到文件時清除注冊表中的文件狀態(tài)露泊。如果文件稍后再次顯示,它將從頭開始重新發(fā)送惭笑。
5.Filebeat沒有運(yùn)送文件的最后一行沉噩?
Filebeat使用換行符來檢測事件的結(jié)束。 如果將行逐漸添加到正在采集的文件中蚜厉,則在最后一行之后需要換行符畜眨,否則Filebeat將不會讀取文件的最后一行术瓮。
6.Filebeat長時間保持已刪除文件的打開文件處理程序(handler)胞四?
在默認(rèn)行為中伶椿,F(xiàn)ilebeat會打開文件并保持打開狀態(tài),直到達(dá)到文件末尾游昼。
在配置的輸出很長時間(例如Elasticsearch或Logstash不可用)的情況下尝蠕,這可能會導(dǎo)致Filebeat將文件處理程序保留到同時從文件系統(tǒng)中刪除的文件看彼。 只要Filebeat保持已刪除的文件處于打開狀態(tài),操作系統(tǒng)就不會釋放磁盤空間标锄,這可能會導(dǎo)致磁盤利用率增加茁计,甚至出現(xiàn)磁盤不足的情況。
為了緩解這個問題践剂,您可以將close_timeoutedit設(shè)置設(shè)置為"5m"娜膘。 這將確保每5分鐘關(guān)閉一次文件處理程序竣贪,而不管是否達(dá)到EOF。
請注意: 如果在Filebeat到達(dá)文件末尾之前刪除文件匕争,則此選項(xiàng)可能會導(dǎo)致數(shù)據(jù)丟失爷耀。
7.需要限制Filebeat使用的帶寬?
如果您需要限制帶寬使用率扇住,我們建議您在操作系統(tǒng)OS上配置網(wǎng)絡(luò)堆棧以執(zhí)行帶寬限制艘蹋。
例如票灰,以下Linux命令通過在通過端口5044的TCP連接上設(shè)置50 kbps的限制來限制Filebeat和Logstash之間的連接:
tc qdisc add dev $DEV root handle 1: htb
tc class add dev $DEV parent 1:1 classid 1:10 htb rate 50kbps ceil 50kbps
tc filter add dev $DEV parent 1:0 prio 1 protocol ip handle 10 fw flowid 1:10
iptables -A OUTPUT -t mangle -p tcp --dport 5044 -j MARK --set-mark 10
使用操作系統(tǒng)工具執(zhí)行帶寬限制可讓您更好地控制策略屑迂。 例如,您可以使用操作系統(tǒng)工具在白天限制帶寬庸汗,但不是在晚上手报。 或者您可以保留帶寬不受限制,但為流量分配低優(yōu)先級枉昏。
8.配置問題
您的配置文件的結(jié)構(gòu)有問題揍鸟,或者您使用了YAML分析程序無法解析的路徑或表達(dá)式阳藻,因?yàn)榕渲梦募凑_轉(zhuǎn)義的字符。
如果YAML文件包含具有空格或不常用字符的路徑畅涂,請將路徑包裝在單引號中(請參閱將單引號標(biāo)記為包裹路徑)道川。
另請參閱YAML提示和疑難解答中的一般建議:https://www.elastic.co/guide/en/beats/filebeat/current/yaml-tips.html
9.Kibana中的儀表板正在錯誤地分解數(shù)據(jù)字段?
索引模板可能未正確加載臊岸。 請參閱步驟4:在Elasticsearch中加載索引模板帅戒。
10.字段在Kibana可視化中沒有索引或可用?
如果您最近執(zhí)行了加載或解析自定義結(jié)構(gòu)化日志的操作钟哥,則可能需要刷新索引以使字段在Kibana中可用瞎访。 要刷新索引扒秸,請使用刷新API播演。 例如:
curl -XPOST 'http://localhost:9200/filebeat-2016.08.09/_refresh'
【參考:https://www.elastic.co/guide/en/beats/filebeat/current/faq.html】