Grafana


Administration

Administration

Grafana SQLite-Datenbank in eine MySQL-Datenbank migrieren

Einleitung

In diesem kleinen Artikel geht es darum, wie wir unsere vorhandene SQLite-Datenbank unserer Grafana-Installation in eine MySQL-Datenbank konvertieren können. Dadurch können wir dann unsere Daten unserer vorhandenen Grafana Installation übernehmen und müssen dann nicht alles neu anlegen. 

Durchführung

Im allerersten Schritt müssen wir natürlich eine MySQL-Datenbank erstellen mit einem MySQL-Benutzer der entsprechenden Berechtigungen auf die Datenbank hat. 

create database grafana;
CREATE USER 'grafana'@'localhost' IDENTIFIED BY 'P@ssw0rd123!';
grant all privileges on grafana.* to 'grafana'@'localhost';
flush privileges;
quit

Dann laden wir uns das Datenbank-Migrations-Tool herunter, welches uns dann eine entsprechende SQL-Dump-Datei erstellt, die wir dann bei uns einspielen können. 

cd /opt
git clone https://github.com/grafana/database-migrator.git

Im nächsten Schritt stoppen wir unseren Grafana-Server.

systemctl stop grafana-server

Jetzt konvertieren wir unsere grafana.db in eine SQL-Datei, welche wir dann einspielen können. 

./sqlitedump.sh /var/lib/grafana/grafana.db > /opt/dump.sql

Damit die Tabellen in der Datenbank vorab erstellt werden, müssen wir jetzt einmal die Login-Daten zur Datenbank in der .ini Datei unserer Grafana-Installation eintragen.

#################################### Database ####################################
[database]
# You can configure the database connection by specifying type, host, name, user and password
# as separate properties or as on string using the url properties.

# Either "mysql", "postgres" or "sqlite3", it's your choice
type = mysql
host = mysql-server:3306
name = grafana
user = grafana
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password = P@ssw0rd123!

Jetzt starten wir einmal unseren Grafana-Server wieder damit dieser einmal die SQL-Tabellen anlegt, und sobald das Webinterface erreichbar ist stoppen wir den Server wieder. 

systemctl start grafana-server
systemctl stop grafana-server

Im letzten Schritt muss das Backup unserer Grafana-Datenbank einmal eingespielt werden. Ich habe hierfür die Importieren-Funktion von meiner vorhandenen phpMyAdmin Installation verwendet. Danach kann der Grafana-Server wieder gestartet werden.

systemctl start grafana-server

Jetzt sollten alle Daten übernommen sein und die Daten werden in einer MySQL-Datenbank abgelegt. 

 

Dashboards

Dashboards

iFrame Inhalte im Grafana Dashboard anzeigen

Einleitung

Als ich neulich versucht habe ein Observium Dashboard zu bauen, kam ich auf die Idee die Graphen in Grafana anzeigen zu lassen. Dies ist mithilfe des Text-Feldes möglich. 

Graphen einbetten

Um jetzt einen Graphen in Grafana einzubetten, müssen wir die Konfigurationsdatei von Grafana mit einem Editor unserer Wahl öffnen. 

nano /usr/share/grafana/conf/defaults.ini

Dort müssen wir zwei Einträge von false auf true ändern.

allow_embedding = true
disable_sanitize_html = true

Nachdem wir diese beiden Werte verändert haben, starten wir den Grafana Server neu.

systemctl restart grafana-server

Jetzt können wir in ein Textfeld ein iFrame einbetten, welches dann unseren Graphen anzeigt.

<iframe 
  src="http://graphen.local" 
  style="height: 100%; width: 100%; object-fit: contain;">
</iframe>