如何在Kibana中过滤消息并配置版本统计仪表盘?
Kibana问题解答
1. 如何在Kibana中过滤消息?
在Kibana里过滤消息有好几种实用的方式,根据你的场景选就行:
- 快速字段值过滤:打开Discover页面,找到任意一条包含目标消息的文档,点击
message字段里的具体值,选择「Filter for value」(保留该值的消息)或者「Filter out value」(排除该值的消息),系统会自动生成过滤条件并应用。 - 搜索栏语法过滤:在Discover顶部的搜索框里用Lucene查询语法写过滤规则,比如要找包含"error"的消息就写
message: "error",要找包含任意以"timeout"结尾的内容可以写message:*timeout,支持精确匹配、通配符、范围查询等。 - 侧边栏字段过滤:在Discover左侧的字段列表中找到
message字段,点击「Add filter」,然后选择匹配规则(比如「包含」「等于」「不包含」),输入要过滤的内容,确认后过滤条件就会生效,还能保存这个过滤条件后续复用。
2. 提取动态版本号并统计数量的仪表盘配置
要实现这个需求,得先把message字段里的版本号提取成独立字段,再做统计可视化,步骤如下:
第一步:提取版本号为独立字段
我推荐用Runtime Field(不需要重新索引数据)来处理:
- 进入「Stack Management」>「Index Patterns」,找到你对应的索引模式并进入。
- 切换到「Runtime Fields」标签,点击「Add runtime field」。
- 字段名设为
version,类型选「Keyword」(方便后续统计),然后在Painless脚本框里写提取逻辑:
如果你的版本号带前缀(比如echo v2.0.1),就把正则改成// 这里的正则要匹配你的版本号格式,比如echo 1.2.3就用下面的规则 def matchPattern = /echo (\d+\.\d+\.\d+)/.matcher(doc['message'].value); if (matchPattern.find()) { emit(matchPattern.group(1)); }/echo v?(\d+\.\d+\.\d+)/,确保能正确匹配到版本号。 - 保存这个Runtime Field,回到Discover页面就能看到新的
version字段了。
第二步:创建统计可视化
- 进入「Visualize Library」,点击「Create visualization」,选择你喜欢的图表类型(比如垂直柱状图、饼图都适合展示分类统计)。
- 选择你的索引模式,在「Metrics」区域选择「Count」(统计每个版本的出现次数)。
- 在「Buckets」区域点击「Add」,选择「Split Bars」(或Split Series,根据图表类型调整),类型选「Terms」,字段选择刚才创建的
version,排序方式选「Count」降序,这样数量多的版本会排在前面。 - 调整图表的标题、颜色等样式,完成后保存这个可视化。
第三步:添加到仪表盘
- 进入「Dashboard」页面,点击「Create dashboard」,然后点击「Add」按钮,选择刚才保存的可视化图表添加进去。
- 可以添加时间范围过滤器、调整布局,最后保存仪表盘就完成啦。
内容的提问来源于stack exchange,提问作者Jeel
相关产品推荐
相关产品推荐

