linux服务-Kibana8原理与安装

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 安装"。

  • 前提条件

    1. 已部署 Elasticsearch 8.x(单节点 / 集群),且 ES 服务正常运行;

    2. Kibana 服务器与 ES 网络互通(默认端口 9200);

    3. 服务器满足基础资源:CPU ≥ 2 核,内存 ≥ 4GB,磁盘 ≥ 20GB;

    4. 关闭防火墙 / 放行端口(Kibana 默认端口 5601):

      bash 复制代码
      # CentOS
      firewall-cmd --add-port=5601/tcp --permanent
      firewall-cmd --reload
      # Ubuntu
      ufw allow 5601/tcp
      ufw reload
  • 安装方式一: yum安装

    1. 添加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
    2. 安装 Kibana

      bash 复制代码
      # CentOS/RHEL
      yum install kibana -y
      
      # Ubuntu/Debian
      # apt update && apt install kibana -y
      
      # 设置开机自启
      systemctl enable kibana
  • 安装方式二: docker 安装

    1. 拉取 Kibana 8 镜像

      bash 复制代码
      docker pull docker.elastic.co/kibana/kibana:8.14.0  # 替换为最新 8.x 版本
    2. 启动 Kibana 容器

      bash 复制代码
      docker 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
    3. 查看容器日志(确认启动)

      bash 复制代码
      docker logs -f kibana8
  • 安装方式三: 源码包 安装 <-- 当前用这种

    1. 下载安装包

    2. 安装

      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
    3. 获取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.
    4. vim /opt/kibana/config/kibana.yml

      bash 复制代码
      server.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"
    5. 自启脚本

      bash 复制代码
      cat > /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
    6. 启动 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、权限控制)和性能优化(资源分配、缓存配置)。
相关推荐
专业开发者2 小时前
楼宇自动化如何提升运营效率
运维·物联网·自动化
小陈又菜2 小时前
【计算机网络】网络层知识体系全解:从基础概念到路由协议
服务器·人工智能·计算机网络·机器学习·智能路由器
苹果醋32 小时前
JAVA设计模式之策略模式
java·运维·spring boot·mysql·nginx
奋斗的好青年2 小时前
Ubuntu+Windows双系统修复引导+更改启动顺序
linux·windows·ubuntu
yiSty2 小时前
Windows 10/11下安装WSL Ubuntu
linux·windows·ubuntu
CHANG_THE_WORLD2 小时前
vcpkg自动化安装库的界面程序
运维·自动化
编程研究坊2 小时前
LabelStudio linux 系统下部署教程
linux·运维·服务器
取加若则_2 小时前
gcc/g++
linux·gcc/g++
ybdesire2 小时前
在CentOS 7安装配置CodeQL与运行QL扫描
linux·运维·centos