kibana介绍与部署(Windows详细版)

kibana介绍与部署(详细版)

  • [Kibana 是什么?](#Kibana 是什么?)
  • [Elasticsearch 用户体系](#Elasticsearch 用户体系)
    • [为什么需要专门的 kibana_system 用户?](#为什么需要专门的 kibana_system 用户?)
  • [Kibana 的主要功能](#Kibana 的主要功能)
  • 实际应用场景
  • [Kibana 的工作流程](#Kibana 的工作流程)
  • [Kibana 界面组成](#Kibana 界面组成)
  • [为什么需要 Kibana?](#为什么需要 Kibana?)
  • [🆚 Kibana vs 传统方式](#🆚 Kibana vs 传统方式)
  • [Kibana 的特点](#Kibana 的特点)
  • 常见疑问解答
  • Windows上安装Kibana的详细步骤

Kibana 是什么?

Kibana 是一个用于 Elasticsearch 的"数据可视化和管理界面"。但它本身不存储数据。它需要连接到Elasticsearch 集群来读取和写入数据(例如保存仪表板、可视化等)

简单比喻

  • Elasticsearch 是 数据库/搜索引擎(存储和检索数据的地方)
  • Kibana 是 操作界面/仪表盘(帮助查看、管理和分析这些数据的工具)

当 Kibana 启动时,它需要使用一个 Elasticsearch 用户来连接到 Elasticsearch。这个用户必须存在于 Elasticsearch 中,并且具有足够的权限来管理 Kibana 的索引(例如 .kibana_*)。

所有用户的认证(用户名/密码)都存储在 Elasticsearch 中,包括

  • elastic 用户(超级管理员)
  • kibana_system 用户(Kibana 系统用户)
  • 自己创建的其他用户

Elasticsearch 用户体系

Elasticsearch 默认有这些内置用户:

用户名 用途 类似角色
elastic 超级管理员 银行行长
kibana_system Kibana连接专用 ATM机专用账户
logstash_system Logstash连接专用 存款机专用账户
beats_system Beats连接专用 点钞机专用账户
apm_system APM连接专用 监控系统账户
remote_monitoring_user 监控专用 监控摄像头账户

对于 Elasticsearch 8.0 及以上版本,可以概括为:默认安全已开启,内置账户已存在,但初始密码为空,必须由管理员设置后才能使用

默认情况下,Elasticsearch 提供了一个内置用户 kibana_system,专门用于 Kibana 连接。因此,我们需要在 Elasticsearch 中设置这个用户(kibana)的密码(通常第一次使用才需要),在已有es账密的条件下,可以执行:

bash 复制代码
curl -u elastic账号:elastic密码 -X POST "http://es的IP端口/_security/user/kibana_system/_password" -H "Content-Type: application/json" -d '{"password": "123456"}'

这条命令的意思是:
"用行长账户(elastic)为ATM机创建一个专用账户(kibana_system),密码设为123456",后面可以使用这个账密登录kibana

为什么需要专门的 kibana_system 用户?

1. 安全分离 :Kibana 不应该使用 elastic 超级管理员账户
2. 权限最小化 :kibana_system 只有Kibana需要的权限
3. 审计跟踪:可以单独审计Kibana的操作

Kibana 的主要功能

1. 数据可视化 📈

  • 将 Elasticsearch 中的数据变成图表、图形、仪表盘
  • 支持柱状图、饼图、折线图、地图等多种可视化类型

2. 数据探索 🔍

  • 搜索和筛选存储在 Elasticsearch 中的海量数据
  • 实时查看日志、指标、交易记录等

3. 监控和告警 ⚠️

  • 监控服务器性能、应用状态、网络流量
  • 设置阈值,异常时自动发送告警

4. 安全管理 🛡️

  • 管理用户权限和角色
  • 查看安全事件和威胁

5. 开发工具 🛠️

  • 内置的 Elasticsearch API 测试工具(Dev Tools)
  • 可以直接执行查询命令,无需命令行

实际应用场景

场景1:日志分析(最常见)

bash 复制代码
应用产生日志 → Elasticsearch 存储日志 → Kibana 展示和分析日志

结果:在漂亮的界面上查看错误日志、用户行为等。

场景2:服务器监控

bash 复制代码
服务器指标(CPU、内存)→ Elasticsearch → Kibana 仪表盘

结果:实时看到所有服务器的健康状况。

场景3:电商数据分析

bash 复制代码
用户点击、购买记录 → Elasticsearch → Kibana 图表

结果:分析用户行为、销售趋势、热门商品。

场景4:安全监控

bash 复制代码
防火墙日志、登录记录 → Elasticsearch → Kibana 安全面板

结果:检测异常登录、网络攻击。

Kibana 的工作流程

bash 复制代码
原始数据 → Beats/Logstash(收集) → Elasticsearch(存储/搜索) → Kibana(可视化/分析)

举例说明:

  1. 你的网站有访问日志
  2. Filebeat(采集器)收集这些日志
  3. 发送到 Elasticsearch 存储
  4. 打开 Kibana,创建图表显示:
  • 每小时访问量
  • 最热门页面
  • 用户地域分布
  • 错误率趋势

Kibana 界面组成

在登录后看到的各个部分(部分列举):

功能区域 图标 用途
Discover 🔍 搜索和探索原始数据
Dashboard 📊 仪表盘(图表集合)
Visualize 📈 创建图表和图形
Canvas 🎨 创建动态信息图
Maps 🗺️ 地理空间数据可视化
Machine Learning 🤖 异常检测和预测
Dev Tools ⚙️ Elasticsearch API 工具
Management ⚙️ 系统管理和设置

为什么需要 Kibana?

没有 Kibana 时:

  • 只能通过命令行查询 Elasticsearch
  • 看到的是 JSON 格式的原始数据
  • 需要自己写程序来生成图表
  • 无法实时监控和告警

有了 Kibana 后:

  • 点点鼠标就能创建漂亮的图表
  • 实时刷新查看最新数据
  • 拖拽操作构建仪表盘
  • 预设模板快速开始
  • 团队共享分析结果

🆚 Kibana vs 传统方式

任务 传统方式 使用 Kibana
查看日志 grep 命令 点击筛选器
分析趋势 写 Python 脚本 拖拽创建图表
监控状态 自定义监控系统 使用内置监控
共享报告 导出 CSV + Excel 分享链接
设置告警 写脚本检测 可视化配置

Kibana 的特点

1. 开源免费 (基础功能免费)
2. 实时性 :数据几乎实时显示
3. 交互性 :可以下钻查看细节
4. 可扩展 :支持插件和自定义
5. 集成性好:与 Elasticsearch 完美配合

常见疑问解答

Q:为什么不能直接用 elastic 用户连接 Kibana?

A:安全考虑。如果Kibana被攻击,攻击者只能获得有限的权限,而不是超级管理员权限。

Q:为什么不能直接在 Kibana 界面设置 kibana_system 密码?

A:因为密码必须存储在 Elasticsearch 中,Kibana 只是读取这个密码来连接。

Q:为什么 elastic 用户能创建其他用户?

A:elastic 是内置的超级管理员,拥有所有权限。

Q:如果忘记了 elastic 密码怎么办?

A:需要重置 Elasticsearch 的密码,这通常在 Elasticsearch 服务器上操作。

Windows上安装Kibana的详细步骤

1. 选定版本下载(本文以kibana-8.15.2为例)

Elastic Stack 要求 Kibana 和 Elasticsearch 的主版本号必须完全一致,所以需要先确定Elasticsearch的版本:

bash 复制代码
curl -u elastic账号:密码 http://ip:端口/

然后下载对应版本的Kibana:
https://www.elastic.co/cn/downloads/kibana

2. 下载后解压

组织结构简述:

  • config (配置中心)
    这是最重要的目录,存放所有配置文件。需要编辑其中的 kibana.yml 来连接 Elasticsearch(设置主机、端口、用户名、密码等)。
  • bin (程序入口)
    存放可执行文件。在 Windows 上,主要通过运行 kibana.bat 来启动服务。
  • data (内部数据)
    Kibana 运行时产生的内部数据,如内部状态、缓存等。通常无需手动修改。
  • logs (运行日志)
    启动 Kibana 后,运行日志会在此生成。当遇到问题时,查看这里的 *.log 文件是首要的排错方法。
  • plugins (功能扩展)
    存放用户安装的插件。Kibana 的很多高级功能(如某些图表类型、数据源连接器)以插件形式提供。
  • node 与 node_modules (运行环境)
    Kibana 基于 Node.js 开发,这两个目录包含了它运行所需的Node.js环境和所有依赖的第三方代码库,请勿手动修改或删除。

3. 启动Kibana

双击kibana.bat

正常启动后可以看到:

之后打开http://localhost:5601/?code=647183 这个code是随机生成的,具体结合实际code跳转

4. 配置要连接的elastic服务器

5. 使用kibana账密登录(这个账密对应上面提到的kibana_system):

之后会看到这个界面:

6. 到这一步表示已经成功建立起kibana与elastic的连接,之后就可以使用es的账密登录进入到图形化界面了:

7. 登录成功:

下一篇会详细介绍下如何使用Kibana!!

相关推荐
Joren的学习记录2 小时前
【Linux运维进阶知识】Nginx负载均衡
linux·运维·nginx
刘一说2 小时前
时空大数据与AI融合:重塑物理世界的智能中枢
大数据·人工智能·gis
真上帝的左手2 小时前
18. 操作系统-Windows-命令提示符
windows
瑶光守护者3 小时前
【学习笔记】5G RedCap:智能回落5G NR驻留的接入策略
笔记·学习·5g
你想知道什么?3 小时前
Python基础篇(上) 学习笔记
笔记·python·学习
SHOJYS3 小时前
学习离线处理 [CSP-J 2022 山东] 部署
数据结构·c++·学习·算法
GIS数据转换器3 小时前
综合安防数智管理平台
大数据·网络·人工智能·安全·无人机
weixin_409383123 小时前
简单四方向a*学习记录4 能初步实现从角色到目的地寻路
学习·a星
Jtti3 小时前
服务器防御SYN Flood攻击的方法
运维·服务器
2501_941982053 小时前
RPA 的跨平台部署与统一自动化策略
运维·自动化·rpa