无法设置 docker-compose 文件以启动版本 7.3.2 的 kibana
Cannot setup docker-compose file to launch kibana at version 7.3.2
我正在寻找 docker-compose 文件的工作版本,它在 docker for mac 7.3.2 上一起启动 kibana 和 elasticsearch。我遵循了关于 kibana 和 elasticsearch 的 7.3.2 文档的最新说明,下面我的 docker-compose.yml 文件是我从这两个文档中收集的内容的结合。 (关于 docker compose 配置,kibana 文档是最模糊的)。我也试过关注其他堆栈溢出文章(为旧版本编写),但它们似乎不适用于最新版本。我现在怀疑我缺少特定版本的东西。 7.3.1 也不能使用相同的配置。
我应该注意到文件的 elasticsearch 部分工作正常;我可以点击 http://localhost:9200 and I get a json response. However Kibana's url (http://localhost:5601) returns Kibana 服务器尚未准备好并出现此错误:
基巴纳 | {"type":"log","@timestamp":"2019-09-12T21:45:04Z","tags":["warning","elasticsearch","admin"],"pid":7,"message":"Unable to revive connection: http://elasticsearch:9200/"}
这是我迄今为止最好的尝试:
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.2
container_name: es01
environment:
- node.name=es01
- discovery.seed_hosts=es02
- cluster.initial_master_nodes=es01,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.3.2
container_name: es02
environment:
- node.name=es02
- discovery.seed_hosts=es01
- cluster.initial_master_nodes=es01,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:
container_name: kibana
image: docker.elastic.co/kibana/kibana:7.3.2
ports:
- 5601:5601
networks:
- esnet
environment:
SERVER_NAME: kibana.example.org
ELASTICSEARCH_URL: http://elasticsearch:9200
volumes:
esdata01:
driver: local
esdata02:
driver: local
networks:
esnet:
Docker 组合 automatically creates a private Docker network for you,其中 service:
块的名称是有效的主机名。
当你设置
ELASTICSEARCH_URL: http://elasticsearch:9200
None 你的容器被命名为 elasticsearch
所以主机名查找失败,但是如果你选择节点 es01
或 es02
它会工作
ELASTICSEARCH_URL: http://es01:9200
(请注意,您不需要明确地需要 networks:
定义才能工作,Compose 将为您创建一个名为 default
的网络。您也不需要明确地设置 container_name:
除非您打算尝试使用非 Compose 工具管理相同的容器。)
使用 ELASTICSEARCH_HOSTS: http://es01:9200
而不是 ELASTICSEARCH_URL
从 docker-compose.yml
文件更新环境。这是关于环境变量配置的 Elasticsearch 文档 https://www.elastic.co/guide/en/kibana/current/docker.html#environment-variable-config.
您还需要在 kibana 服务中添加 network 配置,例如
网络:
- esnet
并在 ELASTICSEARCH_HOST 中:http://es01:9200
注意 es01 是你的容器名称
我正在寻找 docker-compose 文件的工作版本,它在 docker for mac 7.3.2 上一起启动 kibana 和 elasticsearch。我遵循了关于 kibana 和 elasticsearch 的 7.3.2 文档的最新说明,下面我的 docker-compose.yml 文件是我从这两个文档中收集的内容的结合。 (关于 docker compose 配置,kibana 文档是最模糊的)。我也试过关注其他堆栈溢出文章(为旧版本编写),但它们似乎不适用于最新版本。我现在怀疑我缺少特定版本的东西。 7.3.1 也不能使用相同的配置。
我应该注意到文件的 elasticsearch 部分工作正常;我可以点击 http://localhost:9200 and I get a json response. However Kibana's url (http://localhost:5601) returns Kibana 服务器尚未准备好并出现此错误:
基巴纳 | {"type":"log","@timestamp":"2019-09-12T21:45:04Z","tags":["warning","elasticsearch","admin"],"pid":7,"message":"Unable to revive connection: http://elasticsearch:9200/"}
这是我迄今为止最好的尝试:
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.2
container_name: es01
environment:
- node.name=es01
- discovery.seed_hosts=es02
- cluster.initial_master_nodes=es01,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.3.2
container_name: es02
environment:
- node.name=es02
- discovery.seed_hosts=es01
- cluster.initial_master_nodes=es01,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:
container_name: kibana
image: docker.elastic.co/kibana/kibana:7.3.2
ports:
- 5601:5601
networks:
- esnet
environment:
SERVER_NAME: kibana.example.org
ELASTICSEARCH_URL: http://elasticsearch:9200
volumes:
esdata01:
driver: local
esdata02:
driver: local
networks:
esnet:
Docker 组合 automatically creates a private Docker network for you,其中 service:
块的名称是有效的主机名。
当你设置
ELASTICSEARCH_URL: http://elasticsearch:9200
None 你的容器被命名为 elasticsearch
所以主机名查找失败,但是如果你选择节点 es01
或 es02
它会工作
ELASTICSEARCH_URL: http://es01:9200
(请注意,您不需要明确地需要 networks:
定义才能工作,Compose 将为您创建一个名为 default
的网络。您也不需要明确地设置 container_name:
除非您打算尝试使用非 Compose 工具管理相同的容器。)
使用 ELASTICSEARCH_HOSTS: http://es01:9200
而不是 ELASTICSEARCH_URL
从 docker-compose.yml
文件更新环境。这是关于环境变量配置的 Elasticsearch 文档 https://www.elastic.co/guide/en/kibana/current/docker.html#environment-variable-config.
您还需要在 kibana 服务中添加 network 配置,例如
网络:
- esnet
并在 ELASTICSEARCH_HOST 中:http://es01:9200
注意 es01 是你的容器名称