1.Too many open file handlers
Filebeat保持文件處理程序打開,直到文件到達文件末尾,以便它可以近乎實時地讀取新的日志行。 如果Filebeat正在收集大量文件,則打開文件的數(shù)量可能會成為問題。 在大多數(shù)環(huán)境中,正在更新的文件數(shù)量很少。
close_inactive配置選項應(yīng)相應(yīng)地設(shè)置為關(guān)閉不再處于活動狀態(tài)的文件。
您可以使用其他配置選項來關(guān)閉文件處理程序,但所有這些選項都應(yīng)該小心使用,因為它們可能有副作用。 選項是:
close_renamed和close_removed選項在Windows上很有用,可以解決與文件旋轉(zhuǎn)相關(guān)的問題。
請參閱打開文件處理程序?qū)е耊indows文件旋轉(zhuǎn)問題?
打開文件處理程序會導(dǎo)致Windows文件旋轉(zhuǎn)問題?
在Windows上,您可能在重命名或刪除文件時遇到問題,因為Filebeat會使文件處理程序保持打開狀態(tài)。
這可能會導(dǎo)致文件旋轉(zhuǎn)系統(tǒng)出現(xiàn)問題。 為避免此問題,您可以一起使用close_removed和close_renamed選項。
重要
當(dāng)您配置這些選項時,收割機讀取文件之前可能會關(guān)閉文件。 如果探礦者無法再次拾取文件,并且收割機尚未完成讀取文件,則缺失的行將永遠不會被發(fā)送到輸出。
close_eof選項在具有大量只有很少條目的文件的環(huán)境中很有用。
close_timeout選項在關(guān)閉文件處理程序比發(fā)送所有日志行更重要的環(huán)境中很有用。 有關(guān)更多詳細信息,請參閱設(shè)置探礦者。
確保在使用這些配置選項之前閱讀這些配置選項的文檔。
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ù)讀取文件。 如果每天都生成大量新文件,則注冊表文件可能會變得太大。 要減小注冊表文件的大小,有兩個可用的配置選項:clean_removed和clean_inactive。
對于不再接觸并忽略的舊文件(請參閱ignore_older),我們建議您使用clean_inactive。 如果舊文件從磁盤中刪除,請使用clean_removed選項。
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ù)讀取,這是不正確的。
默認狀態(tài)不會從注冊表文件中刪除。要解決inode重用問題,我們建議您使用clean_ *選項(特別是clean_inactive)來刪除非活動文件的狀態(tài)。
例如,如果您的文件每24小時輪換一次,并且輪換的文件不再更新,則可以將ignore_older設(shè)置為48小時,將clean_inactive設(shè)置為72小時。
您可以將clean_removed用于從磁盤中刪除的文件。請注意,clean_removed會在掃描期間無法找到文件時清除注冊表中的文件狀態(tài)。如果文件稍后再次顯示,它將從頭開始重新發(fā)送。
5.Filebeat沒有運送文件的最后一行?
Filebeat使用換行符來檢測事件的結(jié)束。 如果將行逐漸添加到正在采集的文件中,則在最后一行之后需要換行符,否則Filebeat將不會讀取文件的最后一行。
6.Filebeat長時間保持已刪除文件的打開文件處理程序(handler)?
在默認行為中,F(xiàn)ilebeat會打開文件并保持打開狀態(tài),直到達到文件末尾。
在配置的輸出很長時間(例如Elasticsearch或Logstash不可用)的情況下,這可能會導(dǎo)致Filebeat將文件處理程序保留到同時從文件系統(tǒng)中刪除的文件。 只要Filebeat保持已刪除的文件處于打開狀態(tài),操作系統(tǒng)就不會釋放磁盤空間,這可能會導(dǎo)致磁盤利用率增加,甚至出現(xiàn)磁盤不足的情況。
為了緩解這個問題,您可以將close_timeoutedit設(shè)置設(shè)置為"5m"。 這將確保每5分鐘關(guān)閉一次文件處理程序,而不管是否達到EOF。
請注意: 如果在Filebeat到達文件末尾之前刪除文件,則此選項可能會導(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分析程序無法解析的路徑或表達式,因為配置文件包含未正確轉(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】