背景信息

在centos系统中使用单节点ES+kibana搭建EFK集群

故障信息

image.png
使用单节点ES+kibana 搭建EFK集群时,ES和kibana都启动成功,打开kibana时发现页面空白,且显示“Kibana server is not ready yet”,使用“systemctl status kibana.service -l”命令查看kibana状态时,显示“This version of Kibana (v7.13.2) is incompatible with the following Elasticsearch nodes in your cluster: v6.6.0”

解决过程

由错误信息可以明显看出ES的版本是6.6,而kibana版本是7.13.2,两个版本不匹配,故而解决方案就是平衡两个软件的版本,这里我选择重新安装ES 7.13.2,经过一番折腾,ES重装好了,相关的配置也修改完毕,启动完ES和重启kibana后发现,版本不匹配的错误信息没有了,但是页面仍然打不开,错误信息一样是“Kibana server is not ready yet”

  1. 查看kibana状态信息
  2. $ systemctl status kibana.service -l
  3. kibana.service - kibana_service
  4. Loaded: loaded (/etc/systemd/system/kibana.service; disabled; vendor preset: disabled)
  5. Active: failed (Result: exit-code) since 2021-06-23 19:23:39 CST; 14h ago
  6. Process: 62118 ExecStart=/usr/local/kibana-7.13.2-linux-x86_64/bin/kibana --allow-root (code=exited, status=1/FAILURE)
  7. Main PID: 62118 (code=exited, status=1/FAILURE)
  8. ......
  9. 6 23 19:23:39 d-zendao kibana[62118]: FATAL Error: Unable to complete saved object migrations for the [.kibana] index: Unable to complete the INIT step after 15 attempts, terminating.
  10. 6 23 19:23:39 d-zendao systemd[1]: kibana.service: main process exited, code=exited, status=1/FAILURE
  11. 6 23 19:23:39 d-zendao systemd[1]: Unit kibana.service entered failed state.
  12. 6 23 19:23:39 d-zendao systemd[1]: kibana.service failed.

从上面的信息大致可以看出来大概是kibana在ES中的索引未能初始化完毕或者老版本的索引仍然在ES的某个数据目录中保存,因此尝试删除老的kibana 索引信息来解决。

  1. $ curl -X DELETE http://172.17.3.201:9200/.kibana*
  2. {"error":{"root_cause":[{"type":"master_not_discovered_exception","reason":null}],"type":"master_not_discovered_exception","reason":null},"status":503}

上面的信息又给我新的报错信息,索引无法删除,拿着新的报错信息“master_not_discovered_exception”搜索一番,
别人的建议是在ES配置文件中打开初始节点的配置。

  1. $ vim elasticsearch.yml
  2. #修改为下面信息
  3. cluster.initial_master_nodes: ["node-1"]

重启ES后,再次执行删除kibana索引的操作
$ curl -X DELETE http://172.17.3.201:9200/.kibana*
{“acknowledged”:true}

由此可见,配置生效了,再次打开kibana页面,果然,久违的画面出现了。

总结

因此我们总结报错信息“Kibana server is not ready yet”有可能的原因可以尝试使用下面两种思路来解决:
第一点:KB、ES版本不一致
第二:ES配置文件中未设置符合主节点条件的节点的主机名或 IP 地址来引导启动集群