第4章:Kibana基础与可视化——从界面到第一个仪表板

Kibana是什么?说白了就是ELK全家桶的门面。你的日志进来了,Elasticsearch存好了,但不把它可视化出来,谁看得懂?

我当年第一次接触Kibana时,对着满屏幕的图表发懵——到底该点哪里?后来踩了不少坑,才真正理解它的设计逻辑。这一章我就带你把Kibana的基本操作捋一遍,重点是界面导航、数据探索(Discover)以及创建你的第一个仪表板。

4.1 Kibana界面导航:别迷路

打开Kibana,左侧那个深色侧边栏就是你的指挥中心。我个人习惯先扫一遍所有菜单项,搞清楚每个菜单是干什么的。

菜单项 作用 常用指数
Discover 原始数据搜索与浏览 ⭐⭐⭐⭐⭐
Dashboard 可视化面板集合 ⭐⭐⭐⭐⭐
Visualize Library 创建单个图表 ⭐⭐⭐⭐
Canvas 像素级自定义报表 ⭐⭐
Maps 地理数据分析 ⭐⭐⭐
Stack Management 索引管理、保存搜索等 ⭐⭐⭐⭐
个人小技巧: 如果你发现自己经常在多个菜单之间来回切换,可以试试按住Shift点击侧边栏图标——它会固定展开,不用每次鼠标划入才能看到文字。

Kibana的菜单设计其实挺合理的——从上到下,从左到右,依次是数据查看(Discover)、数据可视化(Visualize)、仪表板组装(Dashboard)。嗯,这条路我建议你按顺序走一遍。

4.2 数据探索(Discover):和日志直接对话

Discover是Kibana里我最爱用的模块。为什么?因为它让你直接面对原始数据,没有任何花哨的图表干扰。

我记得刚开始做审计日志巡检时,需要快速定位某个IP在过去一天的访问次数。如果先去建图表,太慢了。直接在Discover里用KQL(Kibana Query Language)写一句搜索,几秒钟搞定。

4.2.1 基本搜索与过滤

  • 时间选择器:右上角那个时钟图标,默认是过去15分钟。审计日志通常看过去24小时或过去7天,记得改它。
  • 搜索框:输入 src_ip:192.168.1.1 就能过滤出该IP的所有日志。
  • 字段过滤:点击左侧字段名,可以快速添加过滤条件。比如只显示 event_type 为 login_failed 的日志。
实战经验: 有一次排查某台服务器的登录异常,我直接在Discover里输入:
hostname: "web-01" AND event_type: "login_failed" AND user: NOT "admin"
一秒定位到了异常IP。这就是Discover的威力——先查数据,再决定要不要做图表。

4.2.2 保存搜索与导出

你经常用到的过滤条件,比如 event_type: error AND severity: critical,可以点搜索框旁边的“Save”按钮保存下来。下次直接在Saved Objects里调用,不用再写一遍。

我曾经踩过一个坑:保存搜索时忘了起一个好记的名字,结果后来有几十个“测试1”、“测试2”、“111”这样的保存项……那场面,惨不忍睹。建议你用 用途_数据类型_时间范围 这种命名方式,比如 告警日志_错误类_近7天。

4.3 创建第一个仪表板:把数据变成视图

仪表板是Kibana的终极武器。你要做的不是孤立的图表,而是在一张画布上把多个图表组合起来,让审计日志的各个维度一目了然。

注意: 创建仪表板前,必须先确保你的索引模式(Index Pattern)已经定义好。在第2章我们配置了 audit-*,这里直接用它就行。如果你的Kibana还没看到任何数据,检查一下索引模式有没有匹配错误。

4.3.1 从Visualize开始

我会先创建几个可视化组件,然后再拼成仪表板。

  1. 侧边栏选择 Visualize Library → 点击“Create visualization”。
  2. 选择数据源:比如 audit-*。
  3. 选择一个图表类型。对于审计日志,我个人常用的是:
    • 条形图:展示按小时统计的错误次数。
    • 数据表(Data Table):列出Top 5的源IP。
    • 计数器(Metric):显示总日志量、失败登录总数等。
  4. 配置聚合:比如 Date Histogram 以小时为单位,再加上一个 Terms 聚合按 event_type 分组。
  5. 保存这个图表,名字建议带上前缀 【Audit】 以区别于其他用途。

4.3.2 拼接仪表板

回到侧边栏 → 点击 Dashboard → “Create dashboard”。这时候你会看到一个空白画布。

  • 点击 Add → 从已有可视化列表中选择刚才保存的图表。
  • 用鼠标拖拽调整每个图表的大小和位置。
  • 右上角的 时间选择器 同样会影响整个仪表板的数据范围,记得设成你需要的时间窗口。

我通常会放三个图表:一个趋势线图看时间维度,一个饼图看事件类型分布,一个数据表看具体的异常IP。这样一眼就能发现问题。

4.3.3 保存与分享

点右上角的“Save”按钮,给仪表板起个正式的名字,比如“审计日志巡检面板_日视图”。

还需要注意一点:仪表板默认只有创建者能编辑。如果你要分享给团队,可以在仪表板页面顶部的“Share”按钮里生成一个短链接,或者直接将仪表板嵌入到其他页面。

避坑指南: 分享时最好勾选“Embedded”模式,它会自动适配不同的屏幕尺寸。我曾经直接把正在编辑的仪表板URL发给同事,结果那个URL包含了编辑参数,对方打开后也是编辑模式……大家都能改,最后面板被搞乱了。嗯,所以记住:分享只读链接。

知识结构一览

下面这张SVG图总结了从数据到仪表板的完整流程,你可以对照着回顾一下本章的核心逻辑。

Kibana数据可视化的关键路径 Elasticsearch Index Pattern Discover Saved Search Visualize 图表对象 Dashboard 先Discover看原始数据 再决定创建哪些图表 仪表板 = 多个图表 + 时间联动 保存后生成只读链接分享

这个流程图中,你可以看到数据从Elasticsearch流入,经过索引模式,在Discover中被检索和验证,然后通过Visualize变成图表,最后汇聚到仪表板。我建议你按照这个顺序操作,别跳步——跳步容易漏掉数据验证环节,等到仪表板建好才发现数据不对,那就要花更多时间排查。

本章小结

Kibana的核心就三件事:找到数据(Discover)、做图表(Visualize)、拼面板(Dashboard)。没有花哨的技巧,但每一个环节都有它存在的意义。

我个人觉得,最关键的还是第一步——在Discover里多花点时间把数据摸透。数据理解了,后面的图表自然就有了方向。好了,先把本章提到的操作在实验环境里跑一遍吧。