如何完成从一台服务器到其他服务器的Grafana仪表板复制

时间:2017-02-04 05:00:58

标签: grafana

我在Server1的Grafana托管中有20多个仪表板。我们收购了另一台服务器,我们在Server2机器上安装了相同版本的Grafana。

我想知道我可以将Server-1 Grafana实例与所有仪表板完全克隆到Server2吗?

截至目前,Grafana仅支持逐个导出和导出仪表板。

我想的另一种可能性是使用标准SCP命令将所有Grafana文件/目录从Server-1复制到server-2。但我不确定我需要复制哪些文件。

3 个答案:

答案 0 :(得分:3)

您可以使用 wizzy 将仪表板从一台服务器复制到另一台服务器。

使用说明安装wizzy https://utkarshcmu.github.io/wizzy-site/home/getting-started/#installation

然后运行以下命令:

为服务器1设置配置:

wizzy set grafana envs local1 url http://server1:3000
wizzy set grafana envs local1 username admin
wizzy set grafana envs local1 password admin

为服务器2设置配置:

wizzy set grafana envs local2 url http://server2:3000
wizzy set grafana envs local2 username admin
wizzy set grafana envs local2 password admin

从服务器1复制到服务器2:

wizzy set context grafana local1
wizzy import dashboards
wizzy set context grafana local2
wizzy export dashboards

您的仪表板现在应该从服务器1复制到服务器2.如果有任何问题,请在https://github.com/utkarshcmu/wizzy/issues上打开github问题

答案 1 :(得分:2)

如果您使用的是内置的sqlite3数据库,那么您确实可以将data目录和conf/custom.ini复制到新服务器,其中包括所有仪表板,插件等。设置数据库的内容包含在您的grafana安装下的data/grafana.db中。

答案 2 :(得分:1)

这是一个简单的Perl脚本,用于导出所有仪表板。只需更改前两个变量即可。

#!/usr/bin/perl
use strict;

my $Grafana= "www.Agendare.MX:3000";
my $Auth= "API token goes here.";

my @List=`curl -sH "Authorization: Bearer $Auth" 'http://$Grafana/api/search' | jq .[].uid -S`;

mkdir "dashexpo";
foreach my $Uid (@List) {
    $Uid=~ s/["\n]//g;

    my $Title=`curl -sH "Authorization: Bearer $Auth" 'http://$Grafana/api/dashboards/uid/$Uid' | jq .dashboard.title`;
    my @Dashboard=`curl -sH "Authorization: Bearer $Auth" 'http://$Grafana/api/dashboards/uid/$Uid' | jq .dashboard -S --tab`;
    $Title=~ s/["\n]//g;
    print "Exporting $Uid: $Title\n";

    $Title=~ s/ /_/g;
    my $File= "dashexpo/$Title\.json";
    open(FH, ">$File");
    print FH @Dashboard;
    close(FH);
    }