Kibana Server Not Ready: A Diagnostic Guide for Elasticsearch Connectivity
A step-by-step diagnostic guide for resolving Kibana's 'server is not ready yet' status by checking Elasticsearch connectivity, authentication, cluster health, and configuration.
26 Apr 2026, 17:05 UTC

Recognizable Condition
Users see "Kibana server is not ready yet" in the browser, or Kibana returns HTTP 503. The Kibana process may appear running, but it never completes initialization. Logs often show repeated connection attempts to Elasticsearch. The fastest path is to isolate whether Kibana cannot reach Elasticsearch, cannot authenticate, or is blocked by cluster health.
Cause and Diagnostic Table
| Observed symptom | Likely cause | Primary diagnostic |
|---|---|---|
| Log entry "Unable to connect to Elasticsearch" | Network unreachable, firewall block, or wrong elasticsearch.hosts | Curl Elasticsearch from the Kibana host |
| Log entry "Authentication failed" or HTTP 401 | Incorrect elasticsearch.username/password or expired token | Repeat curl with the same credentials |
Cluster health is red, or .kibana index missing | Elasticsearch cannot serve the Kibana system index | Cluster Health and _cat/indices APIs |
| Process restarts or log shows out-of-memory during startup | Insufficient Kibana heap memory | Inspect Kibana logs and JVM options |
Ordered Checks
-
Test network reachability from the Kibana host. Run the following on the machine where Kibana is installed. Replace the placeholders with your actual values.
curl -sS -u '<elasticsearch_username>:<elasticsearch_password>' http://<ELASTICSEARCH_HOST>:9200/_cluster/healthPermissions: any account with cluster monitor privileges, or the configured Kibana service account. Expected check: a JSON response containing
status(green, yellow, or red). A timeout, connection refused, or DNS failure points to network or host configuration. Risk: read-only. -
Verify
elasticsearch.hostsinkibana.yml. Open the configuration file, typically at/etc/kibana/kibana.ymlor<KIBANA_HOME>/config/kibana.yml. Confirm the entry matches the reachable endpoint:elasticsearch.hosts: ['http://<ELASTICSEARCH_HOST>:9200']If you edit this file, a full process restart is required. Use
systemctl restart kibanaor the equivalent service command for your installation. Risk: brief downtime. -
Validate authentication credentials. If the curl in step 1 returns HTTP 401 or a security exception, the credentials in
kibana.ymlare wrong or expired. Checkelasticsearch.usernameandelasticsearch.password. If you use an API key or service token, confirm it has not been invalidated. -
Check Elasticsearch cluster health and the
.kibanaindex. From any host with access to Elasticsearch, run:curl -sS -u '<elasticsearch_username>:<elasticsearch_password>' http://<ELASTICSEARCH_HOST>:9200/_cat/indices/.kibana?v&h=index,health,status,docs.countIf the index is missing or the cluster status is red, Kibana cannot initialize its system index. Risk: read-only.
-
Search Kibana logs for specific error strings. View logs via
journalctl -u kibanaor the log file at/var/log/kibana/kibana.log. Look for "Unable to connect to Elasticsearch", "Authentication failed", or out-of-memory errors. If you see OOM messages, inspect<KIBANA_HOME>/config/jvm.optionsand consider raising-Xmxand-Xmsbefore restarting. -
Confirm version parity. Kibana and Elasticsearch must share the same major version. Check the installed versions using your package manager or by querying the Elasticsearch root endpoint. A mismatch commonly causes initialization failures.
Fixes Tied to Findings
- Network or host failure: Open the required port (default 9200) between the Kibana host and Elasticsearch. If TLS is enabled, ensure
elasticsearch.ssl.certificateAuthoritiesinkibana.ymlpoints to the correct CA certificate, then restart Kibana. - Authentication failure: Correct the credentials or service token in
kibana.ymland restart. If the account was locked or the token expired, re-create it in Elasticsearch first. - Red cluster or missing
.kibana: Recover the Elasticsearch cluster or restore the.kibanaindex from a snapshot. Do not modify the.kibanaindex directly via API without a full snapshot backup. - Insufficient memory: Increase the JVM heap in
jvm.options(for example, set-Xmx2gif the node has capacity) and restart Kibana. - Version mismatch: Align Kibana and Elasticsearch to the same major version. This is a planned change, not an in-place tweak.
Escalation Criteria
Escalate to platform or Elasticsearch administrators when:
- Network, credentials, and configuration are confirmed correct, but Kibana still fails to initialize.
- The
.kibanaindex is red and snapshot restoration does not resolve it. - Out-of-memory conditions persist after a heap increase.
- A major version mismatch requires a coordinated cluster upgrade.
Limitations and Practical Verification
This guide covers common package and tarball installations. Container and orchestrated deployments may use different log paths, service names, and restart commands. Because behavior can vary across Kibana and Elasticsearch releases, verify against your specific versions.
To check the result after any fix, re-run the curl health command from the Kibana host, then tail the Kibana logs for a successful connection message. Refresh the browser; the "Kibana server is not ready yet" banner should clear once initialization completes.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.