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

採用filebeat收集日誌,日誌文件頻繁rotate,形成filebeat佔用文件不釋放,只要filebeat保持着被刪除文件Open狀態,操做系統就不釋放磁盤空間,致使可用磁盤空間逐漸減少。以下監控圖,殺掉filebeat進程以後,磁盤佔用陡然降低。apache

image

使用lsof命令查看filebeat保持着的文件資源,能夠發現許多被filebeat佔用空間的失效文件(deleted)文件。app


image

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


解決辦法:測試

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

image

在配置文件中添加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.10.10.10:6667"]
   loadbalance: true
   worker: 1orm

-----------------------------------------------------------------blog

close_rename,close_removed,close_eof,close_inactive等配置型對於(deteled)狀態處理均無效(已測試驗證)進程

相關文章
相關標籤/搜索