我正在使用 filebeat 将数据发送到elasticsearch,
filebeat.prospectors:
- input_type: log
paths:
- /var/log/nginx/kibana_access.log
document_type: nginx
- input_type: log
paths:
- /var/log/redis/redis-server.log
document_type: redis
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["localhost:9200"]
index: '%{[type]}-log'
versions.2x.enabled: false
配置正确,正在完美写入elastic。但是,问题是,它也将旧的线路发送到弹性,然而,它不应该这样做。
没有写入新日志,但在 kibana 中,当 filebeata 再次发送数据时,我可以看到日志计数与之前相同。
我尝试检查注册表文件,
/var/lib/filebeat/registry
,它有我之前使用过但现在没有使用的文件的信息。
{"source":"/var/log/filebeat/filebeat","offset":2514,"FileStateOS":{"inode":4591858,"device":2058},"timestamp":"2017-04-21T17:33:11.913352399+05:30","ttl":-2},{"source":"/var/log/postgresql/postgresql-2017-04-21_120121.log","offset":4485506,"FileStateOS":{"inode":3932558,"device":2058},"timestamp":"2017-04-21T18:11:56.65579033+05:30","ttl":-2}
这是注册表文件。
我设置了一个 cron 作业,每分钟重新启动一次 filebeat,并将数据发送到 elastic。我使用的是 ubuntu 16.04 并将 filebeat 安装为 deb 包。
这是
filebeat.full.yml
--> ${path.data}/registry
中的注册表文件路径。
请解释此行为以及解决方案。
我刚刚删除了这个文件夹
rm -rf /var/lib/filebeat/
已经解决了。
rm -rf /var/lib/filebeat/ graet 成功了!