Grafana Installation
Ein kurzer Beitrag über die Einrichtung und Konfiguration von Grafana. Optional wird auch die Einrichtung des Reverse Proxy mithilfe von nginx beschrieben.
Einleitung
Grafana ist die führende OpenSource Anwendung, wenn es darum geht verschiedene Datenquellen wie InfluxDB, MySQL, PostgreSQL, Prometheus und Graphite grafisch darzustellen.
Aktuell nutze ich verschiedene Dashboards um beispielsweise Temperaturen, die aktuelle Internetauslastung der Fritzbox, sowie meine Server zu überwachen.
Installation
Bevor es losgeht, muss noch sichergestellt werden, dass alle Grundvoraussetzungen für Grafana vollständig erfüllt sind, dafür werden folgende Pakete benötigt, sowie der Key zum Repository von Grafana selbst:
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
Für die aktuellen Stable Releases werden anschließend diese Paketquellen hinzugefügt:
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Nachdem die neuen Quellen hinzugefügt wurden, können wir unsere Systemquellen aktualisieren und im Anschluss Grafana via Apt Paketmanager beziehen, die beiden Commands sehen wie folgt aus:
sudo apt-get update
sudo apt-get install grafana
Konfiguration
Nachdem Grafana installiert ist, muss es noch aktiviert werden, zunächst wird jedoch der systemctl Daemon neu geladen, hierbei liest er auch die eben neu hinzugekommene Grafana Datei ein, welche wir anschließend aktivieren werden. Mit dem letzten Command wird anschließend überprüft ob der Grafana Server wie gewünscht läuft.
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl status grafana-server
Anschließend läuft Grafana auf <IP-eures-Servers>:3000 .
Die Standard Login Daten sind admin:admin und sollten nach dem ersten Login abgeändert werden.
Optional: Setup des Reverse Proxy
nginx
Mithilfe von nginx als Reverse Proxy soll noch etwas Sicherheit in das Grafana Konstrukt gebracht werden, hierzu wird nginx sowie SSL Zertifikate benötigt, letztere habe ich via ACME.sh via LetsEncrypt bezogen und installiert.
In diesem Schritt wird Grafana noch auf eine (lokale) Domain umgeleitet, beispielsweise:
grafana.domain.tld
Hierfür würde die minimale Config Datei für nginx als Reverse Proxy folgendermaßen aussehen:
sudo nano /etc/nginx/conf.d/grafana.conf
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name grafana.domain.tld;
# SSL ECC
ssl_certificate /etc/letsencrypt/grafana.domain.tld/ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/grafana.domain.tld/ecc/key.pem;
ssl_trusted_certificate /etc/letsencrypt/grafana.domain.tld/ecc/ca.pem;
# logging
access_log /var/log/nginx/grafana.domain.tld.access.log;
error_log /var/log/nginx/grafana.domain.tld.error.log warn;
# index.php
index index.php;
# reverse proxy
location / {
proxy_pass http://127.0.0.1:3000;
# Proxy timeouts
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
# known bug in v8.3.5+
# source: https://go.b717.dev/k3y8877
proxy_set_header Host $http_host;
}
}
# HTTP redirect
server {
listen 80;
listen [::]:80;
server_name .grafana.domain.tld;
location / {
return 301 https://grafana.domain.tld$request_uri;
}
}
Nach erfolgreichem Edit der neuen Konfiguratiosndatei wird noch auf etwaige enthaltene Fehler geprüft, danach nginx neu gestartet:
nginx -t
sudo systemctl restart nginx
Geschafft, der Grafana Server ist ab jetzt via HTTPS erreichbar und liefert eure Dashboards künftig auch über einen verschlüsselten Kanal aus.