Kibana 无法恢复与 ElasticSearch 的连接

Kibana Unable to revive connection to ElasticSearch

我是 ElasticSearch 的新手,我按照这里的说明操作:https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

每当我 运行 'docker-compose up',Kibana 总是会说“无法恢复连接”,但是如果我 运行 curl http://localhost:9200,我会得到一个回应:

{
  "name" : "ec88fa675367",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "UkLkAHO8S4yzAKFaf0KsYA",
  "version" : {
    "number" : "7.5.0",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "e9ccaed468e2fac2275a3761849cbee64b39519f",
    "build_date" : "2019-11-26T01:06:52.518245Z",
    "build_snapshot" : false,
    "lucene_version" : "8.3.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

下面是我的docker-compose.yml,请帮忙,谢谢!

version: '3'

networks:
  elastic:

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0
    container_name: elasticsearch
    networks:
      - elastic
    environment:
      - discovery.type=single-node
    ports:
      - 9200:9200

  kibana:
    image: docker.elastic.co/kibana/kibana:7.5.0
    container_name: kibana
    networks:
      - elastic
    environment:
      SERVER_NAME: kibana
      ELASTICSEARCH_HOSTS: http://localhost:9200
    links:
      - elasticsearch
    depends_on:
      - elasticsearch

它不起作用的原因是因为您将 ELASICSEARCH_HOSTS 设置为 Kibana 主机(因为 localhost 代表 kibana 容器)。您需要做的是使用 elasticsearch 主机名 ELASTICSEARCH_HOSTS: http://elasticsearch:9200.

您还需要映射您的 Kibana 端口,否则您将无法从本地计算机访问它(类似于您为 elasticsearch 所做的)。

下面的例子应该有效:

version: '3'

networks:
  elastic:

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0
    container_name: elasticsearch
    networks:
      - elastic
    environment:
      - discovery.type=single-node
    ports:
      - 9200:9200

  kibana:
    image: docker.elastic.co/kibana/kibana:7.5.0
    container_name: kibana
    networks:
      - elastic
    environment:
      SERVER_NAME: kibana
      ELASTICSEARCH_HOSTS: http://elasticsearch:9200
    links:
      - elasticsearch
    depends_on:
      - elasticsearch
    ports:
      - 5601:5601