Elasticsearch Docker Составить не запускается - как? - PullRequest
0 голосов
/ 26 апреля 2018

Я несколько дней пытался понять проблему, возникающую при использовании Docker, по сравнению с использованием Docker-Compose для запуска Elasticsearch Platinum + Kibana. ES Неплатиновые изображения работают нормально. Образы ES Platinum, с другой стороны, работают, только если я выполняю команды Docker по приглашению. Попытка сделать то же самое с помощью docker-compose не удалась.

Когда я запускаю этот код ниже из командной строки Docker, все работает нормально. Оба приложения ES Platinum и Kibana работают нормально и работают нормально.

docker run -p 32669:9200 -p 32670:9300 -e "discovery.type=single-node" --network=elastic -e ELASTICSEARCH_USERNAME=elastic -e ELASTIC_PASSWORD=MagicWord --name elasticsearch docker.elastic.co/elasticsearch/elasticsearch-platinum:6.2.4

docker run --network=elastic --link elasticsearch:ELK -e ELASTICSEARCH_USER="elastic" -e ELASTICSEARCH_PASSWORD="MagicWord" -p 5601:5601 --name kibana docker.elastic.co/kibana/kibana:6.2.4

Код выше работает нормально.

Однако, если я попробую то же самое с помощью docker-compose с приведенным ниже кодом, это не сработает. Я попытался изменить код ниже несколько раз, добавив функции или параметры, и это не работает, несмотря ни на что

    version: '3.4'

services:
  dockerexample2linux:
    image: ${DOCKER_REGISTRY}dockerexample2linux
    build:
      context: .
      dockerfile: DockerExample2Linux/Dockerfile

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-platinum:6.2.4
    container_name: elasticsearch
    environment:
      - "discovery.type=single-node"
      - ELASTICSEARCH_USERNAME=elastic
      - ELASTICSEARCH_PASSWORD=MagicWord
      - xpack.security.enabled=true
    ports:
      - 32769:9200
      - 32770:9300
    networks:
      - elastic

  kibana:
    image: docker.elastic.co/kibana/kibana:6.2.4
    container_name: kibana
    environment:
      - ELASTICSEARCH_URL="http://elasticsearch:9200"
      - ELASTICSEARCH_USERNAME=elastic
      - ELASTICSEARCH_PASSWORD=MagicWord
      - xpack.security.enabled=true
    links:
      - elasticsearch
    ports: 
      - 5601:5601
    networks: 
      - elastic
    depends_on: 
      - elasticsearch  

networks:
  elastic:
      driver: bridge

Когда я просматриваю логи, похоже, что это простая проблема аутентификации в ES. В некоторых попытках журнал для ES будет отображать

[2018-04-26T17:30:25,936][INFO ][o.e.p.PluginsService     ] [t7dKNK-] loaded plugin [x-pack-upgrade]
[2018-04-26T17:30:25,936][INFO ][o.e.p.PluginsService     ] [t7dKNK-] loaded plugin [x-pack-watcher]
[2018-04-26T17:30:30,340][INFO ][o.e.x.m.j.p.l.CppLogMessageHandler] [controller/127] [Main.cc@128] controller (64 bit): Version 6.2.4 (Build 524e7fe231abc1) Copyright (c) 2018 Elasticsearch BV
[2018-04-26T17:30:33,012][INFO ][o.e.d.DiscoveryModule    ] [t7dKNK-] using discovery type [single-node]
[2018-04-26T17:30:34,759][INFO ][o.e.n.Node               ] initialized
[2018-04-26T17:30:34,759][INFO ][o.e.n.Node               ] [t7dKNK-] starting ...
[2018-04-26T17:30:35,047][INFO ][o.e.t.TransportService   ] [t7dKNK-] publish_address {172.22.0.2:9300}, bound_addresses {0.0.0.0:9300}
[2018-04-26T17:30:35,244][INFO ][o.e.x.s.t.n.SecurityNetty4HttpServerTransport] [t7dKNK-] publish_address {172.22.0.2:9200}, bound_addresses {0.0.0.0:9200}
[2018-04-26T17:30:35,244][INFO ][o.e.n.Node               ] [t7dKNK-] started
[2018-04-26T17:30:35,504][INFO ][o.e.g.GatewayService     ] [t7dKNK-] recovered [0] indices into cluster_state
[2018-04-26T17:30:36,396][INFO ][o.e.l.LicenseService     ] [t7dKNK-] license [7f1ed0cc-554a-4f52-9b21-464168696d88] mode [trial] - valid
[2018-04-26T17:30:45,002][INFO ][o.e.c.m.MetaDataCreateIndexService] [t7dKNK-] [.monitoring-es-6-2018.04.26] creating index, cause [auto(bulk api)], templates [.monitoring-es], shards [1]/[0], mappings [doc]
[2018-04-26T17:30:45,330][INFO ][o.e.c.m.MetaDataCreateIndexService] [t7dKNK-] [.watches] creating index, cause [auto(bulk api)], templates [.watches], shards [1]/[0], mappings [doc]
[2018-04-26T17:30:45,511][INFO ][o.e.c.r.a.AllocationService] [t7dKNK-] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.monitoring-es-6-2018.04.26][0], [.watches][0]] ...]).
[2018-04-26T17:30:45,546][INFO ][o.e.x.w.WatcherService   ] [t7dKNK-] paused watch execution, reason [new local watcher shard allocation ids], cancelled [0] queued tasks
[2018-04-26T17:30:45,640][INFO ][o.e.c.m.MetaDataMappingService] [t7dKNK-] [.watches/a6-gyBmRTzSuvCU7MzyL2A] update_mapping [doc]
[2018-04-26T17:30:45,668][INFO ][o.e.c.m.MetaDataMappingService] [t7dKNK-] [.watches/a6-gyBmRTzSuvCU7MzyL2A] update_mapping [doc]
[2018-04-26T17:30:58,743][INFO ][o.e.x.s.a.AuthenticationService] [t7dKNK-] Authentication of [elastic] was terminated by realm [reserved] - failed to authenticate user [elastic]

В некоторых попытках журнал ошибок Kibana показывает:

{"type": "log", "@ timestamp": "2018-04-26T17: 40: 34Z", "tags": "license", "warning" "message": "License information from the X-Pack plugin could not be obtained from Elasticsearch for the [data] cluster. [security_exception] failed to authenticate user [elastic], with {header = {WWW-Authenticate = \" Basic realm = \\\ "security \\\" charset = \\\ "UTF-8 \\\" \ "}} :: {\" path \ ": \" / _ xpack \ ", \" statusCode \ ": 401 , \ "response \": \ "{\\\" error \\\ ": {\\\" root_cause \\\ ": [{\\\" type \\\ ": \\\" security_exception \\ \ ", \\\" reason \\\ ": \\\" failed to authenticate user [elastic] \\\ ", \\\" header \\\ ": {\\\" WWW-Authenticate \\\ ": \\\" Basic realm = \\\\\\\ "security \\\\\\\" charset = \\\\\\\ "UTF-8 \\\\\\\" \\\ "\ n" ", \\\" failed \ "\" \ "\" \ "\" \ "\" , \\\ "header \\\": {\\\ "WWW-Authenticate \\\": \\\ "Basic realm = \\\\\\\" security \\\\\\\ "charset = \\\\\\\ "UTF-8 \\\\\\\"}}, \\\ "status \\\": 401} \ ", \" wwwAuthenticateDirective \ ": \" Basic realm = \\\ "security \\\" charset = \\\ "UTF-8 \ "

Вначале я думал, что проблема связана с каким-то параметром, который я забыл, но теперь кажется, что по какой-то загадочной причине при использовании docker-compose проблема аутентификации с учетными данными (user / password) возникает независимо от того, что.

Например, если я захожу в браузер для доступа к ES, появляется экран с логином и паролем, и он не принимает учетные данные, настроенные для ES, сделанные через docker-compose.yml.

Где призрак?

1 Ответ

0 голосов
/ 09 мая 2018

Я столкнулся с той же проблемой, но мои настройки немного отличаются. Я запускаю эластичный поиск в кластере kubernetes. Я решил это, установив пароль начальной загрузки в хранилище ключей вместо установки переменной среды ELASTIC_PASSWORD:

bin/elasticsearch-keystore add "bootstrap.password"

Официальный документ объясняет, как работает пароль начальной загрузки.

...