Kibana server is not ready yet

I install Elasticsearch and Kibana following the Official document: Install Kibana with Docker | Kibana Guide [8.9] | Elastic

the command is:

docker pull docker.elastic.co/elasticsearch/elasticsearch:8.9.1
docker pull docker.elastic.co/kibana/kibana:8.9.1
docker network create elastic

docker run -it \
    --name es89101 \
    --net elastic \
    --restart=always \
    -v /home/username/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    -v /home/username/elasticsearch/data:/usr/share/elasticsearch/data \
    -p 9200:9200 \
    -p 9300:9300 \
    docker.elastic.co/elasticsearch/elasticsearch:8.9.1

docker run -it \
    --name kib89101 \
    --net elastic \
    --restart=always \
    -p 5601:5601 \
    docker.elastic.co/kibana/kibana:8.9.1

every thing is OK:

When Kibana is starting, I paste the token, but it "Completing setup" for a long time,
until i refreshed my browser.

Then I input elastic's password, entered kibana.

That's looks ok

But when I restarted my server, es89101 and kib89101 is restarted correctly, I can access 9200 port, but when i enter kibana, 5601 port, browser print "Kibana server is not ready yet"

I checked Kibana's log whith command:

docker logs kib89101

it prints

[2023-08-22T19:00:51.807+00:00][ERROR][elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. connect ECONNREFUSED 172.18.0.2:9200

I don't know why

I've tried several times and got the same result.

my docker version is

[root@cs8 ~]# docker version
Client: Docker Engine - Community
 Version:           24.0.1
 API version:       1.43
 Go version:        go1.20.4
 Git commit:        6802122
 Built:             Fri May 19 18:04:11 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.1
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.4
  Git commit:       463850e
  Built:            Fri May 19 18:03:12 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
[root@cs8 ~]# 

Heya @seamanw!

After completing the initial Interactive Setup, the connection info for Elasticsearch is generally written to the kibana.yml file for future connections. This includes a value for elasticsearch.hosts.

When you restarted the Elasticsearch server, Docker may have assigned a slightly different IP address, e.g. In the logs its looking for ES at 172.18.0.2, but the IP might now be 172.18.0.3.

Please start ES, note the IP address, paste that value into the appropriate spot (there may be additional places this value is required) in the kibana.yml and then start Kibana.

Let's give that a try!

I have tried the method you gave, but a new error occurred

I checked ES's new ip, and modified elasticsearch.hosts value in config/kibana.yml , and restarted kibana.

browser still shows “Kibana server is not ready yet.”

Kibana's log :

docker logs kib89101
......
[2023-08-23T18:09:19.330+00:00][ERROR][elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. Hostname/IP does not match certificate's altnames: IP: 172.18.0.3 is not in the cert's list: 172.18.0.2, 127.0.0.1
......

Looks like an authentication error.

But even if this way solves this problem, do I have to modify the configuration file every time I restart? I don't think this way is very elegant, so is there a more perfect solution?

Thanks

Sorry that didn't work. I'm not a Docker expert, but I have some more options for us to try.

Let's try adding the container alias for your Elasticsearch (looks like it was es89101) to the elasticsearch.hosts in the kibana.yml.

It should be something like:
elasticsearch.hosts: ['https://es89101:9200']

Please give that a try first.

If that doesn't work, we will try to override with Docker Env Vars

Thank you for reply.

I have tried to set elasticsearch.hosts to https://es89101:9200, but it looks not work,too.

docker logs kib89101
......
[2023-08-24T06:57:42.737+00:00][ERROR][elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. Hostname/IP does not match certificate's altnames: Host: es89101. is not in the cert's altnames: DNS:localhost, IP Address:172.18.0.2, IP Address:127.0.0.1, DNS:1b58252e4c7e
......

Looks like another authentication error.

I'm not a Docker expert too. haha :joy:

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.