logstash - 仅添加第一次值
logstash - add only first time value
我要的就是这个,和增量数据有点相反
一些数据是带有特定令牌的日志,我希望能够仅保留(或在 Elasticsearch 中显示)第一个提交的数据,即每个令牌的最旧信息。
我想忽略任何具有相同标记的新日志?
我该怎么做?它是在 logstash 还是 elasticsearch 中?
谢谢
更新 2016-05-31
我认为我们可以从不同的角度看待这一点。但在全球范围内,我想要的是图片中的 table ,但没有红线,我希望它们被 logstash 忽略,或者不显示在 ES 查询中。
我知道这是可以做到的,如果我能够在我想删除的那些行中添加任何标志,但这是不可能的,告诉我们可以删除它们的唯一事实是因为我们已经有了一个密钥first-AAA 之前记录过的。
在记录过程中,我们没有这些信息。
您可以使用 elasticsearch
filter 实现此目的。如果记录已经存在,过滤器将在 ES 中检查,如果是这种情况,我们要求 Logstash 删除该行。
请注意,我假设 Id
字段 (AAA
) 用作文档 _id
并且在文档中也作为 [=12] =] 字段。随意更改任何需要的内容,但这会起作用。
input {
...
}
filter {
elasticsearch {
hosts => ["localhost:9200"]
query => "_type:your_type AND _id:%{[Id]}"
fields => {"Id" => "found"}
}
if [found] {
drop {}
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
...
}
}
我要的就是这个,和增量数据有点相反
一些数据是带有特定令牌的日志,我希望能够仅保留(或在 Elasticsearch 中显示)第一个提交的数据,即每个令牌的最旧信息。
我想忽略任何具有相同标记的新日志?
我该怎么做?它是在 logstash 还是 elasticsearch 中?
谢谢
更新 2016-05-31
我认为我们可以从不同的角度看待这一点。但在全球范围内,我想要的是图片中的 table ,但没有红线,我希望它们被 logstash 忽略,或者不显示在 ES 查询中。
我知道这是可以做到的,如果我能够在我想删除的那些行中添加任何标志,但这是不可能的,告诉我们可以删除它们的唯一事实是因为我们已经有了一个密钥first-AAA 之前记录过的。 在记录过程中,我们没有这些信息。
您可以使用 elasticsearch
filter 实现此目的。如果记录已经存在,过滤器将在 ES 中检查,如果是这种情况,我们要求 Logstash 删除该行。
请注意,我假设 Id
字段 (AAA
) 用作文档 _id
并且在文档中也作为 [=12] =] 字段。随意更改任何需要的内容,但这会起作用。
input {
...
}
filter {
elasticsearch {
hosts => ["localhost:9200"]
query => "_type:your_type AND _id:%{[Id]}"
fields => {"Id" => "found"}
}
if [found] {
drop {}
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
...
}
}