Tutorial

Installieren und Sichern von Grafana unter Ubuntu 20.04

Published on July 16, 2020
Deutsch
Installieren und Sichern von Grafana unter Ubuntu 20.04

Der Autor hat den COVID-19 Relief Fund dazu ausgewählt, eine Spende im Rahmen des Programms Write for DOnations zu erhalten.

Einführung

Grafana ist ein Open-Source-basiertes Visualisierungs- und Überwachungstool für Daten, das sich mit komplexen Daten aus Quellen wie Prometheus, InfluxDB, Graphite und ElasticSearch integrieren lässt. Mit Grafana können Sie Warnungen, Benachrichtigungen und Ad-hoc-Filter für Ihre Daten erstellen und durch integrierte Freigabefunktionen die Zusammenarbeit mit Teamkollegen erleichtern.

In diesem Tutorial installieren Sie Grafana und sichern die Anwendung mit einem SSL-Zertifikat und einem Nginx-Reverseproxy. Nach der Einrichtung von Grafana haben Sie die Möglichkeit, Benutzerauthentifizierung über GitHub zu konfigurieren, um die Berechtigungen Ihres Teams besser zu organisieren.

Voraussetzungen

Um dieser Anleitung zu folgen, benötigen Sie:

Schritt 1 — Installieren von Grafana

In diesem ersten Schritt installieren Sie Grafana auf Ihrem Ubuntu 20.04-Server. Sie können Grafana installieren, indem Sie entweder die Anwendung direkt von der offiziellen Website herunterladen oder ein APT-Repository verwenden. Da ein APT-Repository die Installation und Verwaltung von Grafana-Updates erleichtert, wenden wir in diesem Tutorial diese Methode an.

Laden Sie mit wget den GPG-Schlüssel von Grafana herunter und übergeben Sie dann die Ausgabe an apt-key. Dadurch wird der Schlüssel zur Liste der vertrauenswürdigen Schlüssel Ihrer APT-Installation hinzugefügt. Nun können Sie das GPG-signierte Grafana-Paket herunterladen und verifizieren:

  1. wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

In diesem Befehl deaktiviert die Option -q die Nachricht zur Statusaktualisierung für wget, während -O die Datei ausgibt, die Sie in das Terminal heruntergeladen haben. Diese beiden Optionen sorgen dafür, dass nur die Inhalte der heruntergeladenen Datei an apt-key übertragen werden.

Fügen Sie als Nächstes das Grafana-Repository zu Ihren APT-Quellen hinzu:

  1. sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

Aktualisieren Sie dann den APT-Cache, um Ihre Paketlisten zu aktualisieren:

  1. sudo apt update

Sie können nun mit der Installation fortfahren:

  1. sudo apt install grafana

Sobald Grafana installiert ist, verwenden Sie systemctl, um den Grafana-Server zu starten:

  1. sudo systemctl start grafana-server

Überprüfen Sie als Nächstes, ob Grafana ausgeführt wird, indem Sie den Status des Diensts prüfen:

  1. sudo systemctl status grafana-server

Sie erhalten eine ähnliche Ausgabe wie diese:

Output
● grafana-server.service - Grafana instance Loaded: loaded (/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2020-05-21 08:08:10 UTC; 4s ago Docs: http://docs.grafana.org Main PID: 15982 (grafana-server) Tasks: 7 (limit: 1137) ...

Diese Ausgabe enthält Informationen über den Prozess von Grafana, einschließlich seines Status, Main Process Identifier (PID) und mehr. active (running) bedeutet, dass der Prozess richtig ausgeführt wird.

Abschließend aktivieren Sie den Dienst, damit Grafana beim Booten automatisch gestartet wird:

  1. sudo systemctl enable grafana-server

Sie erhalten die folgende Ausgabe:

Output
Synchronizing state of grafana-server.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable grafana-server Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service.

Dadurch wird bestätigt, dass systemd die erforderlichen symbolischen Links für den Autostart von Grafana erstellt hat.

Grafana ist nun installiert und einsatzbereit. Als Nächstes sichern Sie Ihre Verbindung zu Grafana mit einem Reverseproxy und SSL-Zertifikat.

Schritt 2 — Einrichten des Reverseproxy

Durch Verwendung eines SSL-Zertifikats wird sichergestellt, dass Ihre Daten sicher sind, indem die Verbindung zu und von Grafana verschlüsselt wird. Um diese Verbindung nutzen zu können, müssen Sie jedoch zunächst Nginx als Reverseproxy für Grafana neu konfigurieren.

Öffnen Sie die Nginx-Konfigurationsdatei, die Sie beim Einrichten des Nginx-Serverblocks mit Let’s Encrypt in den Voraussetzungen erstellt haben. Sie können einen beliebigen Texteditor verwenden, für dieses Tutorial nutzen wir allerdings nano:

  1. sudo nano /etc/nginx/sites-available/your_domain

Suchen Sie nach dem folgenden Block:

/etc/nginx/sites-available/your_domain
...
	location / {
        try_files $uri $uri/ =404;
	}
...

Da Sie Nginx bereits für Kommunikation über SSL konfiguriert haben und der gesamte Webverkehr auf Ihrem Server schon über Nginx läuft, müssen Sie Nginx nur noch dazu anweisen, alle Anfragen an Grafana (standardmäßig an Port 3000) weiterzuleiten.

Löschen Sie in diesem location block die vorhandene Zeile try_files und ersetzen Sie sie durch die folgende Option proxy_pass:

/etc/nginx/sites-available/your_domain
...
	location / {
	  	proxy_pass http://localhost:3000;
	}
...

Dadurch wird der Proxy dem entsprechenden Port zugeordnet. Sobald Sie damit fertig sind, speichern und schließen Sie die Datei, indem Sie STRG+X, Y und dann die Eingabetaste drücken (wenn Sie nano verwenden).

Testen Sie nun die neuen Einstellungen, um sich zu vergewissern, dass alles korrekt konfiguriert wurde:

  1. sudo nginx -t

Sie erhalten die folgende Ausgabe:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Aktivieren Sie schließlich die Änderungen, indem Sie Nginx neu laden:

  1. sudo systemctl reload nginx

Sie können nun das Standardanmeldefenster von Grafana aufrufen, indem Sie in Ihren Webbrowser https://your_domain eingeben. Wenn Grafana nicht erreichbar ist, prüfen Sie, ob Ihre Firewall so eingerichtet ist, dass Datenverkehr an Port 443 zugelassen wird, und befolgen Sie dann erneut die vorherigen Anweisungen.

Nachdem Sie die Verbindung zu Grafana verschlüsselt haben, können Sie nun zusätzliche Sicherheitsmaßnahmen implementieren, angefangen beim Ändern der standardmäßigen Anmeldedaten für den Grafana-Administrator.

Schritt 3 — Aktualisieren von Anmeldedaten

Da jede Grafana-Installation standardmäßig dieselben Administrator-Anmeldedaten nutzt, sollten Sie die Anmeldedaten so schnell wie möglich ändern. In diesem Schritt aktualisieren Sie die Anmeldedaten zur Verbesserung der Sicherheit.

Navigieren Sie zunächst über Ihren Webbrowser zu https://your_domain. Dadurch wird das standardmäßige Anmeldefenster mit folgenden Elementen angezeigt: einem Formular, das Sie dazu auffordert, eine E-Mail-Adresse oder Benutzername und ein Passwort einzugeben, einer Schaltfläche zum Anmelden sowie einem Link namens Passwort vergessen? .

Grafana-Anmeldung

Geben Sie admin sowohl in das Feld E-Mail-Adresse oder Benutzername und Passwort ein und klicken Sie dann auf die Schaltfläche Anmelden.

Im nächsten Fenster werden Sie aufgefordert, die Sicherheit Ihres Kontos zu erhöhen, indem Sie das Standardpasswort ändern:

Passwort ändern

Geben Sie das Passwort, das Sie verwenden möchten, in die Felder Neues Passwort und Neues Passwort bestätigen ein.

Jetzt können Sie auf Übermitteln klicken, um die neuen Daten zu speichern, oder auf Überspringen, um diesen Schritt zu überspringen. Wenn Sie den Schritt überspringen, werden Sie dazu aufgefordert, das Passwort bei der nächsten Anmeldung zu ändern.

Um die Sicherheit Ihrer Grafana-Konfiguration zu erhöhen, klicken Sie auf Übermitteln. Sie gelangen zum Dashboard Willkommen bei Grafana:

Start-Dashboard

Sie haben Ihr Konto sicherer gemacht, indem Sie die Standardanmeldedaten geändert haben. Als Nächstes werden Sie Änderungen an Ihrer Grafana-Konfiguration vornehmen, damit ohne Ihre Genehmigung niemand ein neues Grafana-Konto erstellen kann.

Schritt 4 — Deaktivieren von Grafana-Registrierungen und anonymem Zugriff

Grafana bietet Optionen, mit denen Besucher für sich selbst Benutzerkonten erstellen und eine Vorschau von Dashboards anzeigen können, ohne sich registrieren zu müssen. Wenn Grafana nicht über das Internet zugänglich ist oder mit öffentlich verfügbaren Daten wie Dienststatus arbeitet, können Sie diese Funktionen ggf. zulassen. Wenn Sie Grafana jedoch online verwenden, um mit sensiblen Daten zu arbeiten, kann anonymer Zugriff ein Sicherheitsproblem darstellen. Um dieses Problem zu beheben, nehmen Sie einige Änderungen an Ihrer Grafana-Konfiguration vor.

Öffnen Sie zunächst die Hauptkonfigurationsdatei von Grafana zur Bearbeitung:

  1. sudo nano /etc/grafana/grafana.ini

Suchen Sie die folgende Direktive allow_sign_up unter der Überschrift [users]:

/etc/grafana/grafana.ini
...
[users]
# disable user signup / registration
;allow_sign_up = true
...

Wenn Sie diese Direktive mit true aktivieren, wird dem Anmeldefenster eine Schaltfläche zum Anmelden hinzugefügt, damit sich Benutzer registrieren und auf Grafana zugreifen können.

Durch Deaktivieren dieser Direktive mit false wird die Schaltfläche zum Anmelden entfernt, was die Sicherheit und den Datenschutz von Grafana erhöht.

Heben Sie die Kommentierung dieser Direktive auf, indem Sie das ;-Zeichen am Anfang der Zeile entfernen und dann die Option auf false setzen:

/etc/grafana/grafana.ini
...
[users]
# disable user signup / registration
allow_sign_up = false
...

Als Nächstes suchen Sie nach der folgenden aktivierten Direktive unter der Überschrift [auth.anonymous]:

/etc/grafana/grafana.ini
...
[auth.anonymous]
# enable anonymous access
;enabled = false
...

Wenn Sie enabled auf true setzen, erhalten nicht registrierte Benutzer Zugriff auf Ihre Dashboards; wenn Sie die Option auf false setzen, wird der Zugriff auf das Dashboard auf registrierte Benutzer beschränkt.

Heben Sie die Kommentierung dieser Direktive auf, indem Sie das ;-Zeichen am Anfang der Zeile entfernen und die Option dann auf false setzen:

/etc/grafana/grafana.ini
...
[auth.anonymous]
# enable anonymous access
enabled = false
...

Speichern Sie die Datei und beenden Sie den Texteditor.

Um die Änderungen zu aktivieren, starten Sie Grafana neu:

  1. sudo systemctl restart grafana-server

Vergewissern Sie sich, ob alles funktioniert, indem Sie den Dienststatus von Grafana überprüfen:

  1. sudo systemctl status grafana-server

Wie zuvor wird die Ausgabe melden, dass Grafana active (running) ist.

Rufen Sie nun https://your_domain in Ihrem Webbrowser auf. Um zum Fenster zum Anmelden zurückzukehren, bewegen Sie den Cursor links unten im Bildschirm zu Ihrem Avatar und klicken Sie auf die Option Abmelden, die angezeigt wird.

Vergewissern Sie sich nach dem Abmelden, dass es keine Schaltfläche zum Anmelden gibt und Sie sich nicht anmelden können, ohne Anmeldedaten einzugeben.

Nun ist Grafana vollständig konfiguriert und einsatzbereit. Als Nächstes können Sie den Anmeldeprozess für Ihre Organisation vereinfachen, indem Sie über GitHub authentifizieren.

(Optional) Schritt 5 — Einrichten einer GitHub OAuth-Anwendung

Für einen alternativen Ansatz zur Anmeldung können Sie Grafana für eine Authentifizierung über GitHub konfigurieren, womit allen Mitgliedern autorisierter GitHub-Organisationen Zugriff gewährt wird. Dies kann besonders nützlich sein, wenn Sie möchten, dass verschiedene Entwickler zusammenarbeiten und Metriken aufrufen können, ohne spezielle Anmeldedaten für Grafana erstellen zu müssen.

Melden Sie sich zunächst bei einem GitHub-Konto, das mit Ihrer Organisation verknüpft ist, an und navigieren Sie dann zu Ihrer GitHub-Profilseite unter https://github.com/settings/profile.

Wechseln Sie den Einstellungskontext, indem Sie auf der linken Seite des Bildschirms auf Ihren Namen klicken und dann im Dropdown-Menü Ihre Organisation auswählen. Dadurch wird der Kontext von Persönliche Einstellungen in Organisationseinstellungen geändert.

Im nächsten Bildschirm sehen Sie Ihr Organisationsprofil, in dem Sie Einstellungen wie den Anzeigenamen der Organisation, die E-Mail-Adresse der Organisation und die URL der Organisation ändern können.

Da Grafana OAuth, einen offenen Standard zum Gewähren von Zugriff auf lokale Ressourcen an andere Remotebenutzer und Authentifizieren von Benutzern über GitHub nutzt, müssen Sie innerhalb von GitHub eine neue OAuth-Anwendung erstellen.

Klicken Sie auf den Link OAuth-Anwendungen unter Entwicklereinstellungen unten links im Bildschirm.

Wenn Sie in GitHub nicht bereits über OAuth-Anwendungen verfügen, die mit Ihrer Organisation verknüpft sind, erhalten Sie den Hinweis, dass keine Anwendungen im Besitz der Organisation sind. Andernfalls sehen Sie eine Liste der OAuth-Anwendungen, die bereits mit Ihrem Konto verknüpft sind.

Klicken Sie auf die Schaltfläche Neue OAuth-Anwendung, um fortzufahren.

Geben Sie im nächsten Bildschirm folgende Details zu Ihrer Grafana-Installation ein:

  • Anwendungsname: Damit können Sie Ihre verschiedenen OAuth-Anwendungen voneinander unterscheiden.
  • URL der Homepage: Dadurch erfährt GitHub, wo sich Grafana befindet. Geben Sie in dieses Feld https://your_domain ein, wobei Sie your_domain durch Ihre Domäne ersetzen.
  • Anwendungsbeschreibung: Damit wird eine Beschreibung des Zwecks Ihrer OAuth-Anwendung angegeben.
  • Callback-URL für Anwendung: Das ist die Adresse, an die Benutzer nach der erfolgreichen Authentifizierung weitergeleitet werden. Für Grafana muss dieses Feld https://your_domain/login/github lauten.

Denken Sie daran, dass Grafana-Benutzer, die sich über GitHub anmelden, die Werte sehen, die Sie in den ersten drei vorangehenden Feldern eingegeben haben; geben Sie also sinnvolle und passende Werte ein.

Am Ende wird das Formular in etwa so aussehen:

GitHub Register OAuth-Anwendung

Klicken Sie auf die grüne Schaltfläche Anwendung registrieren.

Sie werden nun auf eine Seite weitergeleitet, die die Client-ID und das Clientgeheimnis enthält, die mit Ihrer neuen OAuth-Anwendung verknüpft sind. Notieren Sie sich beide Werte, da Sie sie der Hauptkonfigurationsdatei von Grafana hinzufügen müssen, um die Einrichtung abzuschließen.

Achtung: Bewahren Sie Ihre Client-ID und das Clientgeheimnis an einem sicheren, nicht öffentlichen Ort auf, da diese Daten als Grundlage für Angriffe dienen können.

Nach der Erstellung Ihrer GitHub OAuth-Anwendung können Sie Grafana nun neu konfigurieren, sodass GitHub zur Authentifizierung genutzt wird.

(Optional) Schritt 6 — Konfigurieren von Grafana als GitHub OAuth-Anwendung

Um die GitHub-Authentifizierung für Ihr Grafana-Setup zu abzuschließen, werden Sie nun einige Änderungen an Ihren Grafana-Konfigurationsdateien vornehmen.

Öffnen Sie zunächst die Grafana-Hauptkonfigurationsdatei.

  1. sudo nano /etc/grafana/grafana.ini

Suchen Sie die Überschrift [auth.github] und heben Sie die Kommentierung dieses Abschnitts auf, indem Sie das ;-Zeichen am Anfang der einzelnen Zeilen entfernen (außer bei ;allowed_domains = und ;team_ids=, die in diesem Tutorial nicht geändert werden).

Nehmen Sie als Nächstes folgende Änderungen vor:

  • Setzen Sie enabled und allow_sign_up auf true. Dadurch wird die GitHub-Authentifizierung aktiviert und Mitglieder der zugelassenen Organisation können Konten selbst erstellen. Beachten Sie, dass sich diese Einstellung von der Eigenschaft allow_sign_up unter [users] unterscheidet, die Sie in Schritt 4 geändert haben.
  • Setzen Sie client_id und client_secret auf die Werte, die Sie beim Erstellen Ihrer GitHub OAuth-Anwendung erhalten haben.
  • Verwenden Sie für allowed_organizations den Namen Ihrer Organisation, damit sich nur Mitglieder Ihrer Organisation bei Grafana registrieren und anmelden können.

Die vollständige Konfiguration wird wie folgt aussehen:

/etc/grafana/grafana.ini
...
[auth.github]
enabled = true
allow_sign_up = true
client_id = your_client_id_from_github
client_secret = your_client_secret_from_github
scopes = user:email,read:org
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
;allowed_domains =
;team_ids =
allowed_organizations = your_organization_name
...

Sie haben Grafana nun alles gesagt, was die Anwendung über GitHub wissen muss. Zum Abschließen der Einrichtung müssen Sie Umleitungen hinter einem Reverseproxy aktivieren. Dazu wird ein Wert root_url unter der Überschrift [server] festgelegt.

/etc/grafana/grafana.ini
...
[server]
root_url = https://your_domain
...

Speichern Sie Ihre Konfiguration und schließen Sie die Datei.

Starten Sie Grafana anschließend neu, um die Änderungen zu aktivieren:

  1. sudo systemctl restart grafana-server

Vergewissern Sie sich abschließend, dass der Dienst ausgeführt wird.

  1. sudo systemctl status grafana-server

Die Ausgabe wird anzeigen, dass der Dienst active (running) ist.

Testen Sie Ihr neues Authentifizierungssystem nun durch Navigieren zu https://your_domain. Wenn Sie bereits bei Grafana angemeldet sind, fahren Sie mit der Maus über das Avatar-Logo in der linken unteren Ecke des Bildschirms und klicken Sie im zweiten Menü, das neben Ihrem Namen erscheint, auf Abmelden.

Auf der Anmeldeseite sehen Sie unter der ursprünglichen Schaltfläche zum Anmelden einen neuen Bereich, der eine Schaltfläche zum Anmelden mit GitHub inklusive des GitHub-Logos enthält.

Grafana-Anmeldeseite mit GitHub

Klicken Sie auf die Schaltfläche Anmelden mit GitHub, um an GitHub weitergeleitet zu werden, wo Sie sich bei Ihrem GitHub-Konto anmelden und Ihre Absicht zum Autorisieren von Grafana bestätigen können.

Klicken Sie auf die grüne Schaltfläche your_github_organization autorisieren.

Anmerkung: Stellen Sie sicher, dass Ihr GitHub-Konto Mitglied Ihrer zugelassenen Organisation ist und Ihre Grafana-E-Mail-Adresse mit Ihrer GitHub-E-Mail-Adresse übereinstimmt. Wenn Sie versuchen, sich bei einem GitHub-Konto zu authentifizieren, das kein Mitglied Ihrer zugelassenen Organisation ist, erhalten Sie eine Meldung zu Anmeldung fehlgeschlagen, in der Ihnen Folgendes mitgeteilt wird: Benutzer kein Mitglied einer der erforderlichen Organisationen.

Sie werden nun mit Ihrem vorhandenen Grafana-Konto angemeldet. Wenn für den Benutzer, als der Sie sich angemeldet haben, noch kein Grafana-Konto vorhanden ist, wird Grafana ein neues Benutzerkonto mit Viewer-Berechtigungen erstellen, damit neue Anwender ausschließlich vorhandene Dashboards verwenden können.

Um die Standardberechtigungen für neue Benutzer zu ändern, öffnen Sie die Hauptkonfigurationsdatei von Grafana zur Bearbeitung.

  1. sudo nano /etc/grafana/grafana.ini

Suchen Sie die Direktive auto_assign_org_role unter der Überschrift [users] und heben Sie die Kommentierung der Einstellung auf, indem Sie das ;-Zeichen am Anfang der Zeile entfernen.

Setzen Sie die Direktive auf einen der folgenden Werte:

  • Viewer — kann nur vorhandene Dashboards verwenden
  • Editor — kann Dashboards verwenden, ändern und hinzufügen
  • Admin — kann alles tun

In diesem Tutorial wird die automatische Zuordnung auf Viewer gesetzt:

/etc/grafana/grafana.ini
...
[users]
...
auto_assign_org_role = Viewer
...

Sobald Sie Ihre Änderungen gespeichert haben, schließen Sie die Datei und starten Sie Grafana neu:

  1. sudo systemctl restart grafana-server

Überprüfen Sie den Status des Diensts:

  1. sudo systemctl status grafana-server

Wie zuvor wird der Status active (running) lauten.

Nun haben Sie Grafana so konfiguriert, dass Mitglieder Ihrer GitHub-Organisation Ihre Grafana-Installation registrieren und verwenden können.

Zusammenfassung

In diesem Tutorial haben Sie Grafana installiert, konfiguriert und gesichert und außerdem erfahren, wie sich Mitglieder Ihrer Organisation über GitHub authentifizieren können.

Um Ihre aktuelle Grafana-Installation zu erweitern, konsultieren Sie die Liste der offiziellen und von der Community entwickelten Dashboards und Plugins. Um mehr über die allgemeine Verwendung von Grafana zu erfahren, konsultieren Sie die offizielle Grafana-Dokumentation oder unsere anderen Überwachungsleitfäden.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors

Default avatar

Senior Technical Editor

Editor at DigitalOcean, fiction writer and podcaster elsewhere, always searching for the next good nautical pun!


Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel