
Ich versuche, Grafana (Version 9.5.5, SUSE Linux) mithilfe von MariaDB auf einem externen Server in den Hochverfügbarkeitsmodus zu versetzen. Meines Wissens sollte dies dazu führen, dass meine mehreren Grafana-Instanzen Dashboards gemeinsam nutzen (auf einer erstellt, auf einer anderen sichtbar). Ich kann sie dazu bringen, eine Verbindung herzustellen, aber keine Dashboards gemeinsam zu nutzen.
Hinweis: Ich bin sowohl mit der Konfiguration von Grafana als auch mit der Verwendung der Datenbank neu.
Ich habe MariaDB mit den folgenden Befehlen eingerichtet (aus Datenschutzgründen verwende ich Beispielkennwörter und IPS):
Auf dem MariaDB-Server:
mysql -u root -p
create database grafana;
grant all privileges on grafana.* TO 'grafanareader' identified by "PWORD";
Auf den beiden Grafana-Servern:
nano /usr/share/grafana/conf/defaults.ini
type = sqlite3
host = 123.45.678.99 (my MariaDB host IP)
name = grafana
user = grafanareader
password = PWORD
(Hinweis: Ich weiß nicht, ob das relevant ist oder nicht, aber wenn ich versuche, es auf MySQL statt auf SQLite3 einzustellen, wird der Dienst nicht gestartet.)
systemctl restart grafana-server.service
(kein Fehler, es analysiert die INI und läuft)
Bestätigt, dass diese Einstellungen im Abschnitt „Administrationseinstellungen“ der GUI angezeigt werden.
Test 1: Loggen Sie sich in die GUI ein, gehen Sie zu Menü-Datenquellen-Neu hinzufügen-MySQL-geben Sie dieselben Parameter wie oben ein-speichern und testen=Test erfolgreich
Test 2: Mit dieser neuen Datenquelle können Sie über die GUI auf eine manuell erstellte Tabelle in der Datenbank zugreifen.Test erfolgreich
(die beiden obigen Tests sollen lediglich zeigen, dass das Problem nicht in einer fehlgeschlagenen Verbindung oder einem fehlgeschlagenen Zugriff des Benutzers auf die Datenbank liegt)
Test 3: Erstellen Sie ein Dashboard auf Grafana-Server 1. Überprüfen Sie, ob das Dashboard ordnungsgemäß auf Grafana-Server 2 repliziert wurde. =Im Test durchgefallen
Verstehe ich den Hochverfügbarkeitsmodus also falsch? Ist es für Grafana einfach nicht möglich, Dashboards zwischen Instanzen zu teilen? Oder habe ich etwas falsch konfiguriert?
Antwort1
Erstens: Ändern Sie NIEMALS /usr
(außer /usr/local
), es sei denn, Sie wissen, was Sie tun. /usr
ist die Domäne des Paketmanagers.
Von demGrafana-Dokumentation(da Sie damit nicht vertraut sind, empfehle ich Ihnen dringend die Lektüre):
In der Datei sind die Standardeinstellungen für eine Grafana-Instanz gespeichert
$WORKING_DIR/conf/defaults.ini
.Nichtändere diese Datei.[...]
Wenn Sie Grafana mit den Paketen
deb
oder installiert habenrpm
, befindet sich Ihre Konfigurationsdatei unter/etc/grafana/grafana.ini
und es wird kein separatercustom.ini
Pfad verwendet. Dieser Pfad wird im Grafana-Skript init.d mit dem--config
Dateiparameter angegeben.
Stil aus demGrafana-Konfiguration:
Grafana benötigt eine Datenbank, um Benutzer und Dashboards (und andere Dinge) zu speichern. Standardmäßig ist es so konfiguriert, dass
sqlite3
es eine eingebettete Datenbank verwendet (in der Haupt-Grafana-Binärdatei enthalten).Typ
Entweder
mysql
oder , die Wahl liegt bei Ihnenpostgres
.sqlite3
Sofern Sie Grafana nicht anweisen, etwas anderes als SQLite zu verwenden, ignoriert es alle Parameter, die für es nicht relevant sind. Wenn es beim Ändern nicht startet, ist das Ihr Problem, das Sie debuggen müssen.