使用filebeat时内容重复收集问题

时间:2017-10-13 01:39:33

标签: elasticsearch filebeat

最近我们将使用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

注意:

  1. 我们手动构建日志文件,我们确信文件末尾有一个空行
  2. 制作控制台,我们打开output.console
  3. 一旦有内容附加到日志文件的末尾,filebeat将从文件的开头收集。但我们希望只是获取文件的更改。
  4. filebeat版本是5.6.X
  5. 希望所有人都可以提供任何有用的提示

1 个答案:

答案 0 :(得分:0)

我认为这是因为你正在使用的编辑器,在使用新的元数据保存时创建一个新文件。 Filebeat使用其元数据而不是内容来识别文件的状态。

试,

echo "something" >> /path/to/file.log

参考:https://discuss.elastic.co/t/filebeat-repeatedly-sending-old-entries-in-log-file/55796