1. 程式人生 > >【總結】filebeat進程寫滿磁盤的情況處理

【總結】filebeat進程寫滿磁盤的情況處理

需要 pen ada let out eight ice 文件中 mage


采用filebeat收集日誌,日誌文件頻繁rotate,造成filebeat占用文件不釋放,只要filebeat保持著被刪除文件Open狀態,操作系統就不釋放磁盤空間,導致可用磁盤空間逐漸減小。

使用lsof命令查看filebeat保持著的文件資源,可以發現許多被filebeat占用空間的失效文件(deleted)文件。


技術分享圖片

deleted狀態的文件沒有釋放,始終占據磁盤空間


解決辦法:

查看filebeat配置文件位置: /etc/filebeat/filebeat.yml

技術分享圖片

在配置文件中添加close_timeout: 5m,保證每隔5分鐘file handler被關閉,不管是否遇到EOF符號。

需要註意的是,該close_timeout參數在Filebeat沒有處理到文件末尾而文件被刪除的情況下,會導致數據丟失。

filebeat.prospectors:
- type: log
?? paths:
??? - /opt/apps/ecm/service/storm/1.0.1/package/apache-storm-1.0.1/logs/workers-artifacts/xyz*/*/worker.log
?? tail_files: false
?? force_close_files: true
?? close_timeout: 5m
processors:
- add_cloud_metadata: ~
output.logstash:
?? hosts: ["10.109.3.193:6667"]
?? loadbalance: true

?? worker: 1

【總結】filebeat進程寫滿磁盤的情況處理