遇到“Kibana server is not ready yet”错误通常表示Kibana无法连接到Elasticsearch。以下是一些常见原因及其解决方案:
1.常见原因
1.1.Elasticsearch未运行:
确保Elasticsearch服务已启动并正常运行。您可以通过访问 http://localhost:9200
来检查Elasticsearch的状态。
1.2.网络连接问题:
如果Kibana和Elasticsearch在不同的Docker容器中,确保它们在同一网络中,并使用容器名称而不是localhost
进行连接。
1.3.配置错误:
检查Kibana的配置文件(kibana.yml
)中的elasticsearch.hosts
设置,确保它指向正确的Elasticsearch URL。
elasticsearch.hosts: ["http://elasticsearch:9200"]
2.解决方案
2.1. 检查Elasticsearch健康状态
使用以下命令检查Elasticsearch集群的健康状态:
bashcurl -X GET "localhost:9200/_cluster/health?pretty"
如果状态不是“green”,则需要解决Elasticsearch中的问题。
2.2. 使用Docker网络
如果您在Docker中运行Kibana和Elasticsearch,请确保它们在同一网络中。例如,创建一个Docker网络并在该网络上启动容器:
2.2.1.创建Docker网络
docker network create es-net
2.2.2.docker部署es
docker run -d \--name elasticsearch \--network es-net \-e "discovery.type=single-node" \-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \-p 9200:9200 \-p 9300:9300 \elasticsearch:7.14.0
2.2.3.运行Kibana容器
docker run -d \--name kibana \--network es-net \-p 5601:5601 \-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \kibana:7.14.0