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