【发布时间】:2022-12-04 23:51:55
【问题描述】:
我的 filebeat 在两台服务器上。假设 app1 和 app2
我的日志格式
jobID status data
例子: 应用程序 1 日志
5hgsxyt3838 SCHEDULED data
应用程序2日志
5hgsxyt3838 COMPLETE data
这两个日志都具有相同的 jobID。 我将此 jobID 用作 elasticsearch 上的文档 _id
elasticsearch {
hosts => [ "localhost:9200" ]
index => "import-export-logger-%{index-name}"
document_id => "%{jobID}"
}
现在我希望我在 elasticsearch 中的最终状态为 COMPLETE,但有时 app1 上的负载很高,因此首先处理 app2 日志,然后再处理 app1。 所以最终状态变为SCHEDULED
有没有办法防止这种情况发生,即我希望仅在状态不完整时更新我的文档? 当状态为 COMPLETE 时,文档不能自行更新
【问题讨论】:
-
你可以做的是,在
COMPLETE上你说它是一个更新插入,如果文档存在你更新它,如果不存在你创建它。在SCHEDULE上创建,如果文档不存在,它将创建一个文档,但如果不存在,它将失败做存在。