如何在Elastic Kibana中查询同时包含两类日志的traceID
在Kibana中筛选同时包含两类日志的traceID
方案1:使用Lucene DSL查询(搜索栏直接输入)
直接在Kibana搜索框中粘贴以下查询语句,它会筛选出拥有两类指定message的traceID,并通过聚合返回结果:
{ "query": { "bool": { "must": [ { "exists": { "field": "traceID" } }, { "bool": { "should": [ { "match": { "message": "Log.Test.First.Message" } }, { "match": { "message": "Log.Test.Second.Message" } } ], "minimum_should_match": 2 } } ] } }, "aggs": { "valid_traceIDs": { "terms": { "field": "traceID.keyword", "size": 100 } } } }
关键说明:
minimum_should_match: 2强制要求同一个traceID对应的日志必须同时包含两种指定的message内容aggs部分会聚合所有符合条件的traceID,结果可直接用于制作可视化- 如果你的
traceID字段不是keyword类型,将traceID.keyword替换为traceID即可
方案2:可视化界面操作(无需编写DSL)
- 打开Kibana「可视化」页面,创建数据表格类型的可视化
- 选择目标日志索引,进入「数据」标签页
- 添加两个筛选器:
- 筛选器1:
message=Log.Test.First.Message - 筛选器2:
message=Log.Test.Second.Message,点击筛选器的「高级选项」,将逻辑改为「或」,并勾选「每个值必须出现在不同文档中」
- 筛选器1:
- 在「行」区域添加
traceID.keyword作为分组字段 - 保存后即可得到所有符合条件的traceID
样本结果验证
根据你提供的日志样本,最终会返回两个符合条件的traceID:123和789
内容的提问来源于stack exchange,提问作者Lulex97
相关产品推荐
相关产品推荐

