So installieren und sichern Sie Grafana unter Ubuntu 18.04

Der Autor hatDev Color ausgewählt, um eine Spende im Rahmen desWrite for DOnations-Programms zu erhalten.

Einführung

Grafana ist ein Open-Source-Tool zur Datenvisualisierung und -überwachung, das komplexe Daten aus Quellen wiePrometheus,InfluxDB,Graphite undElasticSearch integriert. Mit Grafana können Sie Warnmeldungen, Benachrichtigungen und Ad-hoc-Filter für Ihre Daten erstellen und die Zusammenarbeit mit Ihren Teammitgliedern durch integrierte Freigabefunktionen vereinfachen.

In diesem Tutorial installieren Sie Grafana und sichern es mitSSL certificate undNginx reverse proxy. Sobald Sie Grafana eingerichtet haben, können Sie die Benutzerauthentifizierung über GitHub konfigurieren und so Ihre Teamberechtigungen besser organisieren.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

[[Schritt-1 - Installation von Grafana]] == Schritt 1 - Grafana installieren

In diesem ersten Schritt installieren Sie Grafana auf Ihrem Ubuntu 18.04-Server. Sie können Grafana entweder nachdownloading it directly from its official website oder nachAPT repository installieren. Da ein APT-Repository die Installation und Verwaltung der Grafana-Updates vereinfacht, wenden Sie diese Methode in diesem Lernprogramm an.

Obwohl Grafana inthe official Ubuntu 18.04 packages repository verfügbar ist, ist die dortige Version von Grafana möglicherweise nicht die neueste. Verwenden Sie daher das offizielle Repository von Grafana.

Laden Sie die GrafanaGPG key mitwget herunter, dannpipe the output bisapt-key. Dadurch wird der Schlüssel zur Liste der vertrauenswürdigen Schlüssel in Ihrer APT-Installation hinzugefügt, sodass Sie das mit GPG signierte Grafana-Paket herunterladen und überprüfen können.

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

In diesem Befehl deaktiviert die Option-q die Statusaktualisierungsnachricht fürwget und-O gibt die Datei aus, die Sie auf das Terminal heruntergeladen haben. Diese beiden Optionen stellen sicher, dass nur der Inhalt der heruntergeladenen Datei anapt-key weitergeleitet wird.

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

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

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

sudo apt update

Stellen Sie als Nächstes sicher, dass Grafana aus dem Grafana-Repository installiert wird:

apt-cache policy grafana

Die Ausgabe des vorherigen Befehls informiert Sie über die Version von Grafana, die Sie installieren möchten, und darüber, von wo Sie das Paket abrufen werden. Stellen Sie sicher, dass der Installationskandidat oben in der Liste umhttps://packages.grafana.com/oss/deb aus dem offiziellen Grafana-Repository stammt.

Output of apt-cache policy grafanagrafana:
  Installed: (none)
  Candidate: 6.3.3
  Version table:
     6.3.3 500
        500 https://packages.grafana.com/oss/deb stable/main amd64 Packages
...

Sie können nun mit der Installation fortfahren:

sudo apt install grafana

Verwenden Sie nach der Installation von Grafanasystemctl, um den Grafana-Server zu starten:

sudo systemctl start grafana-server

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

sudo systemctl status grafana-server

Sie erhalten eine Ausgabe ähnlich der folgenden:

Output of grafana-server status● grafana-server.service - Grafana instance
   Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-08-13 08:22:30 UTC; 11s ago
     Docs: http://docs.grafana.org
 Main PID: 13630 (grafana-server)
    Tasks: 7 (limit: 1152)
...

Diese Ausgabe enthält Informationen zum Grafana-Prozess, einschließlich Status, Hauptprozess-ID (PID) und mehr. active (running) zeigt an, dass der Prozess korrekt ausgeführt wird.

Aktivieren Sie zuletzt den Dienst, um Grafana beim Booten automatisch zu starten:

sudo systemctl enable grafana-server

Sie erhalten folgende Ausgabe:

Output of systemctl enable grafana-serverSynchronizing 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.

Dies bestätigt, dasssystemd die erforderlichen symbolischen Verknüpfungen zum Autostart Grafana erstellt hat.

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

[[Schritt-2 -—- Einrichten des Reverse-Proxys]] == Schritt 2 - Einrichten des Reverse-Proxys

Durch die Verwendung eines SSL-Zertifikats wird die Sicherheit Ihrer Daten sichergestellt, indem die Verbindung zu und von Grafana verschlüsselt wird. Um diese Verbindung nutzen zu können, müssen Sie zunächst Nginx als Reverse-Proxy für Grafana neu konfigurieren.

Öffnen Sie die Nginx-Konfigurationsdatei, die Sie beim Einrichten des Nginx-Serverblocks mit Let's Encrypt inPrerequisites erstellt haben. Sie können jeden Texteditor verwenden, aber für dieses Tutorial verwenden wirnano:

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

Suchen Sie den folgenden Block:

/etc/nginx/sites-available/your_domain

...
    location / {
        try_files $uri $uri/ =404;
    }
...

Da Sie Nginx bereits für die Kommunikation über SSL konfiguriert haben und der gesamte Webverkehr zu Ihrem Server bereits über Nginx erfolgt, müssen Sie Nginx lediglich anweisen, alle Anforderungen an Grafana weiterzuleiten, das standardmäßig auf Port3000ausgeführt wird.

Löschen Sie die vorhandene Zeiletry_files in dieser Zeilelocation block und ersetzen Sie sie durch die folgende Optionproxy_pass.

/etc/nginx/sites-available/your_domain

...
    location / {
        proxy_pass http://localhost:3000;
    }
...

Dadurch wird der Proxy dem entsprechenden Port zugeordnet. Wenn Sie fertig sind, speichern und schließen Sie die Datei, indem SieCTRL+X drücken, gefolgt vonY undENTER, wenn Sienano verwenden.

Testen Sie nun die neuen Einstellungen, um sicherzustellen, dass alles richtig konfiguriert ist:

sudo nginx -t

Sie erhalten folgende Ausgabe:

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

Aktivieren Sie zum Schluss die Änderungen, indem Sie Nginx neu laden:

sudo systemctl reload nginx

Sie können jetzt auf den Standard-Grafana-Anmeldebildschirm zugreifen, indem Sie Ihren Webbrowser aufhttps://your_domain richten. Wenn Sie Grafana nicht erreichen können, überprüfen Sie, ob Ihre Firewall so eingestellt ist, dass Datenverkehr auf Port443zugelassen wird, und verfolgen Sie dann die vorherigen Anweisungen erneut.

Wenn die Verbindung zu Grafana verschlüsselt ist, können Sie jetzt zusätzliche Sicherheitsmaßnahmen implementieren, beginnend mit dem Ändern der standardmäßigen administrativen Anmeldeinformationen von Grafana.

[[Schritt 3 - Aktualisieren der Anmeldeinformationen]] == Schritt 3 - Aktualisieren der Anmeldeinformationen

Da bei jeder Grafana-Installation standardmäßig dieselben Administratoranmeldeinformationen verwendet werden, empfiehlt es sich, Ihre Anmeldeinformationen so bald wie möglich zu ändern. In diesem Schritt aktualisieren Sie die Anmeldeinformationen, um die Sicherheit zu verbessern.

Navigieren Sie zunächst von Ihrem Webbrowser zuhttps://your_domain. Daraufhin wird der Standard-Anmeldebildschirm angezeigt, auf dem das Grafana-Logo angezeigt wird. In diesem Formular werden Sie aufgefordert,email or username undpassword,Log in undForgot your password?einzugeben. s Link.

Grafana Login

Geben Sieadmin in die FelderUser undPasswordein und klicken Sie dann auf die SchaltflächeLog in.

Auf dem nächsten Bildschirm werden Sie aufgefordert, Ihr Konto durch Ändern des Standardkennworts sicherer zu machen:

Change Password

Geben Sie das Passwort, das Sie verwenden möchten, in die FelderNew password undConfirm new passwordein.

Von hier aus können Sie aufSave klicken, um die neuen Informationen zu speichern, oderSkip drücken, um diesen Schritt zu überspringen. Wenn Sie überspringen, werden Sie beim nächsten Anmelden aufgefordert, das Kennwort zu ändern.

Klicken Sie aufSave, um die Sicherheit Ihres Grafana-Setups zu erhöhen. Sie kehren zur SeiteHome Dashboardzurück:

Home Dashboard

Sie haben Ihr Konto jetzt durch Ändern der Standardanmeldeinformationen gesichert. Als Nächstes nehmen Sie Änderungen an Ihrer Grafana-Konfiguration vor, sodass niemand ohne Ihre Erlaubnis ein neues Grafana-Konto erstellen kann.

[[Schritt-4 - Deaktivieren von Grafana-Registrierungen und anonymem Zugriff]] == Schritt 4 - Deaktivieren von Grafana-Registrierungen und anonymem Zugriff

Grafana bietet Optionen, mit denen Besucher Benutzerkonten für sich selbst erstellen und Dashboards in der Vorschau anzeigen können, ohne sich registrieren zu müssen. Wenn Grafana nicht über das Internet erreichbar ist oder mit öffentlich verfügbaren Daten wie dem Servicestatus arbeitet, können Sie diese Funktionen zulassen. Wenn Sie jedoch Grafana online verwenden, um mit vertraulichen Daten zu arbeiten, kann der anonyme Zugriff ein Sicherheitsproblem darstellen. Nehmen Sie einige Änderungen an Ihrer Grafana-Konfiguration vor, um dieses Problem zu beheben.

Öffnen Sie zunächst die Hauptkonfigurationsdatei von Grafana zum Bearbeiten:

sudo nano /etc/grafana/grafana.ini

Suchen Sie die folgendeallow_sign_up-Direktive unter der Überschrift[users]:

/etc/grafana/grafana.ini

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

Durch Aktivieren dieser Anweisung mittrue wird dem Anmeldebildschirm eine SchaltflächeSign Up hinzugefügt, mit der Benutzer sich registrieren und auf Grafana zugreifen können.

Durch Deaktivieren dieser Anweisung mitfalse wird die SchaltflächeSign Up entfernt und die Sicherheit und Privatsphäre von Grafana erhöht.

Kommentieren Sie diese Anweisung aus, indem Sie; am Zeilenanfang entfernen und dann die Option auffalse setzen:

/etc/grafana/grafana.ini

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

Suchen Sie als Nächstes die folgende Direktiveenabled unter der Überschrift[auth.anonymous]:

/etc/grafana/grafana.ini

...
[auth.anonymous]
# enable anonymous access
;enabled = false
...

Wenn Sieenabled auftrue setzen, erhalten nicht registrierte Benutzer Zugriff auf Ihre Dashboards. Wenn Sie diese Option auffalse setzen, wird der Dashboard-Zugriff nur für registrierte Benutzer eingeschränkt.

Kommentieren Sie diese Anweisung aus, indem Sie; am Zeilenanfang entfernen und dann die Option auffalse setzen.

/etc/grafana/grafana.ini

...
[auth.anonymous]
enabled = false
...

Speichern Sie die Datei und beenden Sie Ihren Texteditor.

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

sudo systemctl restart grafana-server

Überprüfen Sie, ob alles funktioniert, indem Sie den Servicestatus von Grafana überprüfen:

sudo systemctl status grafana-server

Wie zuvor wird in der Ausgabe angegeben, dass Grafanaactive (running) ist.

Zeigen Sie nun mit Ihrem Webbrowser aufhttps://your_domain. Um zum BildschirmSign Upzurückzukehren, bewegen Sie den Cursor zu Ihrem Avatar unten links auf dem Bildschirm und klicken Sie auf die angezeigte OptionSign out.

Vergewissern Sie sich nach dem Abmelden, dass keineSign Up-Schaltfläche vorhanden ist und dass Sie sich nicht anmelden können, ohne Anmeldeinformationen einzugeben.

Zu diesem Zeitpunkt ist Grafana vollständig konfiguriert und einsatzbereit. Als Nächstes können Sie den Anmeldevorgang für Ihr Unternehmen vereinfachen, indem Sie sich über GitHub authentifizieren.

[[optional-step-5 -—- Einrichten einer Github-Oauth-App]] == (Optional) Schritt 5 - Einrichten einer GitHub OAuth-App

Als Alternative zur Anmeldung können Sie Grafana für die Authentifizierung über GitHub konfigurieren, wodurch allen Mitgliedern autorisierter GitHub-Organisationen der Login-Zugang gewährt wird. Dies kann besonders nützlich sein, wenn Sie mehreren Entwicklern die Möglichkeit geben möchten, zusammenzuarbeiten und auf Messdaten zuzugreifen, ohne Grafana-spezifische Anmeldeinformationen erstellen zu müssen.

Melden Sie sich zunächst bei einem GitHub-Konto an, das Ihrer Organisation zugeordnet ist, und navigieren Sie dann unterhttps://github.com/settings/profile zu Ihrer GitHub-Profilseite.

Klicken Sie im Navigationsmenü auf der linken Seite des Bildschirms unterOrganization settingsauf den Namen Ihrer Organisation.

GitHub Organization settings

Auf dem nächsten Bildschirm sehen Sie IhreOrganization profile, in denen Sie Einstellungen wieOrganization display name, OrganisationEmail und OrganisationURL ändern können.

Da GrafanaOAuth verwendet - einen offenen Standard, um Remote-Drittanbietern Zugriff auf lokale Ressourcen zu gewähren -, um Benutzer über GitHub zu authentifizieren, müssen Sie neueOAuth application within GitHub erstellen.

Klicken Sie unten links auf dem Bildschirm unterDeveloper settings auf den LinkOAuth Apps.

Wenn Sie auf GitHub noch keine OAuth-Anwendungen mit Ihrer Organisation verknüpft haben, wird Ihnen mitgeteilt, dassNo Organization Owned Applicationsvorhanden sind. Andernfalls wird eine Liste der OAuth-Anwendungen angezeigt, die bereits mit Ihrem Konto verbunden sind.

Klicken Sie auf die SchaltflächeRegister an application, um fortzufahren.

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

  • Application name - Auf diese Weise können Sie Ihre verschiedenen OAuth-Anwendungen voneinander unterscheiden.

  • Homepage URL - Hiermit wird GitHub mitgeteilt, wo Grafana zu finden ist. Geben Siehttps://your_domain in dieses Feld ein und ersetzen Sieyour_domain durch Ihre Domain.

  • Application Description - Hier finden Sie eine Beschreibung des Zwecks Ihrer OAuth-Anwendung.

  • Application callback URL - Dies ist die Adresse, an die Benutzer nach erfolgreicher Authentifizierung gesendet werden. Für Grafana muss dieses Feld aufhttps://your_domain/login/github gesetzt sein.

Beachten Sie, dass Grafana-Benutzer, die sich über GitHub anmelden, die Werte sehen, die Sie in den ersten drei vorhergehenden Feldern eingegeben haben. Geben Sie also unbedingt etwas Sinnvolles und Angemessenes ein.

Wenn Sie fertig sind, sieht das Formular folgendermaßen aus:

GitHub Register OAuth Application

Klicken Sie auf die grüne SchaltflächeRegister application.

Sie werden nun zu einer Seite weitergeleitet, die dieClient ID undClient Secret enthält, die Ihrer neuen OAuth-Anwendung zugeordnet sind. Notieren Sie sich beide Werte, da Sie sie zur Hauptkonfigurationsdatei von Grafana hinzufügen müssen, um die Einrichtung abzuschließen.

[.warning] #Warning: Bewahren Sie IhreClient ID undClient Secret an einem sicheren und nicht öffentlichen Ort auf, da sie als Grundlage für einen Angriff verwendet werden können.
) s #

Nachdem Sie Ihre GitHub-OAuth-Anwendung erstellt haben, können Sie Grafana jetzt für die Verwendung von GitHub zur Authentifizierung neu konfigurieren.

[[optionaler Schritt 6 - Konfigurieren von Grafana als Github-Oauth-App]] == (Optional) Schritt 6 - Konfigurieren von Grafana als GitHub OAuth-App

Um die GitHub-Authentifizierung für Ihr Grafana-Setup abzuschließen, nehmen Sie jetzt einige Änderungen an Ihren Grafana-Konfigurationsdateien vor.

Öffnen Sie zunächst die Grafana-Hauptkonfigurationsdatei.

sudo nano /etc/grafana/grafana.ini

Suchen Sie die Überschrift[auth.github] und kommentieren Sie diesen Abschnitt aus, indem Sie die; am Anfang jeder Zeile entfernen, mit Ausnahme von;team_ids=, die in diesem Lernprogramm nicht geändert werden.

Konfigurieren Sie Grafana als Nächstes so, dass GitHub mit den Wertenclient_id undclient_secretIhrer OAuth-Anwendung verwendet wird.

  • Setzen Sieenabled undallow_sign_up auftrue. Dadurch wird die GitHub-Authentifizierung aktiviert und es wird Mitgliedern der zulässigen Organisation ermöglicht, selbst Konten zu erstellen. Beachten Sie, dass sich diese Einstellung von der Eigenschaftallow_sign_upunter[users]unterscheidet, die Sie inStep 4geändert haben.

  • Setzen Sieclient_id undclient_secret auf die Werte, die Sie beim Erstellen Ihrer GitHub OAuth-Anwendung erhalten haben.

  • Setzen Sieallowed_organizations auf den Namen Ihrer Organisation, um sicherzustellen, dass sich nur Mitglieder Ihrer Organisation anmelden und bei Grafana anmelden können.

Die vollständige Konfiguration sieht folgendermaßen aus:

/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
;team_ids =
allowed_organizations = your_organization_name
...

Sie haben Grafana jetzt alles gesagt, was es über GitHub wissen muss. Um die Einrichtung abzuschließen, müssen Sie Umleitungen hinter einem Reverse-Proxy aktivieren. Dies erfolgt durch Setzen eines Wertes vonroot_urlunter der Überschrift[server].

/etc/grafana/grafana.ini

...
[server]
root_url = https://your_domain
...

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

Starten Sie dann Grafana neu, um die Änderungen zu aktivieren:

sudo systemctl restart grafana-server

Stellen Sie zum Schluss sicher, dass der Dienst ausgeführt wird.

sudo systemctl status grafana-server

Die Ausgabe zeigt an, dass der Dienstactive (running) ist.

Testen Sie jetzt Ihr neues Authentifizierungssystem, indem Sie zuhttps://your_domain navigieren. Wenn Sie bereits bei Grafana angemeldet sind, bewegen Sie die Maus über das Avatar-Protokoll in der unteren linken Ecke des Bildschirms und klicken Sie im sekundären Menü neben Ihrem Namen aufSign out.

Auf der Anmeldeseite sehen Sie einen neuen Abschnitt unter der ursprünglichen SchaltflächeLog in, der eine SchaltflächeSign in with GitHub mit dem GitHub-Logo enthält.

Grafana Login page with GitHub

Klicken Sie auf die SchaltflächeSign in with GitHub, um zu GitHub umgeleitet zu werden. Dort melden Sie sich bei Ihrem GitHub-Konto an und bestätigen Ihre Absicht beiAuthorize Grafana.

Klicken Sie auf die grüne SchaltflächeAuthorize your_github_organization.

[.note] #Note: Stellen Sie sicher, dass Ihr GitHub-Konto Mitglied Ihrer genehmigten 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 nicht Mitglied Ihrer genehmigten Organisation ist, erhalten Sie eineLogin Failed-Nachricht mit der MeldungUser not a member of one of the required organizations.
#

Sie werden nun mit Ihrem bestehenden Grafana-Konto angemeldet. Wenn für den Benutzer, als den Sie angemeldet sind, noch kein Grafana-Konto vorhanden ist, erstellt Grafana ein neues Benutzerkonto mit den BerechtigungenViewer, um sicherzustellen, dass neue Benutzer nur vorhandene Dashboards verwenden können.

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

sudo nano /etc/grafana/grafana.ini

Suchen Sie die Direktiveauto_assign_org_role unter der Überschrift[users] und kommentieren Sie die Einstellung aus, indem Sie; am Zeilenanfang entfernen.

Setzen Sie die Direktive auf einen der folgenden Werte:

  • Viewer - kann nur vorhandene Dashboards verwenden

  • Editor - kann die Verwendung ändern, Dashboards ändern und hinzufügen

  • Admin - hat die Erlaubnis, alles zu tun

In diesem Tutorial wird die automatische Zuweisung aufViewer gesetzt:

/etc/grafana/grafana.ini

...
[users]
...
auto_assign_org_role = Viewer
...

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

sudo systemctl restart grafana-server

Überprüfen Sie den Status des Dienstes:

sudo systemctl status grafana-server

Wie zuvor lautet der Statusactive (running).

Zu diesem Zeitpunkt haben Sie Grafana vollständig konfiguriert, damit sich Mitglieder Ihrer GitHub-Organisation registrieren und Ihre Grafana-Installation verwenden können.

Fazit

In diesem Lernprogramm haben Sie Grafana installiert, konfiguriert und gesichert und erfahren, wie Sie es Mitgliedern Ihrer Organisation ermöglichen, sich über GitHub zu authentifizieren.

Informationen zum Erweitern Ihrer aktuellen Grafana-Installation finden Sie unterlist of official and community-built dashboards. Weitere Informationen zur Verwendung von Grafana im Allgemeinen finden Sie unterofficial Grafana documentation oder inother monitoring tutorials.