Filebeat正在复制事件



我正在使用Filebeat>logstash>elasticsearch>kibana运行一个基本的elk堆栈设置-所有这些都在5.2版上

当我删除Filebeat并将logstash配置为直接查看文件时,它会接收正确数量的事件。

如果我删除数据并使用Filebeat将相同的日志文件内容传递给logstash来重新获取文件,我会多创建10%以上的事件。我已经检查了其中的一些,以确认重复项是由filebeat创建的。

有人看过这个问题吗?或者有什么建议为什么会发生这种情况?

我首先需要理解删除文件beat是什么意思!!

可能性-1

如果你已经卸载并再次安装,那么文件节拍显然会再次从路径中读取数据(你已经重新获取并将其发布到logstash->elasticsearch->kibana(假设旧数据没有从elasticnode中删除),因此重复。

可能性-2.

你刚刚停止了filebeat,配置为logstash并重新启动filebeat,可能是您的注册表文件在关闭期间没有正确更新(正如你所知,filebeat逐行读取并更新注册表文件,直到它成功发布到logstash/elasticsearch/kafka等的那一行。如果这些输出服务器中的任何一个在处理来自filebeat的大量输入时遇到任何困难,那么filebeat就会等待,直到这些服务器可以用于进一步处理输入数据。一旦这些输出服务器可用读取注册表文件并扫描它发布的行,然后开始发布下一行)。

示例注册表文件将类似

{
"source": "/var/log/sample/sample.log",
"offset": 88,
"FileStateOS": {
"inode": 243271678,
"device": 51714
},
"timestamp": "2017-02-03T06:22:36.688837822-05:00",
"ttl": -2
}

正如您所看到的,它在注册表文件中维护时间戳。所以这就是重复的原因之一。

如需进一步参考,您可以点击以下链接

https://discuss.elastic.co/t/filebeat-sending-old-logs-on-restart/46189https://discuss.elastic.co/t/deleting-filebeat-registry-file/46112

https://discuss.elastic.co/t/filebeat-stop-cleaning-registry/58902

希望能有所帮助。

最新更新