首页 > 解决方案 > 带有 TestContainer 的 Kibana docker 无法以“无法从 Elasticsearch 节点检索版本信息”开始。

问题描述

我正在尝试为 Kibana 构建一个测试容器,以将其与 Elasticsearch 测试容器一起使用。据此,只需要ELASTICSEARCH_HOSTS为 Kibana docker 设置环境变量即可成功启动它。但是,我可以确认,当我尝试以http://localhost:62084/接受 url 的形式传递 Elasticsearch 容器时,Kibana 容器无法启动。当我检查日志时,我可以看到以下条目:

{"type":"log","@timestamp":"2021-08-03T07:59:34+00:00","tags":["error","savedobjects-service"],"pid":952,"message":"Unable to retrieve version information from Elasticsearch nodes."}

我可以检查 docker 并看到 kibana.yml 配置显示以下值:

server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true

所以看起来由于某种原因该ELASTICSEARCH_HOSTS变量无效。

您可以在下面找到我如何使用通用 TestContainer 设置 Kibana testContainer 的代码片段。

private static final int KIBANA_DEFAULT_PORT = 5601;

public KibanaContainer withElasticsearch(Network network, String elasticHostUrl) {
    withNetwork(network);
    withEnv("ELASTICSEARCH_HOSTS", elasticHostUrl);
    setWaitStrategy(new HttpWaitStrategy()
        .forPort(KIBANA_DEFAULT_PORT)
        .forStatusCodeMatching(response -> response == HTTP_OK || response == HTTP_UNAUTHORIZED)
        .withStartupTimeout(Duration.ofSeconds(120)));
    return self();
  }

标签: dockerelasticsearchkibanatestcontainers

解决方案


推荐阅读