背景信息
在centos系统中使用单节点ES+kibana搭建EFK集群
故障信息

使用单节点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”
查看kibana状态信息$ systemctl status kibana.service -l● kibana.service - kibana_serviceLoaded: loaded (/etc/systemd/system/kibana.service; disabled; vendor preset: disabled)Active: failed (Result: exit-code) since 三 2021-06-23 19:23:39 CST; 14h agoProcess: 62118 ExecStart=/usr/local/kibana-7.13.2-linux-x86_64/bin/kibana --allow-root (code=exited, status=1/FAILURE)Main PID: 62118 (code=exited, status=1/FAILURE)......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.6月 23 19:23:39 d-zendao systemd[1]: kibana.service: main process exited, code=exited, status=1/FAILURE6月 23 19:23:39 d-zendao systemd[1]: Unit kibana.service entered failed state.6月 23 19:23:39 d-zendao systemd[1]: kibana.service failed.
从上面的信息大致可以看出来大概是kibana在ES中的索引未能初始化完毕或者老版本的索引仍然在ES的某个数据目录中保存,因此尝试删除老的kibana 索引信息来解决。
$ curl -X DELETE http://172.17.3.201:9200/.kibana*{"error":{"root_cause":[{"type":"master_not_discovered_exception","reason":null}],"type":"master_not_discovered_exception","reason":null},"status":503}
上面的信息又给我新的报错信息,索引无法删除,拿着新的报错信息“master_not_discovered_exception”搜索一番,
别人的建议是在ES配置文件中打开初始节点的配置。
$ vim elasticsearch.yml#修改为下面信息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 地址来引导启动集群
