elasticsearch,docker-compose,kibana,Docker,elasticsearch,Docker Compose,Kibana" /> elasticsearch,docker-compose,kibana,Docker,elasticsearch,Docker Compose,Kibana" />

无法设置docker compose文件以在7.3.2版上启动kibana

无法设置docker compose文件以在7.3.2版上启动kibana,docker,elasticsearch,docker-compose,kibana,Docker,elasticsearch,Docker Compose,Kibana,我正在寻找docker compose文件的工作版本,该文件在docker for mac 7.3.2版上同时启动kibana和elasticsearch。我遵循了kibana和elasticsearch的7.3.2文档的最新说明,下面的docker-compose.yml文件是我从这两个文档中收集的内容的结合。(关于docker compose配置,kibana文档是最模糊的)。我还尝试了以下其他堆栈溢出文章(为旧版本编写),但它们似乎不适用于最新版本。我现在怀疑我遗漏了一些特定于版本的内容。

我正在寻找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部分工作良好;我可以点击并得到一个json响应。但是,Kibana的url()返回Kibana服务器尚未就绪,出现以下错误:

kibana |{“type”:“log”、“@timestamp”:“2019-09-12T21:45:04Z”、“tags”:[“warning”、“elasticsearch”、“admin”]、“pid”:7、“message”:“无法恢复连接:”}

这是我迄今为止最好的尝试:

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 Compose,其中,
服务:
块的名称是有效的主机名

当你设定

ELASTICSEARCH_URL: http://elasticsearch:9200
没有一个容器被命名为
elasticsearch
,因此主机名查找失败,但是如果选择节点
es01
es02
,它将工作

ELASTICSEARCH_URL: http://es01:9200
(请注意,您不需要明确的
网络:
定义,为此,Compose将为您创建一个名为
default
的网络。您也不需要明确设置
容器名称:
,除非您计划尝试使用非Compose工具管理相同的容器。)

Docker Compose,其中,
服务:
块的名称是有效的主机名

当你设定

ELASTICSEARCH_URL: http://elasticsearch:9200
没有一个容器被命名为
elasticsearch
,因此主机名查找失败,但是如果选择节点
es01
es02
,它将工作

ELASTICSEARCH_URL: http://es01:9200

(请注意,您不需要明确的
网络:
定义。要使其正常工作,Compose将为您创建一个名为
default
的网络。您也不需要明确设置
容器名称:
,除非您计划尝试使用非Compose工具管理相同的容器。)

使用
ELASTICSEARCH\u主机:http://es01:9200
而不是
ELASTICSEARCH\u URL
docker compose.yml
文件更新环境。以下是有关环境变量配置的Elasticsearch文档。

使用Elasticsearch\u主机:http://es01:9200而不是
ELASTICSEARCH\u URL
docker compose.yml
文件更新环境。这是关于环境变量配置的Elasticsearch文档。

您需要在kibana服务中添加网络配置,如
网络:
-esnet

在ELASTICSEARCH_主机中:


注意es01是您的容器名称

您需要在kibana服务中添加网络配置,如
网络:
-esnet

在ELASTICSEARCH_主机中:


注意es01是您的容器名

您的环境中没有主机名elasticsearch。不过,服务名称
es01
es02
都可用作主机名。谢谢David。我刚才还在进一步试验,用ELASTICSEARCH_主机和指定的es01关闭了ELASTICSEARCH_URL,它成功了!从URL切换到主机也是必要的吗?@DavidMaze Id如果你想把你的评论作为答案发布,我很乐意接受。如果您知道,最好澄清ELASTICSEARCH\u URL或ELASTICSEARCH\u主机是否也是正确的设置。我使用了ELASTICSEARCH\u主机,这似乎有效。您的环境中没有主机名
ELASTICSEARCH
。不过,服务名称
es01
es02
都可用作主机名。谢谢David。我刚才还在进一步试验,用ELASTICSEARCH_主机和指定的es01关闭了ELASTICSEARCH_URL,它成功了!从URL切换到主机也是必要的吗?@DavidMaze Id如果你想把你的评论作为答案发布,我很乐意接受。如果您知道,最好澄清ELASTICSEARCH\u URL或ELASTICSEARCH\u主机是否也是正确的设置。我和ELASTICSEARCH_主机一起去的,这似乎很有效。