问题描述
Kibana 日志显示:
[2025-07-01T13:32:24.574+08:00][ERROR][elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. socket hang up - Local: 127.0.0.1:51077, Remote: 127.0.0.1:9200
这表明 Kibana 尝试连接到 Elasticsearch 时,连接被挂断(socket hang up)。通常由以下原因之一导致:
-
Elasticsearch 服务未正常运行。
-
网络问题导致连接中断。
-
配置不正确。
可能的原因
1. IP 配置问题
Elasticsearch 和 Kibana 的地址,IP配置不正确可能导致连接失败。可以参考以下链接进行排查:
2. Elasticsearch 启用了安全功能
如果 Elasticsearch 的配置文件中启用了以下安全功能:
elasticsearch.yml
xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/http.p12
# 这表明 Elasticsearch 的 HTTP 通信是通过 SSL 加密的,需要使用证书。
并且你的kibana的配置文件中的请求协议不是https的
kibana.yml
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://127.0.0.1:9200"]
如果 Elasticsearch 启用了 SSL,而 Kibana 的配置仍然使用 http:// 协议,会导致连接失败。
解决步骤
1. 确保 Elasticsearch 服务正常运行
-
推荐直接访问 Elasticsearch 服务 :通过浏览器访问
localhost:9200,确保能够返回数据。 -
或者使用命令行检查:运行以下命令检查 Elasticsearch 是否正常运行:
curl -u elastic:your_password https://127.0.0.1:9200 -k
如果返回 Elasticsearch 的版本信息,则说明服务正常。
2. 更新 Kibana 配置
由于 Elasticsearch 启用了 SSL,Kibana 需要使用 https:// 协议,并且可能需要提供证书路径。更新 kibana.yml 文件如下:
kibana.yml
elasticsearch.hosts: ["https://127.0.0.1:9200"]
elasticsearch.ssl.certificateAuthorities: ["D:/workspace/elasticsearch-9.0.3/config/certs/ca.crt"]
elasticsearch.ssl.verificationMode: none
- 将协议改为HTTPS
- 指定证书路径(根据实际情况调整,如果是下载的压缩包,相对路径应该和我都一样)
- 测试环境可设置
verificationMode: none(生产环境建议使用有效证书)
3. 重启服务
完成配置更新后,重启 Elasticsearch 和 Kibana 服务,确保配置生效。
总结
通过以上步骤,应该可以解决 Kibana 无法连接到 Elasticsearch 的问题。不然就查看 Elasticsearch 和 Kibana 的日志文件。