Kibana 8 原理与安装
参考:官网
Kibana 8 是 Elastic Stack(ELK Stack)的核心组件之一,专注于 Elasticsearch 的数据可视化、交互分析和管理运维,是 Elastic 生态中面向用户的 "可视化前端"。
一、Kibana 8 原理
-
定位
Kibana 本身不存储数据,所有数据均来自 Elasticsearch(ES),其核心作用是:
- 解析 ES 的数据结构(索引、字段、映射);
- 提供可视化组件(图表、仪表盘、地图等);
- 支持交互式查询(Discover 模块)、日志分析(Logs)、APM 监控、SIEM 安全分析等场景;
- 管理 Elastic Stack(ES 集群配置、用户权限、索引生命周期等)。
-
架构与交互流程
-
Kibana 8 的架构可分为三层,核心交互流程如下:
bash用户操作(浏览器/API) → Kibana 前端(React 构建) → Kibana 后端(Node.js 服务) → Elasticsearch API → 数据返回渲染 -
关键组件:
- 前端层:基于 React 和 EUI(Elastic UI 组件库),提供可视化界面,支持自定义仪表盘、画布(Canvas)、仪表板等;
- 后端层:Node.js 服务,处理用户请求、封装 ES API、管理会话 / 权限、执行 Saved Object(保存的可视化 / 查询等);
- 核心依赖 :
- 与 Elasticsearch 强版本对齐(Kibana 8.x 必须匹配 ES 8.x 主版本);
- 依赖 ES 的索引:
.kibana索引(存储 Kibana 配置、可视化、仪表盘等元数据); - 8.x 新增:默认启用 Elasticsearch 的安全功能(HTTPS、身份验证、RBAC 权限控制)。
-
-
8.x 版本特性
- 默认开启安全功能:HTTPS、内置用户(elastic/kibana/system 等)、RBAC 权限;
- 统一身份认证:集成 Elasticsearch 的 Security 模块,支持 SAML/OAuth2 等;
- 简化部署:支持一键式集群部署(Elastic Cloud)、容器化(Docker/K8s);
- 性能优化:查询缓存、可视化渲染优化,支持大数据量下的e快速分析;
- 新增功能:Observability(可观测性)统一视图、SIEM 增强、机器学习集成更紧密。
二、Kibana 8 安装步骤
Kibana 8 支持多种部署方式(Linux 包、Docker、K8s、Windows/macOS),以下以Linux(CentOS 7/8、Ubuntu 20.04+) 为例,讲解最常用的 "包管理器安装" 和 "Docker 安装"。
-
前提条件
-
已部署 Elasticsearch 8.x(单节点 / 集群),且 ES 服务正常运行;
-
Kibana 服务器与 ES 网络互通(默认端口 9200);
-
服务器满足基础资源:CPU ≥ 2 核,内存 ≥ 4GB,磁盘 ≥ 20GB;
-
关闭防火墙 / 放行端口(Kibana 默认端口 5601):
bash# CentOS firewall-cmd --add-port=5601/tcp --permanent firewall-cmd --reload # Ubuntu ufw allow 5601/tcp ufw reload
-
-
安装方式一: yum安装
-
添加Elastic 官方源
bash# 添加Elastic 官方源 # 导入 GPG 密钥 rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch # 创建 YUM 源文件(CentOS/RHEL) cat > /etc/yum.repos.d/kibana.repo << EOF [kibana-8.x] name=Kibana repository for 8.x packages baseurl=https://artifacts.elastic.co/packages/8.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF # Ubuntu/Debian 需先安装 apt-transport-https # wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg # echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | tee /etc/apt/sources.list.d/elastic.list > /dev/null -
安装 Kibana
bash# CentOS/RHEL yum install kibana -y # Ubuntu/Debian # apt update && apt install kibana -y # 设置开机自启 systemctl enable kibana
-
-
安装方式二: docker 安装
-
拉取 Kibana 8 镜像
bashdocker pull docker.elastic.co/kibana/kibana:8.14.0 # 替换为最新 8.x 版本 -
启动 Kibana 容器
bashdocker run -d \ --name kibana8 \ -p 5601:5601 \ -e ELASTICSEARCH_HOSTS="https://192.168.1.100:9200" \ -e ELASTICSEARCH_USERNAME="kibana_system" \ -e ELASTICSEARCH_PASSWORD="你的kibana_system密码" \ -e ELASTICSEARCH_SSL_VERIFICATIONMODE="none" \ -e I18N_LOCALE="zh-CN" \ docker.elastic.co/kibana/kibana:8.14.0 -
查看容器日志(确认启动)
bashdocker logs -f kibana8
-
-
安装方式三: 源码包 安装 <-- 当前用这种
-
安装
bash# 下载后放到 /opt下 tar xf kibana-8.18.8-linux-x86_64.tar.gz mv kibana-8.18.8 kibana # 创建无登录权限的kibana用户 useradd -r -s /sbin/nologin -d /opt/kibana kibana # 修正/opt/kibana目录所有权(关键) chown -R kibana:kibana /opt/kibana chmod 777 kibana -R -
获取es初始化密码
bash/opt/elasticsearch/bin/elasticsearch-reset-password -u kibana_system -i Enter password for [kibana_system]: # 输入密码 Re-enter password for [kibana_system]: Password for the [kibana_system] user successfully reset. -
vim /opt/kibana/config/kibana.ymlbashserver.port: 5601 # 绑定地址(允许外部访问) server.host: "0.0.0.0" # ES 连接地址(替换为你的ES地址) # elasticsearch.hosts: ["http://192.168.1.100:9200"] # 方式1:列出所有ES集群节点(推荐,Kibana会自动感知集群状态) elasticsearch.hosts: [ "http://10.4.50.130:9200", "http://10.4.50.139:9200", "http://10.4.50.167:9200" ] # 启用节点嗅探(仅8.x支持,需ES集群开启自动发现) # 启动时嗅探集群节点 elasticsearch.sniffOnStart: true # 每隔60秒重新嗅探节点 elasticsearch.sniffInterval: 60000 # 连接失败时重新嗅探 elasticsearch.sniffOnConnectionFault: true # ES 认证(kibana_system用户密码,从ES获取) elasticsearch.username: "kibana_system" # 修改密码 elasticsearch.password: "xiong123" # 测试环境禁用证书验证(生产需配置证书) elasticsearch.ssl.verificationMode: "none" # 可选:中文界面 i18n.locale: "zh-CN" -
自启脚本
bashcat > /etc/systemd/system/kibana.service << EOF [Unit] Description=Kibana 8.18.8 - Elasticsearch Visualization Tool Documentation=https://www.elastic.co/docs/en/kibana/current/ Wants=network-online.target After=network-online.target [Service] Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/kibana/node/glibc-217/bin:/opt/kibana/bin" Environment="NODE_PATH=/opt/kibana/node_modules" # 改用kibana用户运行 User=kibana Group=kibana Type=simple ExecStart=/opt/kibana/bin/kibana --config /opt/kibana/config/kibana.yml ExecReload=/bin/kill -HUP \$MAINPID Restart=on-failure RestartSec=10s LimitNOFILE=65535 LimitNPROC=4096 WorkingDirectory=/opt/kibana PrivateTmp=false ProtectSystem=false ProtectHome=false [Install] WantedBy=multi-user.target EOF -
启动 Kibana 并检查状态
bash# 启动服务 systemctl start kibana # 检查状态(正常应为 active (running)) systemctl status kibana
三、验证与初始化
-
访问 Kibana 界面
浏览器访问
http://Kibana服务器IP:5601,首次访问会进入初始化流程:- 步骤 1:验证 Elasticsearch 连接(自动检测,若配置正确则通过);
- 步骤 2:输入 Elasticsearch 的
elastic用户密码(初始化时生成的密码); - 步骤 3:完成初始化,进入 Kibana 主界面(中文界面需配置
i18n.locale: "zh-CN")。
-
核心功能验证
- Discover:创建索引模式,查看 ES 中的数据;
- Visualize:创建图表(柱状图、折线图等);
- Dashboard:组装可视化组件为仪表盘;
- Management:管理索引、用户、角色、快照等。
-
查看kibana状态
浏览器访问
http://Kibana服务器IP:5601/status
-
总结
- Kibana 8 作为 Elastic Stack 的可视化核心,通过 Node.js 后端对接 Elasticsearch,提供丰富的数据分析和管理能力。安装的核心是对齐 ES 版本、配置正确的认证信息、确保网络互通,生产环境需重点关注安全配置(HTTPS、权限控制)和性能优化(资源分配、缓存配置)。