我的filebeat位于两个服务器上。假设app1和app2
我的日志格式为
jobID status data
示例:app1日志
5hgsxyt3838 SCHEDULED data
app2日志
5hgsxyt3838 COMPLETE data
这里这两个日志具有相同的jobID。
elasticsearch {
hosts => [ "localhost:9200" ]
index => "import-export-logger-%{index-name}"
document_id => "%{jobID}"
}
现在,我希望elasticsearch中的最终状态为COMPLETE,但有时app1上的负载很高,因此app2日志会先处理,然后再处理app1。因此,最终状态变为SCHEDULED
是否有方法可以防止这种情况发生,例如,我希望仅在状态为“完成”时更新文档?当状态为“完成”时,文档不能更新自身
1条答案
按热度按时间jgovgodb1#
我不是一个超级粉丝覆盖这样的事件(这将是更好的只是记录所有的事件,然后在您的查询过滤)。
但如果你想走这条路,你可以这样做:
因此,如果状态为“已计划”,则将创建文档(如果不存在),完成将更新或创建。