问题背景:
第一图是日志采集集群写入磁盘的日志只有一条,第二图是filebeats采集到kafka的日志有3条,数据采集重复了
问题原因:
https://www.elastic.co/guide/en/beats/filebeat/current/how-filebeat-works.html
Filebeat对于收集到的数据(即event)的传输保证的是"at least once",而不是"exactly once",也就是Filebeat传输的数据是有可能有重复的
因为Filebeat要保证数据至少发送一次,进而避免数据丢失。具体来说就是每条event发送到output后都要等待ack,只有收到ack了才会认为数据发送成功,然后将状态记录到registry。当然实际操作的时候为了高效是批量发送,批量确认的。而造成重传的场景(也就是没有收到ack)非常多,而且很多都不可避免
建议在业务上去去重
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。