有没有办法使用文档ID从logstash查询elasticsearch中的文档
Is there a way to query a document in elasticsearch from logstash using document id
这里有一个实时系统,可以将短信传输到共享文件夹。还有一个 filebeat 将这些消息导航到 logstash,然后 logstash 解析它们并输出到 elasticsearch。问题是放在共享文件夹中的一些消息的内容是错误的,正确的形式会在一段时间后发送,有时正确的形式比错误的形式来得更快。每条消息都有一个称为计数器的字段,错误的消息计数器小于正确的计数器。
是否可以在logstash每次收到新消息时根据document_id记录elasticsearch的query/search并检查elasticsearch中是否已经存在正确的msg或者当前的msg是正确,应更换为旧的。
请注意,要访问每条消息,使用定义的 document_id 并且两个 correcnt/wrong 消息可以相同。
document_id 如下所示:
output {
elasticsearch {
document_id => "%{my_id}"
.
.
.
}
}
是的,您可以使用 elasticsearch
logstash filter,这样您就可以获得一个与您的查询相匹配的文档。在你的情况下,你可以查询一个 id,你会得到你的文档:
filter {
elasticsearch {
hosts => ["localhost:9200"]
query => "_id:%{my_id}"
fields => {
"field1" => "fieldA"
"field2" => "fieldB"
}
}
}
此过滤器执行后,您会将 field1
和 field2
作为 fieldA
和 fieldB
复制到当前事件中,您可以 运行 if/then/else 测试您认为合适的活动。
这里有一个实时系统,可以将短信传输到共享文件夹。还有一个 filebeat 将这些消息导航到 logstash,然后 logstash 解析它们并输出到 elasticsearch。问题是放在共享文件夹中的一些消息的内容是错误的,正确的形式会在一段时间后发送,有时正确的形式比错误的形式来得更快。每条消息都有一个称为计数器的字段,错误的消息计数器小于正确的计数器。
是否可以在logstash每次收到新消息时根据document_id记录elasticsearch的query/search并检查elasticsearch中是否已经存在正确的msg或者当前的msg是正确,应更换为旧的。
请注意,要访问每条消息,使用定义的 document_id 并且两个 correcnt/wrong 消息可以相同。 document_id 如下所示:
output {
elasticsearch {
document_id => "%{my_id}"
.
.
.
}
}
是的,您可以使用 elasticsearch
logstash filter,这样您就可以获得一个与您的查询相匹配的文档。在你的情况下,你可以查询一个 id,你会得到你的文档:
filter {
elasticsearch {
hosts => ["localhost:9200"]
query => "_id:%{my_id}"
fields => {
"field1" => "fieldA"
"field2" => "fieldB"
}
}
}
此过滤器执行后,您会将 field1
和 field2
作为 fieldA
和 fieldB
复制到当前事件中,您可以 运行 if/then/else 测试您认为合适的活动。