Kibana 是 Elasticsearch 的官方可视化与管理平台,提供数据探索、仪表板构建、日志分析、监控告警、安全治理等一站式能力。以下是 Kibana 的核心功能与使用指南,适合从入门到进阶的用户。
一、Kibana 核心功能概览
| 功能模块 | 说明 |
|---|---|
| Discover | 交互式查询和浏览原始文档(类似日志查看器) |
| Dashboard | 拖拽式构建可视化看板(图表 + 表格 + 地图等) |
| Visualize Library | 创建单个可视化组件(柱状图、折线图、饼图、热力图等) |
| Lens | 低代码拖拽式分析工具(快速生成图表,无需写查询) |
| Maps | 地理空间数据可视化(支持 GeoJSON、WMS 图层) |
| Machine Learning | 异常检测、数据帧分析(无需编码) |
| Alerting & Actions | 基于条件触发告警(邮件、Webhook、Slack 等) |
| Stack Management | 管理索引模式、用户权限、集成插件、ILM 策略等 |
| Dev Tools | 直接调用 ES REST API(类似 Postman) |
二、基础使用流程(以日志分析为例)
步骤 1:配置索引模式(Index Pattern)
告诉 Kibana 哪些 ES 索引可被查询
- 进入 Stack Management > Kibana > Index Patterns
- 点击 Create index pattern
- 输入索引名(如
logs-*或filebeat-*) - 选择时间字段(如
@timestamp)→ 启用时间序列分析 - 创建完成
✅ 索引模式是 Kibana 查询数据的前提
步骤 2:使用 Discover 探索数据
-
查看原始日志文档
-
在搜索栏输入 Lucene 或 KQL(Kibana Query Language):kql 编辑
status: 500 and service.name: "order-service" -
点击字段值可自动添加过滤条件
-
支持高亮、展开 JSON、查看上下文日志
步骤 3:创建可视化(Visualization)
方法 A:通过 Visualize Library
- 选择图表类型(如 Vertical Bar、Line、Pie)
- 选择已创建的索引模式
- 配置:
- X 轴:时间(Date Histogram)或分类字段(Terms)
- Y 轴:计数(Count)、平均值(Average)、最大值等
- Filters / Buckets :分组维度(如按
service.name分组)
- 保存为可视化组件(如 "Error Rate by Service")
方法 B:使用 Lens(推荐新手)
- 拖拽字段到画布
- 自动推荐图表类型
- 实时预览,支持下钻分析
步骤 4:构建 Dashboard
- 进入 Dashboard > Create new dashboard
- 点击 Add from library,选择已保存的可视化
- 调整布局、大小、标题
- 添加全局过滤器(如时间范围、环境标签)
- 保存并分享(支持嵌入 iframe、生成短链接)
💡 技巧:开启 "View mode" 可隐藏编辑按钮,适合大屏展示
三、高级功能详解
1. Kibana Query Language (KQL
# 示例
response: * and not response: 200
geo.dest: "CN" or geo.dest: "JP"
bytes > 10000 and url.keyword : "/api/login"
✅ 支持自动补全、语法高亮、字段类型感知
2. Lens:低代码分析利器
- 无需理解 Aggregation DSL
- 支持:
- 趋势线(Trend)
- 百分比占比(Percentage)
- 分面(Facet)多维度对比
- 可导出为 TSV/CSV
3. 告警(Alerting)
场景:当错误日志突增时通知运维
- 进入 Alerts and Insights > Rules
- 创建规则 → 选择 "Index threshold"
- 配置:
- 查询条件:
status: 500 - 聚合:每 5 分钟 count > 100
- 查询条件:
- 设置 Action(如发送邮件、调用 Webhook)
- 启用规则
⚠️ 需要 Kibana 订阅(Basic 免费版支持部分告警)
4. 集成(Integrations)
Kibana 内置数百种数据源集成(如 AWS、Nginx、MySQL、Kubernetes):
- 自动部署采集器(通过 Fleet)
- 预置仪表板、告警规则、解析管道
- 统一管理日志、指标、APM 数据
路径:Management > Integrations
5. Fleet 与 Agent 管理(现代数据采集架构)
- Fleet:集中管理 Beats(Filebeat、Metricbeat 等)
- Elastic Agent:轻量统一代理,替代多个 Beats
- 支持策略下发、状态监控、自动升级
四、常用技巧与最佳实践
表格
| 场景 | 技巧 |
|---|---|
| 快速过滤 | 在 Discover 中点击字段值 → "Filter for value" |
| 保存查询 | 在搜索框右侧点击 "Save" → 下次一键加载 |
| 时间范围快捷切换 | 使用相对时间(Last 15m, Today)或绝对时间 |
| 共享看板 | Dashboard 页面点击 "Share" → 生成 URL 或嵌入代码 |
| 性能优化 | 避免在大时间范围内使用高精度 Date Histogram(如 1s 间隔) |
| 权限控制 | 通过 Role 控制用户只能访问特定索引或 Dashboard |
五、典型使用场景示例
表格
| 场景 | Kibana 解决方案 |
|---|---|
| 运维监控 | Metricbeat + System Dashboard → CPU/内存/磁盘实时监控 |
| 安全审计 | Auditbeat + SIEM App → 登录异常、文件篡改告警 |
| 业务分析 | 自定义索引 + Lens → 用户行为漏斗、转化率分析 |
| APM 追踪 | Elastic APM Agent → 服务拓扑、慢接口定位 |
| 地理分析 | GeoIP 字段 + Maps → 用户分布热力图 |
六、访问与部署
- 默认地址:
http://<kibana-host>:5601 - 首次登录需绑定 ES 集群(通过
kibana.yml中的elasticsearch.hosts) - 支持 Docker、RPM、DEB、云服务(Elastic Cloud)