0

我有一个 docker-compose 配置,但 Kibana 无法访问 ElasticSearch:

{"type":"log","@timestamp":"2019-09-09T22:34:32Z","tags":["warning","elasticsearch","admin"],"pid":6,"message":"Unable to revive connection: http://0.0.0.0:9200/"}
{"type":"log","@timestamp":"2019-09-09T22:34:32Z","tags":["warning","elasticsearch","admin"],"pid":6,"message":"No living connections"}
{"type":"log","@timestamp":"2019-09-09T22:34:34Z","tags":["warning","elasticsearch","admin"],"pid":6,"message":"Unable to revive connection: http://0.0.0.0:9200/"}
{"type":"log","@timestamp":"2019-09-09T22:34:34Z","tags":["warning","elasticsearch","admin"],"pid":6,"message":"No living connections"}
{"type":"log","@timestamp":"2019-09-09T22:34:34Z","tags":["warning","task_manager"],"pid":6,"message":"PollError No Living connections"}
{"type":"log","@timestamp":"2019-09-09T22:34:34Z","tags":["warning","elasticsearch","admin"],"pid":6,"message":"Unable to revive connection: http://0.0.0.0:9200/"}
{"type":"log","@timestamp":"2019-09-09T22:34:34Z","tags":["warning","elasticsearch","admin"],"pid":6,"message":"No living connections"}

这是我的 docker-compose.yml 文件:

version: '2.2'
services:
  kibana:
    image: docker.elastic.co/kibana/kibana:7.3.1
    environment:
      ELASTICSEARCH_HOSTS: http://0.0.0.0:9200
    networks:
      - esnet
    ports:
      - 5601:5601
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.3.1
    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.1
    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

volumes:
  esdata01:
    driver: local
  esdata02:
    driver: local

networks:
  esnet:

有谁知道为什么 Kibana 不能与 ElasticSearch 对话?也许我应该使用这个:

ELASTICSEARCH_HOSTS: http://esnet:9200

而不是这个:

ELASTICSEARCH_HOSTS: http://0.0.0.0:9200

?

非常感谢任何帮助我必须添加一些文本以使问题完整 tyvm

4

1 回答 1

1

好吧,他们无法连接的一个原因是 ES 容器死了,因为这个错误:

{"type": "server", "timestamp": "2019-09-09T22:42:15,440+0000", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "es01",  "message": "initialized"  }
{"type": "server", "timestamp": "2019-09-09T22:42:15,440+0000", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "es01",  "message": "starting ..."  }
{"type": "server", "timestamp": "2019-09-09T22:42:15,667+0000", "level": "INFO", "component": "o.e.t.TransportService", "cluster.name": "docker-cluster", "node.name": "es01",  "message": "publish_address {172.21.0.2:9300}, bound_addresses {0.0.0.0:9300}"  }
{"type": "server", "timestamp": "2019-09-09T22:42:15,675+0000", "level": "INFO", "component": "o.e.b.BootstrapChecks", "cluster.name": "docker-cluster", "node.name": "es01",  "message": "bound or publishing to a non-loopback address, enforcing bootstrap checks"  }
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
{"type": "server", "timestamp": "2019-09-09T22:42:15,727+0000", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "es01",  "message": "stopping ..."  }
{"type": "server", "timestamp": "2019-09-09T22:42:15,869+0000", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "es01",  "message": "stopped"  }
{"type": "server", "timestamp": "2019-09-09T22:42:15,869+0000", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "es01",  "message": "closing ..."  }
{"type": "server", "timestamp": "2019-09-09T22:42:15,896+0000", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "es01",  "message": "closed"  }
{"type": "server", "timestamp": "2019-09-09T22:42:15,904+0000", "level": "INFO", "component": "o.e.x.m.p.NativeController", "cluster.name": "docker-cluster", "node.name": "es01",  "message": "Native controller process has stopped - no new native processes can be started"  }

所以这至少可以解释解决问题的首要位置。

看起来答案就在这里: https ://github.com/docker-library/elasticsearch/issues/111

sudo sysctl -w vm.max_map_count=262144
于 2019-09-09T22:43:31.197 回答