[英]Combined output on multiple logstash according to document ID
您可以使用 document_id 组合弹性搜索端的日志,您可以使用弹性搜索更新查询来执行更新功能,使其与现有记录合并。
下面的代码将检查弹性搜索上是否有带有文档 id 的文档,如果没有文档,它将创建一个新文档。 如果存在具有文档 ID 的文档,它将执行更新查询。
为了澄清,请查看docs-update-by-query
试试这个下面的代码:
elasticsearch {
hosts => [ "xxxxxx"]
index => "combined"
action => "update"
doc_as_upsert => true
document_id => "%{[header][serialNum]}"
}
我看到一个建议使用更新选项的答案,
使用 elasticsearch "action => update" 会像疯了一样降低你的性能。 随着流量的增加,您会看到 ES 集群非常努力地工作。
“更新”将首先使ES搜索文档,合并文档,删除现有文档并添加这个新的合并文档。
那是很多处理!
我的答案:
使用聚合过滤器。 有一个 task_id 字段可以对其进行排序。 您可以将其设置为
aggregate {
task_id => %{[header][serialNum]}
...
}
https://www.elastic.co/guide/en/logstash/current/plugins-filters-aggregate.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.