我正在使用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
配置正确,并且完美地写入弹性。但是,问题是,它也将旧线发送到弹性线,而不应该这样做。
没有写入新的日志,但在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,并将数据发送到弹性。我正在使用ubuntu 16.04并安装了filebeat作为deb包。
这是filebeat.full.yml
中的注册表文件路径 - > ${path.data}/registry
。
请解释此行为,以及此解决方案。