kibana第一次连接elasticsearch出现问题2:Unable to retrieve version information from Elasticsearch nodes.
经过上篇文章 “kibana第一次连接elasticsearch出现问题1” 的操作后,重新运行kibana容器,发现kibana对应链接依旧打不开,这次直接显示网络错误。
·
问题描述
经过上篇文章 “kibana第一次连接elasticsearch出现问题1” 的操作后,重新运行kibana容器,发现kibana对应链接依旧打不开,这次直接显示网络错误。
通过docker 命令查看kibana日志:
docker logs kibana
显示错误为:[elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. security_exception Root causes: security_exception: missing authentication credentials for REST request
问题原因
这个错误表示 Kibana 无法从 Elasticsearch 节点检索版本信息,原因是缺少身份验证凭据。Elasticsearch 需要身份验证来进行 REST 请求,但 Kibana 没有提供有效的身份验证信息。
解决过程
通过查询好像kibana可以通过两种方式进行身份认证:
- 使用用户身份进行验证:如果 Elasticsearch 启用了用户名和密码认证,在kibana的配置文件中添加对应的用户名和密码(elasticsearch创建的)
- 为 Kibana 配置证书认证: 如果 Elasticsearch 使用的是证书认证而不是用户名和密码,则需要在 Kibana 配置中提供适当的证书和密钥。
方案二在上篇文章 “kibana第一次连接elasticsearch出现问题1” 就出现了问题,因此选择方案一进行解决。
我记得 elasticsearch 有内置用户专门用于连接kibana。
方案二过程:
- 进入 Elasticsearch 容器
docker exec -it elasticsearch /bin/bash
- 手动为内置用户 kibana_system 设置密码,可以使用 --interactive 参数,它会提示输入并确认新密码。
bin/elasticsearch-reset-password -u kibana_system --interactive
- 退出容器
exit
- 在 Kibana 配置文件中添加凭证,打开 Kibana 容器的 kibana.yml 配置文件,通常位于 /usr/share/kibana/config/kibana.yml
cat >> /usr/share/kibana/config/kibana.yml
- 添加以下内容:
elasticsearch.username: "kibana_system"
elasticsearch.password: "your_kibana_system_password"
- 退出容器,重启kibana容器
exit
docker restart kibana
更多推荐
所有评论(0)