增加 grafana 数据源时的 Docker 网络问题
Posted
技术标签:
【中文标题】增加 grafana 数据源时的 Docker 网络问题【英文标题】:Docker network issue when greating grafana data source 【发布时间】:2020-05-27 22:54:36 【问题描述】:我正在尝试设置一个 grafana、influxdb、telegraf 容器,但我似乎无法正确。尝试创建数据源时出现网络错误:Bad Gateway(502) error
。
数据源更新但网络测试失败
这是我的 yml 配置文件:
version: "3"
services:
grafana:
image: grafana/grafana
container_name: grafana
restart: always
ports:
- 3000:3000
networks:
- monitoring
volumes:
- grafana-volume:/var/lib/grafana
influxdb:
image: influxdb
container_name: influxdb
restart: always
ports:
- 8086:8086
networks:
- monitoring
volumes:
- influxdb-volume:/var/lib/influxdb
networks:
monitoring:
volumes:
grafana-volume:
external: false
influxdb-volume:
external: false
目前,我对网络配置进行了散列,因为我想看看如果让 docker 创建网络是否有什么不同。
我使用的是 MacBook,我的 docker 版本是:
Docker version 19.03.5, build 633a0ea
在检查日志时,我确实看到 tcp
在我的 localhost 机器端口 8086 上被阻止,但我没有强制执行代理/防火墙。这是一些日志结果
t=2020-02-12T10:42:25+0000 lvl=info msg="Initializing Stream Manager"
t=2020-02-12T10:42:25+0000 lvl=info msg="HTTP Server Listen" logger=http.server address=[::]:3000 protocol=http subUrl= socket=
t=2020-02-12T10:43:54+0000 lvl=eror msg="Failed to look up user based on cookie" logger=context error="user token not found"
t=2020-02-12T10:43:54+0000 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302 remote_addr=192.168.96.1 time_ms=10 size=29 referer=
t=2020-02-12T10:44:00+0000 lvl=info msg="Successful Login" logger=http.server User=admin@localhost
t=2020-02-12T10:45:35+0000 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/datasources/proxy/1/query status=502 remote_addr=192.168.96.1 time_ms=43 size=0 referer=http://0.0.0.0:3000/datasources/edit/1/?gettingstarted
2020/02/12 10:45:35 http: proxy error: dial tcp 127.0.0.1:8086: connect: connection refused
8086 端口已启动并正在监听
tcp46 0 0 *.8086 *.* LISTEN
【问题讨论】:
【参考方案1】:数据源服务器值127.0.0.1:8086
在容器中无效(容器中的本地主机!= 操作系统本地主机 - 容器通常位于不同的网络命名空间中)。
您的 Grafana 容器位于 monitoring
网络中,因此请连接到 influxdb:8086
,而不是 127.0.0.1:8086
。
【讨论】:
【参考方案2】:令人高兴的是 grafana 正在他的本地机器(容器)上搜索 influxdb,所以这里你需要将 grafana 与 influxdb 链接,在 grafana 中添加:
links:
- influxdb
【讨论】:
链接是 deprecated 功能,不应使用。 我确实添加了它,但错误仍然存在。有没有其他替代方法?错误如下。`t=2020-02-12T19:54:13 +0000 lvl=info msg="Successful Login" logger=http.server User=admin@localhost 2020/02/12 19:55:06 http: proxy error: dial tcp 0.0.0.0:8086: connect: connection denied t= 2020-02-12T19:55:06+0000 lvl=info msg="Request Completed" logger=context userId=1 orgId=1 uname=admin method=GET path=/api/datasources/proxy/1/query status=502 remote_addr=192.168.176.1 time_ms=41 size=0 referer=0.0.0.0:3000/datasources/edit/1/?gettingstarted`以上是关于增加 grafana 数据源时的 Docker 网络问题的主要内容,如果未能解决你的问题,请参考以下文章
cAdvisor + Prometheus + grafana的安装
使用Grafana 展示Docker容器的监控图表并设置邮件报警规则
Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台(不使用docker)