问题:filebeat启动一段时间后就会挂掉
1.docker-compose添加守护机制
一开始在docker-compose中添加了一个守护机制:
]# vim docker-compose.yml
hostname: #在这行下面
restart: on-failure #容器发生error而退出(容器退出状态不为0)重启容器
发现只是持续的时间长了,并没有解决根本问题,而且当把内存跑满,还会影响其他的服务
发现每次重启filebeat,都会重新去读取文件!当内存跑满就挂了
既然发现问题那就解决问题
2.filebeat设置参数,每次只加载最新的文件
(1)参数介绍
tail_files:如果设置为true,Filebeat从文件尾开始监控文件新增内容,把新增的每一行文件作为一个事件依次发送,而不是从文件开始处重新发送所有内容。
如果此选项设置为true,则Filebeat将开始在每个文件的末尾而不是开头读取新文件。 当此选项与日志轮换结合使用时,可能会跳过新文件中的第一个日志条目。 默认设置为false。
此选项适用于Filebeat尚未处理的文件。 如果您之前运行过Filebeat并且文件的状态已经保留,则tail_files将不会应用。要将tail_files应用于所有文件,必须停止Filebeat并删除注册表文件。 请注意,这样做会删除以前的所有状态。
(2)添加配置
] vim filebeat.yml
enabled: true #在这行下面
tail_files: true #设置监控新增内容
(3)查看日志,观察是否生效
发现重启后读取的是最新的文件,成功
ps:观察了一天,服务正常运行