因为是在测试filebeat,所以都是通过vim 编辑器来手动往文件添加新内容,导致filebeat 每次都从文件头重新读取内容并发送到ES。
解决办法:
使用 echo 命令 代替vim,如使用如下命令往log追加内容:
echo 'new line' >> /usr/src/app/log.log?
此时,filebeat 不会发送以前的内容.原因是因为vim 编辑器保存后实际创建了一个新的文件,与保存之前的文件已经没关系,所以filebeat 检测它是新的文件,会强迫把文件所有内容发送到ES,导致每修改一次文件都会把所有内容发送。
官方回答:https://discuss.elastic.co/t/filebeat-repeatedly-sending-old-entries-in-log-file/55796
网友评论