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

add docker container as data source for 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 旨在启动可通过以下方式访问的默认 laravel 项目: localhost:8080

第一个容器取自这张图片: https://hub.docker.com/r/kamon/grafana_graphite/

现在的想法是添加容器 (engie_cont) 作为数据源。 我以用户身份登录到grafana:admin pass:admin,去添加DataSource并得到错误:

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

首先要尝试的是更改对代理的访问。直接模式直接来自您的浏览器,您可能会遇到 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(我测试的时候是172.17.0.1)
  3. 将 Url 更改为 http://172.17.0.1:8080