添加docker容器作为grafana的数据源

我有四个docker集装箱运行:

docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 97b1f0d98b1c kamon/grafana_graphite "/usr/bin/supervisord" 25 minutes ago Up 25 minutes 80-81/tcp, 0.0.0.0:8125->8125/udp, 0.0.0.0:8126->8126/tcp, 0.0.0.0:40001->3000/tcp kamon-grafana-dashboard 79b9032b9ed4 engie_image "nginx -g 'daemon ..." 3 hours ago Up 3 hours 443/tcp, 0.0.0.0:8080->80/tcp engie_cont 0a1fdd8b830c piha_image "docker-php-entryp..." 3 hours ago Up 3 hours 9000/tcp piha_cont 61c8a4c80180 mysql:5.6 "docker-entrypoint..." 3 hours ago Up 3 hours 0.0.0.0:33061->3306/tcp diba_cont 

2-4旨在启动可通过localhost:8080访问的默认laravel项目

第一个容器是从这个图像: https : //hub.docker.com/r/kamon/grafana_graphite/

现在想法是将容器(engie_cont)添加为DataSource。 我以用户身份login到grafana:admin pass:admin,去添加DataSource并得到错误: 在这里输入图像说明

为什么我不能添加作为DataSource从浏览器(Chrome)访问的URL(localhost:8080)?

首先要尝试将Access更改为代理。 直接模式是直接从您的浏览器,你可能会得到一个CORS(交叉起源)错误。 默认值是代理,而直接模式仅适用于要从浏览器向数据源发送凭据的特殊情况。

编辑:这是一个特殊情况。

你可以从Grafana日志中得到真正的错误:

  1. 获取容器ID(97b1f0d98b1c在你的情况)
  2. docker exec -i -t 97b1f0d98b1c cat /var/log/supervisor/grafana-webapp.log

这可能是一个连接错误。

  1. 改回直接模式。
  2. 查找docker主机的IP地址: sudo ip addr show docker0 (当我testing时是172.17.0.1)
  3. 将Url更改为http://172.17.0.1:8080

在这里输入图像说明