
我正在嘗試在外部伺服器上使用 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 是否無法在實例之間共用儀表板?還是我配置有什麼錯誤?
答案1
首先,除非您知道自己在做什麼,否則切勿更改/usr
(除非)。是套件管理器的網域。/usr/local
/usr
來自Grafana 文檔(鑑於您不熟悉,我強烈建議您閱讀):
Grafana 實例的預設設定儲存在該
$WORKING_DIR/conf/defaults.ini
檔案中。不要更改此文件。[...]
如果您使用
deb
或rpm
軟體套件安裝了 Grafana,那麼您的設定檔位於並且不使用/etc/grafana/grafana.ini
單獨的。custom.ini
該路徑是在 Grafana init.d 腳本中使用--config
檔案參數指定的。
仍然來自Grafana配置:
Grafana 需要一個資料庫來儲存使用者和儀表板(以及其他內容)。預設情況下,它配置為使用
sqlite3
嵌入式資料庫(包含在主 Grafana 二進位檔案中)。類型
要么
mysql
,postgres
要么sqlite3
,這是你的選擇。
除非您實際指示 Grafana 使用 SQLite 以外的其他內容,否則它將忽略所有與其不相關的參數。如果您更改它時它沒有啟動,那就是您需要調試的問題。