在docker下安装elasticsearch、kibana,elasticsearch成功运行并且访问,但是kibana会出现以下报错,大概观察是连接不上

{"type":"log","@timestamp":"2021-08-23T08:49:57Z","tags":["warning","elasticsearch","admin"],"pid":7,"message":"Unable to revive connection: http://elasticsearch:9200/"}
{"type":"log","@timestamp":"2021-08-23T08:49:57Z","tags":["warning","elasticsearch","admin"],"pid":7,"message":"No living connections"}
Could not create APM Agent configuration: No Living connections

原因:

在给kibana绑定elasticsearch的ip时,这个ip并不是linux的ip,而是docker的容器对外暴露的ip

于是导致连接不上

特别说明:如果在创建运行ElasticSearch容器时没有指定ip,那么ip可能是不停变化的,以至于这次可以访问了但是下一次就不能访问,所以在创建的时候一定要指定ip:elasticsearch安装

解决方案

一、找到docker容器对外暴露的ip

docker inspect elasticsearch | grep IPAddress

文中的elasticsearch是容器名

执行完后可以得到一个ip  这个ip就用于给kibana绑定elasticsearch

方式一 

 在创建容器的时候绑定

docker run --name c_kibana -e ELASTICSEARCH_URL=http://172.17.0.4:9200 -p 5601:5601 -d kibana:7.4.2

 方式二

在配置文件中绑定

进入容器

docker exec -it 容器名称 /bin/bash

进入 根目录下的config目录,修改kibana,yml文件

 

在elasticsearch.hosts 这一行将ip修改成查询到的暴露ip即可

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐