我正在尝试使用外部服务器上的 MariaDB 将 Grafana(版本 9.5.5,SUSE Linux)设置为高可用性模式。我的理解是,这应该会导致我的多个 Grafana 实例共享仪表板(在一个上创建,在另一个上可见)。我可以让它们连接,但不能共享仪表板。
注意:我对 Grafana 配置和数据库使用都很陌生。
我使用以下命令设置了 MariaDB(请注意,为了保护隐私,我将使用示例密码和 IPS):
在 MariaDB 服务器上:
mysql -u root -p
create database grafana;
grant all privileges on grafana.* TO 'grafanareader' identified by "PWORD";
在两个 Grafana 服务器上:
nano /usr/share/grafana/conf/defaults.ini
type = sqlite3
host = 123.45.678.99 (my MariaDB host IP)
name = grafana
user = grafanareader
password = PWORD
(注意,我不知道这是否相关,但是当我尝试将其设置为 mysql 而不是 sqlite3 时,它将无法启动服务)
systemctl restart grafana-server.service
(没有错误,它解析了 ini 并运行)
确认这些设置反映在 GUI 的管理设置部分。
测试 1:登录 GUI,转到菜单-数据源-添加新 Mysql-输入与上面相同的参数-保存并测试=测试成功
测试 2:使用该新数据源,通过 GUI 访问数据库中手动创建的表=测试成功
(以上两个测试只是为了表明问题不在于连接失败或用户无法访问数据库)
测试 3:在 Grafana 服务器 1 上创建仪表板。检查仪表板是否已正确复制到 Grafana 服务器 2。=测试失败
那么,我误解了高可用性模式吗? Grafana 难道无法在实例之间共享仪表板吗? 还是我配置错了?
答案1
首先,除非您知道自己在做什么,否则切勿更改/usr
(除此以外)。是包管理器的域。/usr/local
/usr
来自Grafana 文档(如果你不熟悉它,我强烈建议你阅读它):
Grafana 实例的默认设置存储在该
$WORKING_DIR/conf/defaults.ini
文件中。不要更改此文件。[...]
如果您使用
deb
或rpm
包安装了 Grafana,那么您的配置文件位于,并且不使用/etc/grafana/grafana.ini
单独的。此路径在 Grafana init.d 脚本中使用文件参数指定。custom.ini
--config
仍然来自Grafana 配置:
Grafana 需要一个数据库来存储用户和仪表板(以及其他内容)。默认情况下,它配置为使用
sqlite3
嵌入式数据库(包含在主 Grafana 二进制文件中)。类型
要么
mysql
,postgres
要么sqlite3
,这是你的选择。
除非您实际指示 Grafana 使用 SQLite 以外的其他东西,否则它将忽略与其无关的所有参数。如果您更改它时它没有启动,那就是您需要调试的问题。