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"]。
基础配置项详解
有些参数虽然不强制,但按场景必须配。下面这张表是我从几个项目中整理出来的:
| 配置项 | 默认值 | 说明 |
|---|---|---|
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」→「索引模式」。
- 点击「创建索引模式」。
- 输入索引名模式,比如
audit-*(对应之前 ES 里的审计日志索引)。 - 选择时间筛选字段(通常选
@timestamp或你数据里的时间戳)。 - 点击「创建索引模式」。
创建完毕后,去「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 或管理员账号登录。
kibana_system 权限,不要直接用 elastic 超级用户,安全审计场景更要这么做。
好了,到这一步你已经在浏览器里看到了自己的密钥审计日志。Kibana 的安装其实不复杂,但配置细节很多,特别是连接已有的 ES 集群和安全认证部分。把这章的基础打牢,后面做仪表盘和告警才顺手。