Не удается подключить Kibana к Elasticsearch с другим портом в докере

Мне не удалось подключить Kibana к Elasticsearch, который работает в другом порту в докере. Вот мой файл докеров:

version: '3.2'
services:
  elasticsearch_new_1:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
    container_name: elasticsearch_new_1
    environment:
      - node.name=kw-new
      - cluster.name=kw-new
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - elasticsearch_new_1:/usr/share/elasticsearch/data
    ports:
      - 9299:9200
      - 9399:9300
    networks:
      - elastic

  kibana_2:
    image: docker.elastic.co/kibana/kibana:7.6.2
    container_name: kibana_2
    environment:
      - SERVER_NAME=KW_Kibana
      - ELASTICSEARCH_HOSTS=http://elasticsearch_new_1:9299
    ports:
      - 5601:5601
    links:
      - elasticsearch_new_1
    networks:
      - elastic
    depends_on:
      - elasticsearch_new_1

volumes:
  es:
    driver: local
  db:
    driver: local
  elasticsearch_new_1:
    driver: local

networks:
  elastic:
    driver: bridge

Это хорошо работает, когда elasticsearch работает через порт 9200. Я пробовал создать kibana.yml, но это ничего не меняет. В elasticsearch следующее сообщение об ошибке:

["java.lang.IllegalStateException: Received message from unsupported version: [1.0.0] minimal compatible version is: [6.8.0]",
        elasticsearch_new_1    | "at org.elasticsearch.transport.InboundMessage.ensureVersionCompatibility(InboundMessage.java:152) ~[elasticsearch-7.6.2.jar:7.6.2]",
    elasticsearch_new_1    | "at org.elasticsearch.transport.InboundMessage.access$000(InboundMessage.java:37) ~[elasticsearch-7.6.2.jar:7.6.2]",
    elasticsearch_new_1    | "at org.elasticsearch.transport.InboundMessage$Reader.deserialize(InboundMessage.java:70) ~[elasticsearch-7.6.2.jar:7.6.2]",
    elasticsearch_new_1    | "at org.elasticsearch.transport.InboundHandler.messageReceived(InboundHandler.java:114) ~[elasticsearch-7.6.2.jar:7.6.2]",
    elasticsearch_new_1    | "at org.elasticsearch.transport.InboundHandler.inboundMessage(InboundHandler.java:103) ~[elasticsearch-7.6.2.jar:7.6.2]",
    elasticsearch_new_1    | "at org.elasticsearch.transport.TcpTransport.inboundMessage(TcpTransport.java:667) [elasticsearch-7.6.2.jar:7.6.2]",
    elasticsearch_new_1    | "at org.elasticsearch.transport.netty4.Netty4MessageChannelHandler.channelRead(Netty4MessageChannelHandler.java:62) [transport-netty4-client-7.6.2.jar:7.6.2]",
    elasticsearch_new_1    | "at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:326) [netty-codec-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:300) [netty-codec-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:241) [netty-handler-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1422) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:931) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:700) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:600) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:554) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:514) [netty-transport-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1050) [netty-common-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.43.Final.jar:4.1.43.Final]",
    elasticsearch_new_1    | "at java.lang.Thread.run(Thread.java:830) [?:?]"] }

Согласно этому сообщению: когда Elasticsearch работает в порту 9200, Kibana использует клиент 1.0.0

["java.lang.IllegalStateException: Received message from unsupported version: [1.0.0] minimal compatible version is: [6.8.0]",

Elasticsearch хорошо работает на localhost: 9299

Кто-нибудь знает об этом?

Спасибо


person Doston    schedule 10.11.2020    source источник
comment
вы пробовали это: порты: - 9299   -  person hamid bayat    schedule 10.11.2020
comment
@hamidbayat да, Elasticsearch хорошо работает на localhost: 9299   -  person Doston    schedule 10.11.2020
comment
поэтому попробуйте ELASTICSEARCH_HOSTS = localhost: 9299   -  person hamid bayat    schedule 10.11.2020
comment
@hamidbayat, возможно, вы неправильно поняли концепцию, здесь ELASTICSEARCH_HOSTS=http://elasticsearch_new_1:9299 относится к порту, а не к имени хоста, потому что ELASTICSEARCH_HOSTS=http://elasticsearch_new_1:9200 работает хорошо.   -  person Doston    schedule 10.11.2020
comment
Я не понимаю, почему вы используете 9299: 9200. это должно быть 9200: 9200 или 9299: 9299   -  person hamid bayat    schedule 10.11.2020
comment
9299:9200 просто сопоставляет порт по умолчанию Elasticsearch с другим портом   -  person Doston    schedule 10.11.2020


Ответы (1)


Я заставил его работать, изменив порт Elasticsearch через среду, я имею в виду, что я изменил номер порта контейнера elasticsearch. Вот самые важные изменения:

  1. http.port=9201-9301 в окружающей среде
  2. 9201:9201 и 9301:9301 в портах.

Полный docker-compose.yml:

version: '3.2'
services:
  elasticsearch_new_1:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
    container_name: elasticsearch_new_1
    environment:
      - node.name=kw-new
      - cluster.name=kw-new
      - discovery.type=single-node
      - http.port=9201-9301
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - elasticsearch_new_1:/usr/share/elasticsearch/data
    ports:
      - 9201:9201
      - 9301:9301
    networks:
      - elastic

  kibana_2:
    image: docker.elastic.co/kibana/kibana:7.6.2
    container_name: kibana_2
    environment:
      - SERVER_NAME=KW_Kibana
      - ELASTICSEARCH_HOSTS=http://elasticsearch_new_1:9201
    ports:
      - 5601:5601
    links:
      - elasticsearch_new_1
    networks:
      - elastic
    depends_on:
      - elasticsearch_new_1

volumes:
  es:
    driver: local
  db:
    driver: local
  elasticsearch_new_1:
    driver: local

networks:
  elastic:
    driver: bridge
person Doston    schedule 11.11.2020