老师,filebeat重复输出怎么解决?我tail_files设置的是true,每次新增一条记录,就会把这个文件里面的所有日志在输出一遍

来源:14-2 Filebeat_Demo

慕码人5740536

2018-09-13

写回答

8回答

慕码人5740536

提问者

2018-09-13

我找到问题的原因了,使用echo命令追加进日志文件里面就没事了。如果是vim命令编辑的话会将该文件的所有日志信息都输出

1
0

rockybean

2018-09-14

这个问题的根本原因在于 vim 编辑文件保存的时候会修改文件的 inode,此时 filebeat 会把它做新文件处理,所以又全部读取了一遍,见这里

https://discuss.elastic.co/t/how-to-send-only-the-newly-added-log-events-instead-of-the-entire-content-of-a-log-file/79127/17

0
0

慕码人5740536

提问者

2018-09-13

我只有一行日志,filebeat输出一条没问题

我新加了一行日志,filebeat输出了两条就不对了

0
0

慕码人5740536

提问者

2018-09-13

代码太长,慕课网上发不出去,大致是这样的

0
0

慕码人5740536

提问者

2018-09-13

Filebeat版本是6.2.3

直接vim打开日志文件然后将日志粘贴进去

一条日志的时候输出

{"@timestamp":"2018-09-13T07:28:06.915Z",

然后我又加了一条的时候输出

{"@timestamp":"2018-09-13T07:28:06.915Z",
{"@timestamp":"2018-09-13T07:28:56.922Z",
{"@timestamp":"2018-09-13T07:28:56.955Z",

日志文件:

pool-1-thread-145 : 2018-09-04 13:15:30 | 013  [ GatePubSubHelper.java:51 ] - [ INFO ]  
pool-1-thread-145 : 2018-09-04 13:15:30 | 013  [ GatePubSubHelper.java:51 ] - [ INFO ]
0
0

rockybean

2018-09-13

能列一个可以重现的操作步骤吗?
比如你的日志文件是怎么新加数据的?
目标文件是什么样子

另外filebeat是哪个版本

0
0

慕码人5740536

提问者

2018-09-13

filebeat.prospectors:
 - type: log
   paths:
        - /public/logs/*.log
   tail_files: true

   filebeat.shutdown_timeout: "3s"
output.file:
   path: "/tmp/filebeat-1"


0
0

rockybean

2018-09-13

配置文件完整地发给我看下

0
0

Elastic Stack从入门到实践,动手搭建数据分析系统

有了Elastic Stack,不用写一行代码,你也可以玩转大数据分析!

1361 学习 · 397 问题

查看课程