总结filebeat进程写满磁盘的情况处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了总结filebeat进程写满磁盘的情况处理相关的知识,希望对你有一定的参考价值。


采用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进程写满磁盘的情况处理的主要内容,如果未能解决你的问题,请参考以下文章

Filebeat占用文件句柄

Linux监听磁盘使用情况

磁盘写满快速排查与解决

使用df -h命令查看磁盘空间使用率不算高,还有很多空余空间,但是创建文件或写入数据时一直报错磁盘写满

docker容器日志收集方案(方案一 filebeat+本地日志收集)

Oracle数据库的归档日志写满磁盘空间解决办法