docker-compose: zipkin не может подключиться кasticsearch - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь настроить zipkin ,asticsearch, prometheus и grafana с помощью docker-compose.yml. Когда я запускаю докеры, вижу в журнале:

dependencies_zipkin |19.09.30 14:37:09 ОШИБКА NetworkClient: Узел [172.28.0.2:9200] не выполнен (java.net.ConnectException: соединение отклонено (соединение отклонено));других узлов не осталось - прерывание ...

Я нахожусь на MacOS X с докером 2.1.0.3

содержимое моего docker-compose.yml это:

version: '3.7'
services:
  storage:
    image: openzipkin/zipkin-elasticsearch7
    container_name: elasticsearch
    ports:
      - "9200:9200"
    environment:
      - "xpack.security.enabled=false"
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    restart: unless-stopped
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    volumes:
      - $PWD/prometheus:/etc/prometheus/
      - /tmp/prometheus:/prometheus/data:rw
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--web.console.libraries=/usr/share/prometheus/console_libraries'
      - '--web.console.templates=/usr/share/prometheus/consoles'
    ports:
      - "9090:9090"
    restart: unless-stopped
  zipkin:
    image: openzipkin/zipkin
    container_name: zipkin
    depends_on: 
      - dependencies
      - storage
    environment: 
      - "STORAGE_TYPE=elasticsearch"
      - "ES_HOSTS=storage"
    ports:
      - "9411:9411"
    restart: unless-stopped
  grafana:
    image: grafana/grafana
    container_name: grafana
    ports:
      - "3000:3000"
    restart: unless-stopped
  dependencies:
    image: openzipkin/zipkin-dependencies
    container_name: dependencies_zipkin
    depends_on: 
      - storage
    environment:
      - "STORAGE_TYPE=elasticsearch"
      - "ES_HOSTS=storage"

Когда я подключаюсь к localhost: 9200, я вижу, чтоasticsearch работает нормально и на порте 9411 развернут zipkin, но у меня есть ошибка:

ОШИБКА: не удается загрузить службуимена: ошибка сервера (служба недоступна) (из-за сетевой ошибки

В журнале у меня есть эта информация:

105 ^ [[35mdependencies_zipkin | ^ [[0m 19/09/30 14:45:20 ОШИБКА NetworkClient: Узел [172.28.0.2:9200] не выполнен (java.net.ConnectException: соединение отклонено (соединение отклонено)), другие узлы не остаются - прерывание ...

и этот

^ [[31mzipkin | ^ [[0m java.lang.IllegalStateException: не удалось подключить ни одну из [Конечная точка {хранилище: 80, ipAddr = 172.28. 0.2, weight = 1000}]

Есть идеи?

ОБНОВЛЕНИЕ с использованием mysql работает нормально, поэтому проблема на уровнеупругого поиска. Я также пытался использовать

"STORAGE_PORT_9200_TCP_ADDR = 127.0.0.1"

, но проблема все еще возникает.

ОБНОВЛЕНИЕ Как уже упоминалось, решение, предоставленноеБрайан, я должен использовать:

ES_HOSTS = http://storage:9300

ключ на порту, я использовал порт 9200

Ошибка исчезает между zipkin и es, но все еще возникает между es и zipkin-зависимостями.

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Наконец, у меня есть этот файл:

version: '3.7'

services:
  storage:
    image: openzipkin/zipkin-elasticsearch7
    container_name: elasticsearch
    ports:
      - 9200:9200

  zipkin:
    image: openzipkin/zipkin
    container_name: zipkin
    environment: 
      - STORAGE_TYPE=elasticsearch
      - "ES_HOSTS=elasticsearch:9300"
    ports:
      - 9411:9411
    depends_on: 
      - storage

  dependencies:
    image: openzipkin/zipkin-dependencies
    container_name: dependencies
    entrypoint: crond -f
  depends_on:
    - storage
  environment:
    - STORAGE_TYPE=elasticsearch
    - "ES_HOSTS=elasticsearch:9300"
    - "ES_NODES_WAN_ONLY=true"

prometheus:
  image: prom/prometheus:latest
  container_name: prometheus
  volumes:
    - $PWD/prometheus:/etc/prometheus/
    - /tmp/prometheus:/prometheus/data:rw
  command:
    - '--config.file=/etc/prometheus/prometheus.yml'
    - '--storage.tsdb.path=/prometheus'
    - '--web.console.libraries=/usr/share/prometheus/console_libraries'
    - '--web.console.templates=/usr/share/prometheus/consoles'
  ports:
    - "9090:9090"

grafana:
  image: grafana/grafana
  container_name: grafana
  depends_on:
    - prometheus
  ports:
    - "3000:3000"

Основными отличиями является использование

"ES_HOSTS =asticsearch: 9300"

вместоиз

"ES_HOSTS = хранилище: 9300"

и в конфигурации зависимостей я добавляю точку входа в зависимости:

точка входа: crond-f Это действительно ключ, чтобы не было исключения при запуске docker-compose.

Чтобы решить эту проблему, я проверяю этот проект: https://github.com/openzipkin/docker-zipkin

Остается вопрос: зачем мне использовать точку входа: crond -f

0 голосов
/ 30 сентября 2019

Проблема заключается в вашей переменной ES_HOSTS, из документов здесь :

  • ES_HOSTS: разделенный запятыми список базовых URL-адресов эластичного поиска для подключениянапримерhttp://host:9200. По умолчанию "http://localhost:9200".

Так что вам понадобится: ES_HOSTS=http://storage:9200

...