【ES】[教程8]----第八章:Elasticsearch 可视化工具Kibana(控制台、仪表盘)_elasticsearch可视化工具kibana
Kibana是什么?
3大核心:调试工具、自定义可视化、安全和监控
Kibana 是 Elastic Stack(ELK 栈)免费且开放的用户界面,可与 Elasticsearch 配合使用,通过直观的图表、仪表盘等形式展示和分析 Elasticsearch 中的数据,支持日志分析、数据检索与可视化呈现,帮助用户快速理解数据模式和趋势。
【图片】
一、安装
1、下载
准备工作
- 确保已安装 Java 环境(Kibana 需要 Java 运行环境)并配置 JAVA_HOME 环境变量。
- 注意:Elasticsearch 和 Kibana 的版本需一一对应,请下载对应版本。
- 访问 Elastic 官方下载地址:https://www.elastic.co/cn/downloads/past-releases/kibana-8-0-0
- 选择 Windows 版本(zip 格式)
- 下载后解压到合适的目录,例如:
D:\\javaAll\\kibana-8.0.0
2、配置 Kibana
- 进入 Kibana 安装目录下的
config
文件夹。 - 找到并编辑
kibana.yml
文件。 - 基本配置(根据需要修改):
# 服务器端口,默认5601server.port: 5601# 服务器主机地址,默认localhost,允许外部访问可设置为0.0.0.0server.host: \"localhost\"# Elasticsearch 地址,Kibana需要连接到Elasticsearchelasticsearch.hosts: [\"http://localhost:9200\"]# 中文显示配置i18n.locale: \"zh-CN\"
3、启动 Kibana
打开命令提示符(CMD),进入 Kibana 安装目录的 bin
文件夹,执行启动命令:
# 进入bin目录cd D:\\javaAll\\kibana-8.0.0\\bin# 启动 Kibanakibana.bat
首次启动注意事项
- 启动过程中会初始化配置,可能需要几分钟时间。
- 启动成功后,会在控制台输出访问地址(通常是
http://localhost:5601
)。
登录方式
【登录方式1】token
首次访问需要输入 Elasticsearch 的 enrollment token(如果是同时安装的 Elasticsearch 8.0,在 Elasticsearch 启动日志中可以找到)。
【图片】
直接点击【配置Elastic】。
【登录方式2】账号密码
点击【手动配置】,需输入 kibana 账号密码;若未设置,可进入 Elasticsearch 的 bin
目录执行以下命令重置:
elasticsearch-reset-password -u kibana_system
执行后会生成新密码,示例如下:
D:\\javaAll\\elasticsearch-8.0.0\\bin>elasticsearch-reset-password -u kibana_systemwarning:ignoring JAVA_HOME=D:\\javaAll\\jdk\\jdk21; using bundled JDKThis tool will reset the password of the [kibana_system] user to an autogenerated value.The password will be printed in the console.Please confirm that you would Like to continue [y/N]yPassword for the [kibana_system] user successfully reset.New value: =mTr30DI*SexR_TM_jc0D:\\javaAll\\elasticsearch-8.0.0\\bin>
【图片】
无论哪种方式,最终都需点击【配置Elastic】并输入验证码(示例验证码:406726)。
【图片】
4、访问 Kibana
- 打开浏览器,访问
http://localhost:5601
。 - 首次登录:
- 输入 Elasticsearch 提供的 enrollment token(若未保存,可在 Elasticsearch 中生成新的 token)。
- 或使用 Elasticsearch 的用户名和密码登录(默认用户名为
elastic
,密码在 Elasticsearch 首次启动时生成)。
【图片】
常见问题解决
- 端口占用:若 5601 端口被占用,可修改
kibana.yml
中的server.port
配置。 - 连接 Elasticsearch 失败:
- 确保 Elasticsearch 已启动。
- 检查
elasticsearch.hosts
配置是否正确。 - 检查 Elasticsearch 和 Kibana 的版本是否匹配(必须相同主版本)。
- 权限问题:确保 Kibana 安装目录有读写权限。
安装完成后,可通过 Kibana 界面管理 Elasticsearch 数据、创建可视化图表和仪表板等。
【图片】
二、高级使用
1、简单数据展示
- 创建数据视图:左上角【discover】(探索发现)→ 新建视图 → 输入匹配的索引名称。
【图片】
- 数据展示示例:
【图片】
2、【控制台】必学
1、作用
用于调试 API 接口,使用频率高,类似 MySQL 中编写 SQL 的控制台。
控制台插件提供用户界面与 Elasticsearch 的 REST API 交互,包含两个主要部分:
- editor:编写提交给 Elasticsearch 的请求。
- response 面板:展示请求结果的响应。
页面顶部文本框默认输入 Elasticsearch 服务器地址:localhost:9200
。
2、进入控制台
- 方式1:点击【主页】→【开发者工具】。
- 方式2:点击左下角【开发者工具】。
【图片】
【图片】
3、示例操作
查看所有节点
GET _cat/nodes
查看所有索引
GET _cat/indices?v
创建 book 索引(无 createTime 字段,匹配现有数据结构)
PUT book{ \"settings\": { \"number_of_shards\": 3, \"number_of_replicas\": 1 }, \"mappings\": { \"properties\": { \"page\": { \"type\": \"integer\" }, \"content\": { \"type\": \"text\", \"analyzer\": \"standard\", \"fields\": { \"keyword\": { \"type\": \"keyword\" } } } } }}
查看 book 索引数据
GET book/_search{ \"query\": { \"match\": { \"content\": \"chenqionghe\" } }}
添加一条数据
POST book/_doc { \"page\":8, \"content\": \"chenqionghe喜欢运动,绳命是如此的精彩,绳命是多么的辉煌\"}
更新数据
PUT book/_doc/iSAz4XABrERdg9Ao0QZI{ \"page\":8, \"content\":\"chenqionghe喜欢运动,绳命是剁么的回晃;绳命是入刺的井猜\"}
删除数据
POST book/_delete_by_query{ \"query\": { \"match\": { \"page\": 8 } }}
批量插入数据
POST book/_bulk{ \"index\":{} }{ \"page\":22 , \"content\": \"Adversity, steeling will strengthen body.逆境磨练意志,锻炼增强体魄。\"}{ \"index\":{} }{ \"page\":23 , \"content\": \"Reading is to the mind, such as exercise is to the body.读书之于头脑,好比运动之于身体。\"}{ \"index\":{} }{ \"page\":24 , \"content\": \"Years make you old, anti-aging.岁月催人老,运动抗衰老。\"}{ \"index\":{} }
3、【仪表盘】Dashboard
1、仪表盘作用
可根据 Elasticsearch 中的数据自定义仪表盘,直观展示数据。
【图片】
2、模拟数据的准备
官方提供 3 个数据索引:
- 订单:Sample eCommerce orders
- 航班:Sample flight data
- 日志:Sample web logs
获取路径:【主页】→【试用样例数据】。
【图片】
控制台查看数据
# 显示条数:一万多条POST kibana_sample_data_flights/_count# 默认查10条数据POST kibana_sample_data_flights/_search# 字段映射POST kibana_sample_data_flights/_mapping
字段说明
【图片】
【图片】
可分析的维度
【图片】
3、【例】[标签图]天气
- 进入可视化创建界面:【Analytics】→【Visualize Library】→【创建可视化】→ 选择【标签云图】。
【图片】
- 选择数据来源索引:
kibana_sample_data_flights
。
【图片】
- 配置参数:
- 时间范围:选择“过去90天”。
- 指标(标签大小):聚合方式选择“计数”。
- 存储桶(标签):聚合方式选择“词”,字段选择“DestWeather”(天气字段),排序依据“指标:计数”,顺序“降序”,大小“10”。
【图片】
- 添加并保存,完成图表持久化。
【图片】
4、【例】[饼图]数据来源
- 选择类型:【基于聚合】→【饼图】。
【图片】
- 配置参数:
- 时间范围:选择“过去1年”。
- 指标(切片大小):聚合方式选择“计数”。
- 存储桶(拆分切片):聚合方式选择“词”,字段选择“Carrier”,排序依据“指标:计数”,顺序“降序”。
【图片】
5、【例】[指标图]航班总数据
- 选择类型:【基于聚合】→【指标图】。
【图片】
- 配置参数:
- 时间范围:选择“Sep 13, 2013 @ 20:00:00.000”至“now”。
- 指标:聚合方式选择“计数”。
【图片】
6、【例】整体保存成一个面板
- 进入仪表盘编辑界面:【Dashboard】→【新建仪表板】。
- 添加已创建的可视化图表:点击【从库中添加】,选择目标图表。
- 保存仪表盘:设置标题(示例:2025-08-15)、描述、标签,勾选“将时间随仪表板保存”。
【图片】
7、【例】[目标图]取消航班的比例
- 选择类型:【基于聚合】→【目标图】。
【图片】
- 配置参数:
- 格式模式:
0.0,[000]%
。 - 颜色方案:绿到红。
- 字段:选择“Cancelled”,运算符“是”,值“取消”。
- 指标:聚合方式选择“计数”。
- 格式模式:
【图片】
8、【例】[横向柱状图]没取消和取消的柱状直观图
- 选择类型:【基于聚合】→【横向柱状图】。
【图片】
- 配置参数:
- 存储桶(X轴):聚合方式选择“词”,字段选择“Cancelled”,排序依据“指标:计数”,顺序“降序”,大小“5”。
- 存储桶(X轴):聚合方式选择“词”,字段选择“Cancelled”,排序依据“指标:计数”,顺序“降序”,大小“5”。
【图片】
9、【例】[纵向柱状图]飞机延迟分钟数柱状图
- 选择类型:【基于聚合】→【纵向柱状图】。
【图片】
- 配置参数:
- 指标(Y轴):聚合方式选择“计数”。
- 存储桶(X轴):聚合方式选择“词”,字段选择“FlightDelayMin”,排序依据“指标:计数”,顺序“降序”,大小“20”;添加筛选“FlightDelayMin 不是 0”(去除0数据,图表更直观)。
【图片】
【图片】
10、【例】[纵向柱状图+具体分类]飞机延迟分钟数柱状图+具体延迟分类原因
- 选择类型:【基于聚合】→【纵向柱状图】。
- 配置参数:
- 指标(Y轴):聚合方式选择“计数”。
- 存储桶(X轴):聚合方式选择“Date Histogram”,字段选择“timestamp”,最小时间间隔“自动”。
- 子聚合(拆分序列):聚合方式选择“词”,字段选择“FlightDelayType”,排序依据“指标:计数”,顺序“降序”,大小“5”。
【图片】
【图片】
11、【例】[热图]
- 选择类型:【基于聚合】→【热图】。
- 配置参数:
- 存储桶(Y轴):聚合方式选择“词”,字段选择“OriginCountry”(始发国),排序依据“指标:计数”,顺序“降序”,大小“10”。
- 存储桶(X轴):聚合方式选择“词”,字段选择“DestCountry”(目的国),排序依据“指标:计数”,顺序“降序”,大小“5”。
【图片】
【图片】
12、【例】以 MySQL 表格展示——把字段保存成一个视图表
- 进入【discover】→ 选择目标数据 → 点击“+”添加需展示的字段 → 点击【保存】,命名为“zhuzhu”。
【图片】
- 返回仪表盘:点击【从库中添加】→ 选择“zhuzhu”→ 点击【保存仪表盘】。
【图片】