Plesk Docker环境下Kibana连接Elasticsearch报错无法获取节点版本信息
报错含义解释
Unable to retrieve version information from Elasticsearch nodes 报错的核心含义是:Kibana启动阶段需要先请求Elasticsearch接口获取版本信息,验证二者版本兼容性,该阶段的所有请求全部超时或返回错误,无法完成前置校验,因此Kibana启动中断。
排查解决步骤
- 先验证kibana_system账号有效性
进入Kibana容器内部,执行以下命令测试认证是否正常:
如果返回401错误,说明密码配置错误,进入ES容器执行以下命令重置kibana_system账号密码,再将新密码更新到kibana.yml即可:curl -u kibana_system:MyPassword http://172.17.0.1:9200bin/elasticsearch-reset-password -u kibana_system - 清理Kibana冗余配置
从你提供的日志可以看到,仍有monitoring.username使用旧账号的警告,说明你的kibana.yml中还保留了已废弃的monitoring相关账号配置,将该冗余配置删除,统一使用elasticsearch.username、elasticsearch.password的全局认证配置即可。 - 核对版本兼容性
Elasticsearch与Kibana的大版本必须完全匹配,跨大版本(如ES7对接Kibana8)必然触发该报错。分别进入两个容器执行以下命令核对版本号:# ES容器内执行 elasticsearch --version # Kibana容器内执行 kibana --version - 检查ES安全配置匹配度
你当前的elasticsearch.yml仅开启了节点间传输层的SSL,HTTP接口层未配置SSL,因此Kibana用HTTP协议连接是正确的。如果后续你为ES的HTTP层开启了SSL,需要在kibana.yml补充以下配置,否则会导致请求失败:elasticsearch.ssl.verificationMode: certificate elasticsearch.ssl.truststore.path: 你的ES证书路径 - 检查Plesk防火墙规则
即使容器网络层能正常curl通信,Plesk默认的防火墙规则可能会限制带认证的长连接请求,可临时关闭Plesk防火墙测试,确认是规则问题后,手动放行两个容器IP之间9200端口的入站、出站规则即可。 - 查看ES侧日志定位问题
Kibana发起连接请求时,ES侧会输出对应请求的日志,如果是权限不足、IP被拦截等问题,ES日志中会有明确的401/403报错记录,可根据报错内容对应调整配置。
内容的提问来源于stack exchange,提问作者Vlad
相关产品推荐
相关产品推荐

