0

这就是我想要的,它与增量数据有点相反。

一些数据是具有特定令牌的日志,我希望能够仅保留(或在 Elasticsearch 中显示)第一次提交的数据,即每个令牌的最旧信息。

我想忽略相同令牌的任何新日志?

我怎样才能做到这一点 ?它在 logstash 还是 elasticsearch 中?

谢谢

更新 2016-05-31

我认为我们可以从不同的角度看到这一点。但全局我想要的是图片中的表格,但没有红线,我希望它们被logstash忽略,或者不在ES查询中显示。 在此处输入图像描述

我知道这是可以做到的,如果我能够在我想要删除的那些行中添加任何标志,但这是不可能的,告诉我们可以删除它们的唯一事实是因为我们已经有一个密钥 first-AAA以前记录过。在记录过程中,我们没有这些信息。

4

1 回答 1

1

elasticsearch您可以使用过滤器实现此目的。如果记录已经存在,过滤器将在 ES 中检查,如果是这种情况,我们要求 Logstash 直接删除该行。

请注意,我假设Id字段 ( AAA) 用作文档_id,并且也作为Id字段存在于文档中。随意更改任何需要的内容,但这会起作用。

input {
   ...
}
filter {
   elasticsearch {
      hosts => ["localhost:9200"]
      query => "_type:your_type AND _id:%{[Id]}"
      fields => {"Id" => "found"}
   }
   if [found] {
      drop {}
   }
}
output {
   elasticsearch {
      hosts => ["localhost:9200"]
      ...
   }
}
于 2016-05-31T06:49:49.890 回答