Kibana 报 "Connection Failed" 错误怎么办?
Kibana 连接失败通常是连不上 Elasticsearch:检查 ES 是否存活、Kibana 配置的 elasticsearch.hosts 地址、认证凭据、TLS 证书与版本兼容性。本文给出按序排查清单。
Kibana 的 "Connection Failed" 可能发生在浏览器到 Kibana、Kibana 到 Elasticsearch 或具体功能服务之间,先结合界面与服务日志确认是哪一段连接失败。按"ES 活着吗 → 地址对不对 → 认证通不通 → TLS 配没配"四步排查即可。
排查四步
1. ES 是否存活
curl http://es-host:9200
示例为无 TLS 本地端点;实际需匹配协议、CA 和认证。401/403 说明已收到 HTTP 响应,不等于网络不通;连接失败也可能是 DNS/路由/代理。
2. Kibana 配置的地址
# kibana.yml
elasticsearch.hosts: ["http://es-host:9200"]
Docker 场景注意:localhost 指的是容器自己——要写 ES 容器的网络名或宿主机 IP。
3. 认证
ES 开了安全特性(8.x 默认开启)后必须配置:
elasticsearch.username: "kibana_system"
# 密码通过 kibana-keystore add elasticsearch.password 输入,不放此文件
4. TLS
ES 8.x 首次启动成功执行安全自动配置时会启用 HTTPS;已有或自定义集群应核对实际配置:
elasticsearch.hosts: ["https://es-host:9200"]
elasticsearch.ssl.certificateAuthorities: ["/etc/kibana/ca.crt"]
核对证书 SAN、有效期与完整可信 CA,保留证书验证,不用 none 代替修复。
版本兼容性
需按 Elastic 支持矩阵和升级流程匹配完整版本;仅大版本相同不保证任意 minor/patch 组合兼容。
常见问题(FAQ)
Q:curl 能通但 Kibana 还是失败? 先在 Kibana 相同网络环境核对实际地址、认证和 TLS——curl 加同样的 -u 和证书参数再验证。
Q:日志里看到 "Unable to revive connection"? 这是连接恢复失败的概括,需看相邻异常区分网络、TLS、认证和服务状态;TCP端口可连不证明应用通信正常。
Q:K8s 里怎么配? hosts 写 ES Service 名(http://elasticsearch:9200),注意命名空间。