Grafana auf Ubuntu 18.04 mit LetsEncrypt einrichten

May 13, 2019 in debian, linux ‐ 2 min read

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

Installation

Wir gehen einfach nach der Offiziellen Anleitung auf der Grafana Website vor.

LetsEncrypt

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

image

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/

image

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

Anpassung der /etc/grafana/grafana.ini

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

Grafana die Möglichkeit geben 443 zu binden

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

image

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