elasticsearch 麋鹿日志无法在ES中创建索引,elasticsearch,logstash,filebeat,elasticsearch,Logstash,Filebeat" /> elasticsearch 麋鹿日志无法在ES中创建索引,elasticsearch,logstash,filebeat,elasticsearch,Logstash,Filebeat" />

elasticsearch 麋鹿日志无法在ES中创建索引

elasticsearch 麋鹿日志无法在ES中创建索引,elasticsearch,logstash,filebeat,elasticsearch,Logstash,Filebeat,为了使用logstash分析一些日志文件,我的索引第一次创建得很好,然后我想用新的过滤器和新的存储库重新索引新文件,所以我通过“curl XDELETE”删除了索引,现在当我重新启动logstash和filebeat时,不再创建索引。。我在启动组件时没有看到任何错误。 我是否需要删除其他内容才能重新创建索引?好的,因为我的猜测(见注释)是正确的,下面是解释: 为了避免filebeat反复读取和发布文件行,它使用注册表存储收割机的当前状态: 注册表文件存储Filebeat用于跟踪上次读取位置的状态

为了使用logstash分析一些日志文件,我的索引第一次创建得很好,然后我想用新的过滤器和新的存储库重新索引新文件,所以我通过“curl XDELETE”删除了索引,现在当我重新启动logstash和filebeat时,不再创建索引。。我在启动组件时没有看到任何错误。 我是否需要删除其他内容才能重新创建索引?

好的,因为我的猜测(见注释)是正确的,下面是解释:

为了避免filebeat反复读取和发布文件行,它使用注册表存储收割机的当前状态:

注册表文件存储Filebeat用于跟踪上次读取位置的状态和位置信息

如您所述,filebeat成功地获取了文件,将行发送到logstash,logstash将事件发布到elasticsearch,elasticsearch创建了所需的索引。由于filebeat更新了它的注册表,因此不需要再获取更多的行,因此即使删除了索引,也不会再次将事件发布到logstash。当您插入一些新行时,filebeat会重新打开harvester并仅将新行(位于“注册表检查点”之后)发布到logstash

注册表文件的默认位置是
${path.data}/registry
(请参阅)

。。。也许curlapi调用不是重新启动索引的最佳解决方案

这与删除索引无关。删除索引发生在elasticsearch内部。Filebeat对你在elasticsearch中的行为一无所知

问:有没有办法根据旧日志重新创建索引

是的,您应该考虑以下几种方式:

  • 可以使用将文档从一个索引复制到另一个索引的。您可以在将文档重新索引到新索引时更新文档
  • 与重新索引不同,您可以使用更新将保留在原始索引中的文档
  • 最后,您当然可以删除注册表文件。但是,这可能会导致数据丢失。但出于开发目的,我想这没关系

希望我能帮助您。

请尝试以下操作:在运行Logstash和Filebeat时,在希望Filebeat读取的文件中插入几行新行(似乎是来自/home/bitnami/logs/log/*.log)告诉我是否创建了索引。@apt-get\u install\u感谢现在确实创建了索引:)有没有办法根据旧日志重新创建索引?也许curlapi调用不是重启indexHi的最佳解决方案。我已经有一段时间没有发布我的答案了。如果它对你有帮助,你能考虑接受我的回答吗?我真的很感激!:-)