docker image的Elasticsearch服务未连接到webapp或kibana
我有一个docker-compose.yml文件,它声明了webapp、postgres数据库、一个两节点elasticsearch和一个kibana容器docker image的Elasticsearch服务未连接到webapp或kibana,docker,
elasticsearch,elixir,ecto,Docker,
elasticsearch,Elixir,Ecto,我有一个docker-compose.yml文件,它声明了webapp、postgres数据库、一个两节点elasticsearch和一个kibana容器 version: '3' services: webapp: build: context: ../../../ dockerfile: config/docker/dev/Dockerfile-dev container_name: MyWebApp-dev image: 'localho
version: '3'
services:
webapp:
build:
context: ../../../
dockerfile: config/docker/dev/Dockerfile-dev
container_name: MyWebApp-dev
image: 'localhost:443/123'
ports:
- "4000:4000"
- "3000:3000"
depends_on:
- db
- elasticsearch
- kibana
links:
- db
- elasticsearch
- kibana
db:
image: postgres:10
container_name: db
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=password
- POSTGRES_DB=mine_dev
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.0.1
container_name: elasticsearch
environment:
- node.name=elasticsearch
- discovery.seed_hosts=es02
- cluster.initial_master_nodes=elasticsearch,es02
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata01:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
networks:
- esnet
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.0.1
environment:
- node.name=es02
- discovery.seed_hosts=elasticsearch
- cluster.initial_master_nodes=elasticsearch,es02
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata02:/usr/share/elasticsearch/data
networks:
- esnet
kibana:
image: docker.elastic.co/kibana/kibana:7.0.1
ports:
- "5601:5601"
container_name: kibana
volumes:
esdata01:
driver: local
esdata02:
driver: local
networks:
esnet:
它们都成功构建,但kibana无法与elasticsearch建立实时连接
kibana | {"type":"log","@timestamp":"2019-05-08T23:36:13Z","tags":["status","plugin:searchprofiler@7.0.1","error"],"pid":1,"state":"red","message":"Status changed from red to red - No Living connections","prevState":"red","prevMsg":"Unable to connect to Elasticsearch."}
kibana | {"type":"log","@timestamp":"2019-05-09T00:02:46Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"No living connections"}
而且“产品”索引不能使用elixir/Exto mix创建
MyWebApp-dev | (elixir) lib/calendar/datetime.ex:537: DateTime.to_unix/2
MyWebApp-dev | (elasticsearch) lib/elasticsearch/indexing/index.ex:287: Elasticsearch.Index.build_name/1
MyWebApp-dev | (elasticsearch) lib/elasticsearch/indexing/index.ex:31: Elasticsearch.Index.hot_swap/2
MyWebApp-dev | (elasticsearch) lib/mix/elasticsearch.build.ex:86: Mix.Tasks.Elasticsearch.Build.build/3
MyWebApp-dev |
MyWebApp-dev | ** (Mix) Index products could not be created.
MyWebApp-dev |
MyWebApp-dev | %HTTPoison.Error{id: nil, reason: :econnrefused}
一直以来,我都可以连接到elasticsearch服务器:
A68MD-PRO:~# curl http://localhost:9200/_cat/health
1557359160 23:46:00 docker-cluster green 2 2 2 1 0 0 0 0 - 100.0%
即使在容器内部,卷曲也会产生:
A68MD-PRO:~# docker exec elasticsearch curl http://elasticsearch:9200/_cat/health
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 66 100 66 0 0 6969 0 --:--:-- --:--:-- --:--:-- 7333
1557373042 03:37:22 docker-cluster green 2 2 2 1 0 0 0 0 - 100.0%
有人知道这个问题是关于什么以及如何解决它吗
更新:如果我这样做
docker exec -it MyWebApp-dev curl -XPUT 'http://elasticsch:9200/something/example/1' -d ' { "type": "example", "quantity": 2 }' -H'Content-Type: application/json'
它工作得非常好。因此,我认为这一定与httpoison有关。elaticsearch容器与kibana容器位于不同的docker网络上 请验证此网络配置:
networks:
- esnet
为弹性节点删除它,或为kibana应用完全相同的网络配置。elaticsearch容器与kibana容器位于不同的docker网络上 请验证此网络配置:
networks:
- esnet
为弹性节点删除它,或为kibana应用完全相同的网络配置。能否使用
network.host:0.0.0
?作为环境变量更新kibana设置?标准的是:server.name kibana server.host“0”elasticsearch.hosts xpack.monitoring.ui.container.elasticsearch.enabled true刚刚将server.host更改为“0.0.0.0”,但没有效果。坦率地说,无法创建索引的问题远比kibana的问题重要。我之所以提到它,是因为我认为它们是相关的。能否请您使用network.host:0.0.0
?作为环境变量更新kibana设置?标准的是:server.name kibana server.host“0”elasticsearch.hosts xpack.monitoring.ui.container.elasticsearch.enabled true刚刚将server.host更改为“0.0.0.0”,但没有效果。坦率地说,无法创建索引的问题远比kibana的问题重要。我之所以提到它,是因为我认为它们是相关的。这是否也适用于webapp容器(同样,这是本文中更重要的问题)?在我看来不是。只要组件是可访问的,elasticstack不需要与应用程序位于同一网络上。在这种情况下,通过webapp的“links”配置,这是否也适用于webapp容器(同样,这是本文中更重要的问题)?在我看来,它不适用。只要组件是可访问的,elasticstack不需要与应用程序位于同一网络上。在这种情况下,通过webapp的“链接”配置