程序员的收藏

处理docker中安装的ElasticSearch和Kibana

2020-06-23  本文已影响0人  xywh

在同一台电脑的docker中同时安装了ElasticSearch和Kibana,进行关联时出现异常
访问kibana时页面192.168.1.150:5601时显示内容为

Kibana server is not ready yet

这个过程中我查了不少的帖子,说的基本都是以下几个

第一点:KB、ES版本不一致(网上大部分都是这么说的)
解决方法:把KB和ES版本调整为统一版本
第二点:kibana.yml中配置有问题(通过查看日志,发现了Error: No Living connections的问题)
解决方法:将配置文件kibana.yml中的elasticsearch.url改为正确的链接,默认为: http://elasticsearch:9200
改为http://自己的IP地址:9200
第三点:浏览器没有缓过来
解决方法:刷新几次浏览器。

可能有人解决成功吧..反正我弄了没成
我确认了我的ElasticSearch是正常启动的
访问我的安装ElasticSearch地址http://192.168.1.150:9200/是有信息反馈的

我安装的版本号kibana和ElasticSearch也是没问题的.
后来我换了台机器分别安装kibana和ElasticSearch,这个时候就发现这个问题没有了..
然后考虑预估是安装到同一台机器上相互访问可能有问题.
注意:

这里同一台机器安装kibana和ElasticSearch其实有另一个处理方案就是做容器连接.

我没用连接的方式进行操作,而是用了另一条路子,在服务器中使用容器自己的ip进行关联实现的连接具体过程如下

查看Kibana日志
日志内显示

{"type":"log","@timestamp":"2020-06-23T05:15:08Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"No living connections"}
{"type":"log","@timestamp":"2020-06-23T05:15:12Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"Unable to revive connection: http://192.168.1.150:9200/"}

具体原因是在docker中我没有做直接连接两个容器,使得进行访问时无法进行交互
处理方法是,在docker中查找到两个容器的对应ip地址,将ElasticSearch的ip地址维护到kibana的配置文件内.
docker获取容器和对应ip的方法

docker inspect --format='{{.Name}} - {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

修改kibana的配置文件kibana.yml
kibana.yml配置文件的位置

/usr/share/kibana/config/

修改方式最好是在本地修改然后覆盖到容器中,比较容易操作
命令

docker cp kibana.yml kibana:/usr/share/kibana/config/kibana.yml 

将其中的ElasticSearch地址进行修改

server.name: kibana
server.host: "0.0.0.0"
#elasticsearch.hosts: [ "http://192.168.1.150:9200"]
elasticsearch.hosts: [ "http://172.17.0.4:9200"]
logging.dest : /usr/share/kibana/log/kibana.log

修改后重启kibana,就恢复正常可以访问kibana了


image.png
上一篇 下一篇

猜你喜欢

热点阅读