logstash ElasticSearch -获取新记录

nhhxz33t  于 2022-12-09  发布在  Logstash
关注(0)|答案(2)|浏览(162)

我有一个Logstash示例,它使用Elasticsearch插件作为输入。这个输入插件有一个* * * * *的调度。当它运行时,我想得到自上次调度器运行以来输入到我的Elasticsearch示例中的记录。看起来我需要一种方法来告诉插件在logstash启动时给予我开始的文档。然后,从那里开始。然而,此时,我在我的查询中使用了“@timestamp”字段,它获取了自我的Elasticsearch索引启动以来Elasticsearch索引中的所有文档。
如何从Logstash启动时开始获取Elasticsearch索引中的文档,然后获取自上次运行计划以来的新文档?
我一直在为这件事绞尽脑汁,但没有任何运气。非常感谢你的帮助!

bis0qfac

bis0qfac1#

从我所读到的内容来看,可能不太可能有太多的精确度。我看到的最好的结果是每分钟运行一次查询,并让查询只回顾一分钟。显然,有很多边缘情况会导致丢失和重复数据。
JDBC插件支持last_run_metadata_path来存储最后一次,并且可以将其作为:sql_last_start用于查询。我没有看到任何人曾经将requested this feature用于ES输入插件。

gmxoilav

gmxoilav2#

我也已经得到了上面提到的相同的东西,但我已经得到了关于sql的结果,但还没有ElasticSearch

{
  "query": {
    "range": {
      "@timestamp": {
        "gte": "last_run_metadata_path"
      }
    }
  }
}

这应该可以

相关问题