docker - 带有 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();
}
解决方案
推荐阅读
- javascript - 在 JavaScript 中过滤嵌套对象
- python - 尝试开发二十一点游戏的计分系统
- c# - .NET Core 3.1/IHostBuilder 的 UseUrls 等效项
- firebase - 向“Xamarin.Android.Crashlytics”添加引用会导致多个编译时错误
- operating-system - 操作系统中的文件系统和文件管理有什么区别?
- ios - NSMutableAttributedString 添加隐藏文本的多个属性
- node.js - Discord.js 音乐机器人无法在 Linux 上运行(但在 Windows 上运行)
- excel - VBA 错误“对象变量或未设置块变量”
- java - JAXB 在类路径上使用 (SAXON-HE) 解组非常慢
- python - 在说 y=[example] 之后,我使用 list.remove(y) python 不记得我给 y 分配了什么