【发布时间】:2021-02-14 15:10:06
【问题描述】:
我正在尝试为 Grafana 配置 ElasticSearch 数据源。我让它们都在本地的 Docker 中运行,都有 7.2.0 版本。对于 Grafana,我提供 ES URL http://localhost:9200、索引名称、时间字段和 ES 版本。所有其他参数保持默认值。
通过保存我的配置,我可以在 Grafana 日志中看到下一个:
t=2021-02-14T14:55:58+0000 lvl=eror msg="Data proxy error" logger=data-proxy-log userId=1 orgId=1 uname=admin path=/api/datasources/proxy/1/<index>/_mapping remote_addr=172.17.0.1 referer="http://localhost:3000/datasources/edit/1/?utm_source=grafana_gettingstarted" error="http: proxy error: dial tcp 127.0.0.1:9200: connect: connection refused"
t=2021-02-14T14:55:58+0000 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/datasources/proxy/1/<index>/_mapping status=502 remote_addr=172.17.0.1 time_ms=1 size=0 referer="http://localhost:3000/datasources/edit/1/?utm_source=grafana_gettingstarted"
我不明白为什么 Grafana 会尝试从某个未知 IP 获取映射。以及如何配置它。
顺便说一句,对http://localhost:9200/<index>/_mapping 的请求会返回正确的映射。
【问题讨论】:
-
grafana 和 elasticsearch 是否在同一个容器中运行?
-
我为此使用了一个 docker-compose 文件,但每个应用程序都在自己的容器中运行。
-
这就是问题所在,如果你在你的grafana配置中使用
http://localhost:9200,它会尝试连接到本地的elasticsearch实例,但是你的elasticsearch没有在同一个容器中运行,localhost表示本地,在同一台机器或容器中运行。您需要输入您的elasticsearch容器的地址。 -
使用 docker-compose 服务名称实际上解决了我的问题:
http://elasticsearch:9200。谢谢! -
遇到了同样的问题。我使用了 docker 网络提供的容器 IP 并且也可以工作。谢谢
标签: elasticsearch grafana