有没有办法使用文档ID从logstash查询elasticsearch中的文档

问题描述:

在这里,有一个实时系统将文本消息传输到共享文件夹。还有一个filebeat其中导航这些消息来logstash,然后logstash分析它们并输出到elasticsearch。问题是放置在共享文件夹中的一些消息的内容是错误的,正确的格式将在一段时间后发送,有时正确的格式会错误地更正。每个味精都有一个称为计数器的字段,并且一个错误的味精计数器比正确的小。有没有办法使用文档ID从logstash查询elasticsearch中的文档

每次logstash收到新消息时,是否可以根据document_id查询/搜索elasticsearch的记录,并检查弹性搜索中是否存在正确的msg,或者当前的msg是否正确,应该用旧的。

请注意,要访问每条消息,将使用已定义的document_id,并且对于纠错/错误消息都可以是相同的。 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" 
     } 
    } 
} 

后,你就会有field1field2复制到当前事件为fieldAfieldB,你可以运行如果/然后/你测试你的事件,你认为合适。