grafana 导入石墨仪表板 404

grafana 导入石墨仪表板 404

我正在尝试为我们的旧版 Graphite 服务器设置 Grafana 前端。两个进程都在运行 Ubuntu 12.04 的同一 EC2 实例上运行。我在从 graphite-web 导入仪表板时遇到问题。我能够成功列出它们,但当我尝试导入一个仪表板时,我收到“问题!未找到。”错误消息。

具体来说,当我在 Chrome 中按照请求操作时,我看到以下内容:

  • GET https://$MY_GRAPHITE_DOMAIN/dashboard/load/$MY-DASHBOARD-NAME200'ing 正文中包含 JSON 数据
  • GET https://$MY_GRAFANA_DOMAIN/api/dashboards/import/$DASHBOARD-NAME-WITHOUT-DASHES404,其正文中包含错误消息。

我尝试在本地和远程执行第二个 GET,结果始终相同。我还使用 $MY-DASHBOARD-NAME 代替 $DASHBOARD-NAME-WITHOUT-DASHES 执行过卷曲,在本地或远程执行时均产生相同的结果。

我的 graphite 数据源设置为 https://$MY_GRAPHITE_DOMAIN,可直接访问,无需身份验证。我切换到直接访问,因为这样可以列出 Graphite 仪表板,而代理访问则不行。除了这些导入之外,其他所有功能都运行良好。

值得一提的是,Graphite 和 Grafana 都在同一台机器上运行,前面是 nginx。安装详述如下。

我正在使用原始的 Grafana 安装,SSL 在通过代理传递之前在 nginx 处终止。/etc/nginx/sites-enabled/grafana.conf

server {
    listen 443;
    server_name $MY_GRAFANA_DOMAIN;

    // ssl conf

    location / {
        proxy_pass http://localhost:3000;
    }
}

这个旧版 Graphite 服务器(我希望尽可能少地干扰它)在 nginx 和 uwsgi 后面运行。我添加了指令Access-Control-Allow-Origin/etc/nginx/sites_enabled/graphite.conf

upstream uwsgi_graphite {
    server unix:/tmp/uwsgi-graphite.sock;
}

include uwsgi_params;

server {
    listen 443;
    server_name $MY_GRAPHITE_DOMAIN;
    root /opt/graphite;
    underscores_in_headers on;   # For legacy graphite clients with malformed headers
    // SSL CONF

    location / {
        # Allow specified network with no password
        # Everyone else needs the password
        satisfy any;
        allow 127.0.0.1/32;      
        allow $MY_HOME_IP;
        deny all;
        auth_basic           "closed site";
        auth_basic_user_file /opt/graphite/conf/htpasswd;

        add_header Access-Control-Allow-Origin *;

        uwsgi_pass_request_headers on;
        uwsgi_pass uwsgi_graphite;
    }
}

我做错了什么导致这些导入无法进行?或者,我可以使用其他解决方法来进行这些导入吗?

显然,我只需要传输这些仪表板一次。我尝试将响应主体放在GET https://$MY_GRAPHITE_DOMAIN/dashboard/load/$MY-DASHBOARD-NAME文件中并在本地加载,但没有效果。

答案1

此问题已在最近的版本中修复:https://github.com/grafana/grafana/issues/2529

相关内容