Kibana 报 "Connection Failed" 错误怎么办?
Kibana 连接失败通常是连不上 Elasticsearch:检查 ES 是否存活、Kibana 配置的 elasticsearch.hosts 地址、认证凭据、TLS 证书与版本兼容性。本文给出按序排查清单。
Kibana 的 "Connection Failed" 几乎只有一个含义:它连不上 Elasticsearch。按"ES 活着吗 → 地址对不对 → 认证通不通 → TLS 配没配"四步排查即可。
排查四步
1. ES 是否存活
curl http://es-host:9200
不通则先解决 ES 本身的问题(看 ES 日志)。
2. Kibana 配置的地址
# kibana.yml
elasticsearch.hosts: ["http://es-host:9200"]
Docker 场景注意:localhost 指的是容器自己——要写 ES 容器的网络名或宿主机 IP。
3. 认证
ES 开了安全特性(8.x 默认开启)后必须配置:
elasticsearch.username: "kibana_system"
elasticsearch.password: "xxxx"
4. TLS
ES 8.x 默认 HTTPS:
elasticsearch.hosts: ["https://es-host:9200"]
elasticsearch.ssl.certificateAuthorities: ["/etc/kibana/ca.crt"]
测试期可 elasticsearch.ssl.verificationMode: none 跳过校验(勿上生产)。
版本兼容性
Kibana 大版本必须与 ES 大版本一致——Kibana 7 连 ES 8 会直接失败,这是最隐蔽的"配置都对却连不上"。
常见问题(FAQ)
Q:curl 能通但 Kibana 还是失败? 多半是认证或 TLS——curl 加同样的 -u 和证书参数再验证。
Q:日志里看到 "Unable to revive connection"? 网络层问题(防火墙、安全组、容器网络),先 telnet 端口确认连通性。
Q:K8s 里怎么配? hosts 写 ES Service 名(http://elasticsearch:9200),注意命名空间。