你好,有关filebeat问题想请教一下,我使用filebeat收集项目日志的时候,filebeat总是在读取最新正在更新的日志,对于旧日志没有收集.或者是filebeat刚刚启动时随机读取到旧日志,但是一旦读取到正在更新的日志,他就一直阻塞在读取正在更新的日志对于旧日志就不读取了,使用的filebeat版本是6.8.1,启动时所有日志文件harvester都能读取到,但是数据就是只有个别文件能到达es,我的项目每天,每小时都在生成单独日志文件,有没有方法让filebeat从最旧的日志开始读取呢?
Filbeat 有一种机制就是读过的文件不会再摄入了,否则就会有重复的文档被摄入。当你第一次使用 filebeat 摄入数据时,它数据摄入过的数据有记录,它就会在本地的一个文件里保存这个记录。即便你在 Elasticsearch 中删除已经摄入的数据,它也不会再从头开始摄入之前的文件。为了让 Filebeat 能够再次从头开始摄入你的文档,你需要删除记录摄入的文档。针对不同的操作系统,这个文件的位置也不同。
Filebeat 的 registry 文件存储 Filebeat 用于跟踪上次读取位置的状态和位置信息。
data/registry 针对 .tar.gz and .tgz 归档文件安装
/var/lib/filebeat/registry 针对 DEB 及 RPM 安装包
c:\ProgramData\filebeat\registry 针对 Windows zip 文件
比如针对我的 tar.gz 的安装,我需要这么做:
$ pwd
/Users/liuxg/elastic1/filebeat-7.11.0-darwin-x86_64
$ ls
LICENSE.txt filebeat module
NOTICE.txt filebeat.reference.yml modules.d
README.md filebeat.yml sample.json
data filebeat1.yml
fields.yml kibana
$ rm -rf data/registry/
你可以阅读这篇文章 https://elasticstack.blog.csdn.net/article/details/114007425