1 缘起
最近在学习使用ES,
为了找一个功能强大的可视化工具,之前使用了ES-Head,可以满足学习需求。
闲暇时间又折腾了另一个工具Kibana,
分享如下。
Kibana优点:
用户友好性:Kibana提供直观易用的用户界面,支持可视化数据和交互式查询。
实时监控:能够实时监控数据,快速识别趋势、问题和异常。
灵活性:支持自定义仪表板和图表,可以根据需求定制展示数据。
整合性:与Elasticsearch等开源工具集成紧密,为数据分析和可视化提供全面解决方案。
多功能性:支持多种数据源和格式,包括日志文件、指标数据和地理空间数据等。
Kibana缺点:
学习曲线:对于新手来说,可能需要一定时间来熟悉Kibana的各项功能和配置选项。
性能限制:处理大规模数据时可能会影响性能,特别是在数据可视化较为复杂的情况下。
维护复杂性:需要定期维护和更新,以确保系统的稳定性和安全性。
扩展性限制:在某些情况下,Kibana的扩展性可能受到限制,无法满足一些高级或定制化的需求。
资源消耗:运行Kibana可能需要较多的系统资源,尤其是在处理大量数据或复杂查询时。
版本:
ES:8.12.2
Kibana:8.12.2
2 容器化ES
参考文章:https://blog.csdn.net/Xin_101/article/details/136418895
3 容器化Kibana
3.1 配置ES账密
# 进入ES容器,添加用户kibana-user
/usr/share/elasticsearch/bin/elasticsearch-users useradd kibana-user
# 配置密码:kibana-pwd#增加授权:
#superuser能正常打开es的9200端口,kibana_system配置后才可以正常对接kb和es
/usr/share/elasticsearch/bin/elasticsearch-users roles -a superuser kibana-user
/usr/share/elasticsearch/bin/elasticsearch-users roles -a kibana_system kibana-user
3.1.1 移除授权
/usr/share/elasticsearch/bin/elasticsearch-users roles -r kibana_admin kibana-user
3.1.2 查看授权
/usr/share/elasticsearch/bin/elasticsearch-users roles -v kibana-user
kibana-user : kibana_system,superuser
3.2 部署Kibana
# 拉取镜像
docker pull kibana:8.12.2
# 前台启动,获取配置文件
docker run --name kibana -p 5601:5601 kibana:8.12.2
# 新建配置路径
mkdir -p /home/xindaqi/data/kibana-8-12-2
# 拷贝配置文件
docker cp kibana:/usr/share/kibana/config /home/xindaqi/data/kibana-8-12-2
# 修改配置文件
vi /home/xindaqi/data/kibana-8-12-2/config/kibana.yml
elasticsearch.username: "kibana-user"
elasticsearch.password: "kibana-pwd"
启动
docker run -dit \
--restart=always \
--name kibana-8-12-2 \
-p 5601:5601 \
-v /home/xindaqi/data/kibana-8-12-2/config:/usr/share/kibana/config \
kibana:8.12.2
3 应用
3.1 登录Kibana
http://172.22.75.234:5601/login?next=%2Fapp%2Fhome#/
3.2 查看索引
3.3 查询数据
4 小结
(1)部署Kibana8.12.2连接ES8.12.2不能使用elastic用户名,需要配置新的用户;
(2)需要为新建的用户添加kibana角色:kibana_system;
(3)配置Kibana,为获取配置文件,可以先临时启动Kibana,从容器内拷贝配置文件到本地,本地修改后,挂在到容器内。
5 Q&A
5.1 Kibana无法使用用户名:elastic
原因
Kibana8.12.2版本中,Kibana配置ES用户名时,提示无法使用elastic,因为这个用户名是超级用户。
[config validation of [elasticsearch].username]: value of “elastic” is forbidden. This is a superuser account that cannot write to system indices that Kibana needs to function. Use a service account token instead. Learn more: https://www.elastic.co/guide/en/elasticsearch/reference/8.0/service-accounts.html
Error: [config validation of [elasticsearch].username]: value of “elastic” is forbidden. This is a superuser account that cannot write to system indices that Kibana needs to function. Use a service account token instead. Learn more: https://www.elastic.co/guide/en/elasticsearch/reference/8.0/service-accounts.html
at ensureValidConfiguration (/usr/share/kibana/node_modules/@kbn/core-config-server-internal/src/ensure_valid_configuration.js:23:11)
at Server.preboot (/usr/share/kibana/node_modules/@kbn/core-root-server-internal/src/server.js:162:5)
at Root.preboot (/usr/share/kibana/node_modules/@kbn/core-root-server-internal/src/root/index.js:47:14)
at bootstrap (/usr/share/kibana/node_modules/@kbn/core-root-server-internal/src/bootstrap.js:97:9)
at Command. (/usr/share/kibana/src/cli/serve/serve.js:241:5)
FATAL Error: [config validation of [elasticsearch].username]: value of “elastic” is forbidden. This is a superuser account that cannot write to system indices that Kibana needs to function. Use a service account token instead. Learn more: https://www.elastic.co/guide/en/elasticsearch/reference/8.0/service-accounts.html
方案
新增ES用户,并配置角色:kibana_system
# 进入ES容器,添加用户kibana-user
/usr/share/elasticsearch/bin/elasticsearch-users useradd kibana-user
# 配置密码:kibana-pwd#增加授权:
#superuser能正常打开es的9200端口,kibana_system配置后才可以正常对接kb和es
/usr/share/elasticsearch/bin/elasticsearch-users roles -a superuser kibana-user
/usr/share/elasticsearch/bin/elasticsearch-users roles -a kibana_system kibana-user#移除授权:
/usr/share/elasticsearch/bin/elasticsearch-users roles -r kibana_admin kibana-user#查看授权:
/usr/share/elasticsearch/bin/elasticsearch-users roles -v kibana-user