Kibana не может подключиться к Elasticsearch в докере - PullRequest
0 голосов
/ 11 июня 2019

Я следую https://www.elastic.co/guide/en/elasticsearch/reference/6.5/docker.html а также https://www.elastic.co/guide/en/kibana/6.5/docker.html Но, похоже, с кибаной это не работает, ES работает нормально.

Я попытался запустить kibana в одиночку, но, наконец, я добавил его в один файл docker-compose.

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4
    container_name: elasticsearch
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - esnet
  elasticsearch2:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.5.4
    container_name: elasticsearch2
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=elasticsearch"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata2:/usr/share/elasticsearch/data
    networks:
      - esnet

  kibana:
    image: docker.elastic.co/kibana/kibana:6.5.4
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml  
    ports:
    - 5601:5601    

volumes:
  esdata1:
    driver: local
  esdata2:
    driver: local

networks:
  esnet:

Kibana.yml - это:

server.host: "0.0.0.0"
server.name: "kibana"
elasticsearch.url: http://elasticsearch:9200

Я получаю следующую ошибку:

kibana_1 | { "Типа": "журнал", "@ метки времени": "2019-06-11T08: 55: 30z", "метки": [ "предупреждение", "elasticsearch", "администратор"], "PID": 1, "message": "Невозможно восстановить соединение: http://elasticsearch:9200/"}

1 Ответ

4 голосов
/ 11 июня 2019

Контейнер kibana не находится в той же сети, что и два контейнера elasticsearch: он не имеет блока networks: и поэтому находится в автоматически созданной сети default, но два * Контейнеры 1005 * находятся в явно объявленной сети esnet. Поскольку они не находятся в одной сети, межконтейнерная DNS не работает.

Я бы предложил просто удалить все блоки networks: и использовать сеть по умолчанию, созданную Docker Compose. Если вам нужна сеть с явно заданным именем, скопируйте те же строки networks: [esnet] в служебный блок kibana:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...