我在Server1的Grafana托管中有20多个仪表板。我们收购了另一台服务器,我们在Server2机器上安装了相同版本的Grafana。
我想知道我可以将Server-1 Grafana实例与所有仪表板完全克隆到Server2吗?
截至目前,Grafana仅支持逐个导出和导出仪表板。
我想的另一种可能性是使用标准SCP命令将所有Grafana文件/目录从Server-1复制到server-2。但我不确定我需要复制哪些文件。
答案 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);
}