在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即可
|