【发布时间】:2017-10-16 16:16:01
【问题描述】:
最近我们会使用filebeat来收集我们的系统日志到elasticsearch vias:
${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
注意:
- 我们手动构建日志文件,我们确定文件末尾有一个空行
- 要制作控制台,我们打开 output.console
- 一旦有内容附加到日志文件的末尾,filebeat 将从文件的开头收集。但我们希望只是获取文件的更改。
- filebeat 版本为 5.6.X
希望大家多多指教
【问题讨论】:
-
它适用于从 logback 或基于 slf4J 的工具收集的实时日志文件