最近我们将使用filebeat将我们的系统日志收集到elasticsearch过孔:
${local_log_file} -> filebeat -> kafka -> logstash -> elasticsearch -> kibana
在测试我们的系统时,我们发现了一个场景,即filebeat将重复收集日志,这意味着一旦发生更改,它将从文件的开头收集日志。
这是我对filebeat的配置:
filebeat.prospectors:
- input_type: log
paths:
- /home/XXX/exp/*.log
scan_frequency: 1s
#tail_files: true
#================================ Outputs =====================================
#----------------------------- Logstash output --------------------------------
# output.logstash:
# hosts: ["localhost:5044"]
#----------------------------- Kafka output -----------------------------------
output.kafka:
enabled: true
hosts: ["10.10.1.103:9092"]
topic: egou
#----------------------------- console output --------------------------------
output.console:
enabled: true
pretty: true
注意:
希望所有人都可以提供任何有用的提示
答案 0 :(得分:0)
我认为这是因为你正在使用的编辑器,在使用新的元数据保存时创建一个新文件。 Filebeat使用其元数据而不是内容来识别文件的状态。
试,
echo "something" >> /path/to/file.log
参考:https://discuss.elastic.co/t/filebeat-repeatedly-sending-old-entries-in-log-file/55796