零基础也能上手:Kibana日志可视化看板制作完整教程
制作看板前,先确认这些基础环境
Kibana 日志可视化看板依赖 Elasticsearch 和 Kibana 本身。
如果你还没有部署 ELK 栈,可以先通过 Docker 快速拉取(生产环境请按需调整):
docker run -d --name elasticsearch -p 9200:9200 -e "discovery.type=single-node" elasticsearch:7.17.9
docker run -d --name kibana --link elasticsearch -p 5601:5601 kibana:7.17.9
确保浏览器访问 http://服务器IP:5601 能看到 Kibana 界面。
另外,需要确保日志数据已写入 Elasticsearch(例如通过 Filebeat 采集 Nginx 日志或系统 syslog)。
如果你还没有数据,可以先使用 Kibana 自带的样本数据(Sample Data)练手:进入 Kibana 首页 → Add sample data → 选择“Sample web logs”。
第一步:创建索引模式,让 Kibana 认识你的日志
点开左侧导航 Management → Stack Management → Index Patterns(7.x 版本直接点“索引模式”)。
点击 Create index pattern,在输入框里填写与日志索引匹配的 pattern,例如 nginx-* 或 filebeat-*。
接着选择时间字段(通常选 @timestamp),点 Create index pattern 完成。
如果日志索引未正确匹配,可以在 Dev Tools 中执行 GET _cat/indices 查看已有索引名。
第二步:生成可视化图表(柱状图和饼图为例)
进入 Visualize Library(点击左侧 Visualize → Create visualization)。
先做一个柱状图显示每小时请求量:
- 选择 Vertical Bar,然后选择刚创建的索引模式。
- 将时间字段拖到 X 轴,选择 Date Histogram 聚合,间隔设为
1h。 - Y 轴使用 Count 聚合。
- 点 Save,输入名称如“每小时请求数”。
再做一个饼图展示 HTTP 状态码分布:
- Create visualization → Pie,同样选择索引模式。
- 先设置一个 Split slices 桶:聚合选 Terms,字段选
response.keyword(Nginx 访问日志中的状态码字段,请根据实际字段名调整)。 - 大小用 Count。
- 保存为“HTTP 状态码分布”。
第三步:组装成日志可视化看板
进入 Dashboard(左侧 Dashboard → Create dashboard)。
点击 Add,选择刚才保存的两个可视化图表,拖拽调整位置和大小。
可以继续添加更多图表(比如数据表格、折线图)。
最后点 Save,输入看板名称,例如“Nginx 访问日志概览”。
开启右上角的 Auto Refresh(自动刷新),设置刷新间隔(如 5 秒),让看板实时更新。
避坑指南:索引模式、时间字段与权限问题
- 索引模式匹配不上:检查索引名称是否包含
*通配符,或日志索引未创建。使用 Dev Tools 执行PUT /nginx-000001可以快速创建测试索引。 - 时间字段显示异常:日志中时间字段必须为
date类型,且格式正确。如果错选为text类型,在索引模式中会找不到时间字段,需重新 mapping。 - 图表不显示数据:检查时间范围是否覆盖了日志时间。右上角时间选择器改为“Last 15 minutes”或“Last 1 hour”。
- 权限不足:如果启用了 Security,请确保当前用户拥有
read权限和dashboard、visualize权限。在 Stack Management → Users 中可修改角色。
验证看板:用真实流量测试效果
启动一个测试请求(比如用 curl 刷几条访问日志到你的 Web 服务器):
for i in {1..10}; do curl -s http://你的服务器IP > /dev/null; done
稍等几秒,看板上的柱状图应该出现新的数据点,饼图状态码分布也会更新。
如果数据迟迟不出现,检查日志链路:Filebeat 是否正常读取日志,Logstash(如果有)是否过滤成功,ES 是否接收。
你可以在 Stack Management → Index Management 中确认索引文档数是否增长。
掌握这个流程后,你可以根据业务需求添加更多类型的可视化(如折线趋势图、地图、数据表格),逐步搭建完善的 Kibana 日志可视化看板。
如果在操作中遇到其他问题,建议优先查看 Kibana 自身的 Console 日志(docker logs kibana)和 ES 日志。