In diesem Artikel möchte ich kurz darauf eingehen, wie man die Datenvisualisierungslösung Grafana mit sauberem HTTPS auf Ubuntu 18.04 aufsetzen kann. Ich würde euch wie immer empfehlen Dienste nicht Nativ auf einem Server laufen zu lassen sondern zu Virtualisieren.
Siehe: Virtualisieren mit KVM
Wir gehen einfach nach der Offiziellen Anleitung auf der Grafana Website vor.
Um unsere Seite mit einem Validen SSL Zertifikat laufen zu lassen, generieren wir ein Zertifikat mit LetsEncrypt. Certbot ist bei ubuntu 18.04 bereits vorinstalliert.
sudo certbot certonly -d your.website
Die Pfade der fullchain.pem und privkey.pem solltet Ihr euch merken. Diese tragen wir gleich in die grafana.ini ein.
Zunächst müssen wir aber noch dafür sorgen, dass Grafana auf die Zertifikate zugreifen kann. Dazu erstellen wir zunächst eine neue Gruppe.
sudo groupadd sslcerts
/etc/letsencrypt gehört dem user root und der gruppe root. Wir ändern jetzt die Gruppe von /etc/letsencrypt rekursiv auf sslcerts.
user chown -R root:sslcerts /etc/letsencrypt/
Anschließend fürgen wir den Benutzer grafana (wird bei der Grafana Installation angelegt) dieser Gruppe hinzu.
sudo usermod -G sslcerts -a grafana
Jetzt müssen wir noch die Permissions auf /etc/letsencrypt/live und /etc/letsencrypt/archive anpassen.
sudo chmod 755 /etc/letsencrypt/live
sudo chmod 755 /etc/letsencrypt/archive
In der Grafa Konfigurationsdatei müsst ihr nun folgende Zeilen anpassen:
30 [server] 31 # Protocol (http, https, socket) 32 protocol = https
37 # The http port to use 38 http_port = 443
40 # The public facing domain name used to access grafana from a browser 41 domain = your.grafana.url
47 # The full public facing url you use in browser, used for redirects and emails 48 # If you use reverse proxy and sub path specify full url (with sub path) 49 root_url = https://your.grafana.url
60 # https certs & key file 61 cert_file = /etc/letsencrypt/live/your.grafana.url/fullchain.pem 62 cert_key = /etc/letsencrypt/live/your.grafana.url/privkey.pem
Der Grafana Dienst wird nicht als root ausgeführt, darum wird in der defaultconfig auch ein highport verwendet. Wir wollen aber 443 nutzen…
Daher erlauben wir grafana explizit, dass es das darf mit setcap. sudo setcap 'cap_net_bind_service=+ep' /usr/sbin/grafana-server
Siehe: https://wiki.apache.org/httpd/NonRootPortBinding https://wiki.archlinux.org/index.php/Capabilities
Startet anschließend den Grafana dienst neu.
sudo systemctl restart grafana-server.service
Wenn Ihr alles richtig gemacht habt, sollte euch ein sauberes HTTPS begrüßen. Falls nein, hilft es sich das log anzusehen.
sudo tail -f /var/log/grafana/grafana.log
An dieser Weboberfläche solltet Ihr euch jetzt mit admin admin einloggen können. Ihr werdet daraufhin aufgefordert das Passwort zu ändern.
Jetzt könnt Ihr mit diesem Guide weitermachen: https://grafana.com/docs/guides/getting_started/
Cheers, Ori