Kibana 安装与基础配置

说到可视化的环节,我个人觉得 Kibana 才是真正让 ELK 变「活」的那块拼图。原先是每天写命令查索引,有了 Kibana 之后,图表一拉、仪表盘一排,整个审计日志的流向清清楚楚。嗯,这一章我们就来搞定它的安装和基本设置。

认识 Kibana

Kibana 是 Elastic Stack 里的「前台」。它通过浏览器把 ES 里的数据变成折线图、柱状图、地图或者数据表格。说白了,你的密钥审计日志长什么样,全凭它来呈现。

Kibana 本身不存数据,只负责从 Elasticsearch 查询并展示。所以安装时不依赖数据库,几项配置搞定就能上线。

环境准备与版本选择

版本这件事我踩过坑。Kibana 的版本必须跟 Elasticsearch 完全一致。比如你 ES 是 7.17.6,Kibana 也得是 7.17.6。曾经有个项目,大意用了不同小版本,结果 Discover 页面一直报版本错误,花了一上午排查才发现是版本不匹配。

操作系统:CentOS 7 / Ubuntu 18.04+ 都可以。我习惯用 CentOS,服务管理更顺手。

  • Java 环境:Kibana 自带了 Node.js,不需要额外装 JDK。但 ES 需要 JDK。
  • 内存:生产环境建议 2GB 以上。试过 1GB 跑审计日志,查询量大就崩。
  • 端口:默认 5601,保证没被占用。

在 Linux 上安装 Kibana

推荐用官方 tar.gz 包,方便控制目录结构。先下载对应版本:

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.6-linux-x86_64.tar.gz
tar -xzf kibana-7.17.6-linux-x86_64.tar.gz
mv kibana-7.17.6-linux-x86_64 /usr/local/kibana

接下来配置 /usr/local/kibana/config/kibana.yml。最基础的三项:

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]

这里要留意,server.host 如果只写 localhost,其他机器无法访问。生产环境通常指定内网 IP 或 0.0.0.0。另外,elasticsearch.hosts 可以写多个节点,比如 ["http://10.0.1.10:9200", "http://10.0.1.11:9200"]。

个人习惯:我通常把 Kibana 和 ES 分开部署,Kibana 只连接 ES 集群的某个 data 节点或 client 节点,避免抢资源。

基础配置项详解

有些参数虽然不强制,但按场景必须配。下面这张表是我从几个项目中整理出来的:

配置项 默认值 说明
server.host "localhost" 绑定的网络接口,生产建议内网 IP
server.name 主机名 Kibana 实例名称,集群中区分用
elasticsearch.hosts ["http://localhost:9200"] ES 地址数组
kibana.index ".kibana" Kibana 自己用到的索引名,一般不动
logging.dest stdout 日志输出位置,生产建议改为文件
i18n.locale "en" 界面语言;设为 "zh-CN" 可切换中文

我建议在初始化阶段就把 server.name 和 logging.dest 配好,方便后期故障定位。

启动与验证

Kibana 默认不能以 root 运行,所以创建一个普通用户:

useradd -r -s /bin/false kibana
chown -R kibana:kibana /usr/local/kibana
su -s /bin/bash -c '/usr/local/kibana/bin/kibana' kibana

启动后观察终端输出。当看到 Kibana is starting... 和 Kibana is running 字样,就成功了。

验证是否正常:

curl -s http://localhost:5601/api/status | jq .status.overall.level

如果返回 "available",说明 Kibana 已连上 ES。浏览器访问 http://你的IP:5601,你会看到 Kibana 登录或首页。

曾经踩过的坑:我在一次机器迁移后,忘了改 elasticsearch.hosts 里的 IP,结果 Kibana 能启动但页面一直显示「Kibana 正在加载」,日志报连接 ES 超时。所以配完后先 curl 一下 localhost:5601/api/status,确认 ES 状态是 green 或 yellow。

创建首个索引模式

进入 Kibana Web 界面,如果没配置安全认证,直接就能访问。左侧菜单选「Stack Management」→「索引模式」。

  1. 点击「创建索引模式」。
  2. 输入索引名模式,比如 audit-*(对应之前 ES 里的审计日志索引)。
  3. 选择时间筛选字段(通常选 @timestamp 或你数据里的时间戳)。
  4. 点击「创建索引模式」。

创建完毕后,去「Discover」页面就能看到你的审计日志条目了。你可以试着添加过滤器、切换时间范围、修改字段显示。Kibana 会自动按时间排序展示。

避坑指南

说几个要点:

  • 启动慢:第一次启动 Kibana 会在 ES 中初始化 .kibana 索引,如果 ES 集群节点多或者磁盘慢,可能需要 30 秒到 1 分钟。别慌,等一会儿就好。
  • 中文乱码:如果你用 i18n.locale: "zh-CN",注意系统要安装中文字体,不然界面显示方块。我曾经用 yum 装 fontconfig 和 wqy-microhei 解决。
  • 内存溢出:Kibana 默认堆内存 1GB,如果审计日志数据量大,容易 OOM。建议调大 NODE_OPTIONS,比如 export NODE_OPTIONS="--max-old-space-size=2048"。
  • 权限问题:以普通用户运行后,确保 /usr/local/kibana 目录和日志路径都有写权限。

进阶:配置安全访问

如果之前已经为 ES 配置了 X-Pack 安全(用户名密码),Kibana 也需要配上凭证才能连接。在 kibana.yml 中添加:

elasticsearch.username: "kibana"
elasticsearch.password: "your_password"
xpack.security.enabled: true

然后重启 Kibana。之后访问 Kibana 时,也会弹出登录框,使用 ES 的 kibanauser 或管理员账号登录。

我建议:在 ES 中为 Kibana 单独创建一个角色,只给 kibana_system 权限,不要直接用 elastic 超级用户,安全审计场景更要这么做。
Kibana 安装配置流程 Kibana 安装与基础配置流程 1. 下载 Kibana tar.gz 2. 解压并移动到目标目录 3. 编辑 kibana.yml 4. 创建用户并启动服务 5. curl 验证状态 6. 创建索引模式 ✓ Kibana 就绪,开始审计

好了,到这一步你已经在浏览器里看到了自己的密钥审计日志。Kibana 的安装其实不复杂,但配置细节很多,特别是连接已有的 ES 集群和安全认证部分。把这章的基础打牢,后面做仪表盘和告警才顺手。