在Logstash崩溃或Elasticsearch服务器无法访问的情况下,我可能不得不重新启动Logstash并开始处理插入到Elasticsearch中的文件。
Logstash是否记得上次处理日志文件中的哪一行并从中断处取出,或者是否会插入重复的文档?
我怀疑_id
可能是文件和行号生成的哈希,以避免重复,但我不确定。
答案 0 :(得分:1)
读取文件的弹性产品(logstash,filebeat或旧的logstash-forwarder)会记住它们在正在阅读的文件中的位置。
如果pipeline备份,则每个组件将停止发送更多日志,直到拥塞被删除。
管道中会有“卡住”的日志。 IIRC,logstash队列是20个事件。如果您在写入之前杀死了logstash,那么您将丢失这些事件。他们正在努力为logstash2做得更好,但它并没有成功。
因此,风险更多的是缺少一些文件而不是重复文件。