Aufbau eines Überwachungssystems mit Grafana und Prometheus unter Debian 12

Grafana ist eine quelloffene und plattformübergreifende Datenvisualisierungsplattform, die von Grafana Labs entwickelt wurde. Grafana bietet eine interaktive Webanwendung zur Datenvisualisierung, die Diagramme, Grafiken und Warnmeldungen enthält. Mit Grafana kannst du Metriken, Logs und Traces der TSDB abfragen, visualisieren, Alarme einrichten und untersuchen. Es ist ein leistungsfähiges Tool, das Daten aus Zeitreihen-Datenbanken (TSDB) in aufschlussreiche Grafiken und Visualisierungen verwandelt.

In Grafana kannst du deine Zeitreihendaten über die „Datenquelle“ hinzufügen. Grafana unterstützt zahlreiche Datenquellen wie Prometheus, InfluxDB, PostgreSQL, Loki, Jaeger, Graphite, Google Cloud Monitoring, AWS CloudWatch, Azure Monitor und viele mehr.

In dieser Anleitung installierst du Grafana auf dem Debian 12 Server mit Nginx als Reverse Proxy, fügst dann Prometheus als Datenquelle hinzu und konfigurierst das Grafana Dashboard für die Systemüberwachung.

Voraussetzungen

Bevor du fortfährst, solltest du sicherstellen, dass du Folgendes hast:

Hinzufügen des Grafana-Repositorys

In dieser Anleitung wirst du Grafana über das offizielle Grafana-Repository installieren. Dazu musst du das Grafana-Repository zu deinem Debian-Server hinzufügen.

Um loszulegen, führe den folgenden Befehl aus, um die grundlegenden Abhängigkeiten auf deinem Debian-Rechner zu installieren.

sudo apt install gnupg2 apt-transport-https software-properties-common wget

Basisdepots installieren

Füge nun den Grafana GPG-Schlüssel und das Repository hinzu, indem du den folgenden Befehl ausführst.

curl -fsSL https://packages.grafana.com/gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/grafana.gpg
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/grafana.gpg] https://packages.grafana.com/oss/deb stable main' | sudo tee /etc/apt/sources.list.d/grafana.list

Aktualisiere zum Schluss deinen Debian-Paketindex, um die Änderungen zu übernehmen.

sudo apt update

Setup-Repo

Grafana installieren

Nachdem du nun das Grafana-Repository hinzugefügt hast, installierst du Grafana über APT. Anschließend konfigurierst du den Administrator-Benutzer und das Passwort für deine Grafana-Installation.

Installiere Grafana mit folgendem Befehl auf deinem Debian-System. Gib y ein, um mit der Installation fortzufahren.

sudo apt install grafana

grafana installieren

Nachdem die Installation abgeschlossen ist, lädst du den systemd Manager neu, indem du den folgenden Befehl ausführst.

sudo systemctl daemon-reload

Starte und aktiviere dann den grafana-server Dienst mit dem folgenden Befehl.

sudo systemctl start grafana-server
sudo systemctl enable grafana-server

start enable grafana

Sobald der grafana-server läuft, überprüfe ihn mit dem unten stehenden Befehl. Wenn alles gut läuft, solltest du sehen, dass der grafana-server aktiviert ist und läuft.

sudo systemctl status grafana-server

Grafana überprüfen

Starte deinen Webbrowser und rufe die IP-Adresse deines Servers mit dem Standard-Grafana-Port 3000 auf, zum Beispiel http://192.168.5.20:3000/.

Gib den Standardbenutzer admin und das Passwort admin ein und klicke dann auf Login.

Anmeldung graphana

Ändere nun das Standardpasswort admin durch ein neues Passwort. Klicke dann zur Bestätigung auf Absenden.

Admin-Passwort ändern

Wenn der Vorgang abgeschlossen ist, solltest du das Grafana-Dashboard wie folgt sehen:

grafana dashboard

Grafana konfigurieren

Wenn du Grafana installiert hast, musst du im nächsten Schritt Grafana konfigurieren, indem du die Standardkonfiguration /etc/grafana/grafana.ini änderst und http_addr auf localhost, http_port auf 3000 und die Domain mit einem lokalen Domainnamen grafana.hwdomain.io einrichtest.

Öffne die Standardkonfiguration von Grafana /etc/grafana/grafana.ini mit dem folgenden Befehl des nano Editors.

sudo nano /etc/grafana/grafana.ini

Ändere die Standardkonfiguration mit den folgenden Zeilen. In diesem Beispiel wirst du Grafana auf localhost und mit dem lokalen Domainnamen grafana.hwdomain.io ausführen.

[server]
# The IP address to bind to, empty will bind to all interfaces
http_addr = localhost
# The http port  to use
http_port = 3000

# The public facing domain name used to access grafana from a browser
domain = grafana.hwdomain.io

Wenn du fertig bist, speichere und beende die Datei.

Führe nun den folgenden systemctl-Befehl aus, um den grafana-Server neu zu starten und die Änderungen zu übernehmen. Damit läuft deine Grafana-Installation nur noch auf localhost.

sudo systemctl restart grafana-server

Installation von Nginx als Reverse Proxy

In dieser Anleitung wirst du Grafana mit Nginx als Reverse Proxy betreiben. Führe nun die folgenden Aufgaben aus, um Nginx als Reverse Proxy für deine Grafana-Installation zu installieren und zu konfigurieren.

Führe den folgenden Befehl aus, um den Nginx-Webserver auf deinem Debian-Rechner zu installieren. Gib y ein, um mit der Installation fortzufahren.

sudo apt install nginx

nginx installieren

Nachdem Nginx installiert ist, führe den folgenden nano-Editor-Befehl aus, um eine neue Serverblockdatei /etc/nginx/sites-available/grafana.conf zu erstellen.

sudo nano /etc/nginx/sites-available/grafana.conf

Füge die folgende Konfiguration ein und achte darauf, dass du den Domainnamen im Parameter server_name änderst.

# This is required to proxy Grafana Live WebSocket connections.
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}
server {
listen      80;
server_name grafana.hwdomain.io;

root /usr/share/nginx/html;
index index.html index.htm;

access_log /var/log/nginx/grafana-access.log;
error_log /var/log/nginx/grafana-error.log;

location / {
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000/;
}

# Proxy Grafana Live WebSocket connections.
location /api/live {
rewrite  ^/(.*)  /$1 break;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000/;
}
}

Speichere und schließe die Datei, wenn du fertig bist.

Führe anschließend den folgenden Befehl aus, um die Serverblockdatei /etc/nginx/sites-available/grafana.conf zu aktivieren. Überprüfe dann deine Nginx-Syntax, um sicherzustellen, dass du die richtige Syntax hast.

sudo ln -s /etc/nginx/sites-available/grafana.conf /etc/nginx/sites-enabled/
sudo nginx -t

Wenn du die richtige Nginx-Syntax hast, solltest du die Ausgabe„test is successful – syntax is ok“ erhalten.

nginx Reverse Proxy einrichten

Lasy, führe den folgenden systemctl-Befehl aus, um den Nginx-Dienst neu zu starten und die Änderungen zu übernehmen. Überprüfe dann Nginx, um sicherzustellen, dass der Dienst läuft.

sudo systemctl restart nginx
sudo systemctl status nginx

In der folgenden Ausgabe solltest du sehen, dass der Nginx-Dienst läuft.

nginx prüfen

Um auf deinen Grafana-Server zuzugreifen, kannst du die Datei /etc/hosts auf deinem lokalen Rechner ändern, wenn du ein Linux- oder MacOS-Benutzer bist. Für Windows-Nutzer bearbeitest du die Datei C:\Windows\System32\drivers\etc\hosts als Verwaltung.

Gib die folgende Konfiguration in die Datei ein.

192.168.5.15    grafana.hwdomain.io

Speichere und schließe die Datei, wenn du fertig bist.

Gehe nun zurück zum Webbrowser und besuche deinen lokalen Domainnamen für den Grafana-Server, z.B. http://grafana.hwdomain.io/. Wenn deine Konfiguration erfolgreich ist, wirst du zur Grafana-Login-Seite weitergeleitet.

Melde dich mit deinem Admin-Benutzer und deinem Passwort an und klicke dann zur Bestätigung auf Login.

grafana Anmeldung

Jetzt solltest du das Grafana Admin-Dashboard erhalten.

Admin-Dashboard

Hinzufügen der Authentifizierung zum Prometheus-Server

Bevor du Prometheus zu Grafana hinzufügst, richtest du die Basisauthentifizierung für Prometheus ein. Du generierst das Passwort für die Basisauthentifizierung mit apache2-utils und aktivierst dann basic_auth für den Prometheus-Server.

In diesem Beispiel sind Prometheus und Node Exporter auf verschiedenen Servern mit der IP-Adresse 192.168.5.15 und dem Hostnamen prometheus installiert.

Melde dich auf dem Prometheus-Server an und installiere das Paket apache2-utils mit dem unten stehenden apt-Befehl.

sudo apt install apache2-utils -y

apache2-utils installieren

Danach generierst du das neue Passwort für die Prometheus-Basisauthentifizierung. Gib dein Passwort ein und kopiere das generierte Passwort auf deinen Zettel.

htpasswd -nB promadmin

Passwort generieren

Erstelle nun eine neue Prometheus-Konfiguration /etc/prometheus/web.yml mit dem folgenden nano-Editor-Befehl.

sudo nano /etc/prometheus/web.yml

Füge die folgende Konfiguration hinzu, um das Prometheus-Administrations-Dashboard mit dem Modul basic_auth zu sichern.

# basic_auth
basic_auth_users:
  promadmin: $2y$05$UlvHd4An.oQRt2UdUXzr9eZ6ShRLe3xYbMhw8ePfvGeLuu0khO4Bu

Speichere und schließe die Datei, wenn du fertig bist.

Als Nächstes öffnest du die Standard-Prometheus-Konfiguration /etc/prometheus/prometheus.yml mit dem folgenden nano-Editor-Befehl.

sudo nano /etc/prometheus/prometheus.yml

Füge die folgende basic_auth-Konfiguration in den Prometheus-Job ein. Achte darauf, dass du die Details Benutzer und Passwort mit deinen Daten änderst.

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
# Add settings for certificate and authentication
scheme: http
basic_auth:
username: 'promadmin'
password: 'password'

Speichere und schließe die Datei, wenn du fertig bist.

basic_auth hinzufügen

Als Nächstes führst du den folgenden Befehl aus, um die Prometheus-Dienstdatei zu bearbeiten.

sudo systemctl edit --full prometheus

Ändere die Standardoption ExecStart wie folgt.

ExecStart=/usr/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --web.config.file=/etc/prometheus/web.yml

Speichere und schließe die Datei, wenn du fertig bist.

change ExecStart

Führe nun den folgenden systemctl-Befehl aus, um den systemd manager neu zu laden und die Änderungen zu übernehmen. Starten Sie anschließend den prometheus-Dienst neu.

sudo systemctl daemon-reload
sudo systemctl restart prometheus

Überprüfe den prometheus-Dienst mit dem folgenden Befehl.

sudo systemctl status prometheus

Im Abschnitt ExecStart hat sich der Befehl wie folgt geändert.

prometheus prüfen

Zuletzt öffnest du deinen Webbrowser und rufst die IP-Adresse von Prometheus mit Port 9090 auf (z.B.: http://192.168.10.15:9090/). Du wirst aufgefordert, die Prometheus basic_auth einzugeben. Gib deinen Admin-Benutzer und dein Passwort ein und klicke dann auf Sign In.

Anmeldung prometheus

Wenn deine Konfiguration erfolgreich ist, solltest du das Prometheus-Dashboard wie folgt sehen.

prometheus dashboard

Integration von Prometheus mit dem Grafana Dashboard

Nachdem du die Basisauthentifizierung in Prometheus konfiguriert hast, kannst du Prometheus als Datenquelle zum Grafana Dashboard hinzufügen. Du musst zwei Schritte ausführen: Prometheus als Datenquelle hinzufügen und dann ein Grafana-Dashboard für deine Systemüberwachung importieren oder erstellen.

Hinzufügen der Prometheus-Datenquelle

Gehe zurück zum Grafana Dashboard, klicke auf das Menü Verbindungen und wähle Datenquelle.

Verbindung Datenquelle

Klicke auf Datenquelle hinzufügen, um fortzufahren.

Datenquelle hinzufügen

Wähle die Zeitreihen-Datenbank Prometheus aus.

prometheus Datenquelle hinzufügen

Gib den Namen der neuen Datenquelle und den Prometheus-Host auf http://192.168.5.15:9090/ ein. Wähle im Abschnitt Authentifizierung die Option Basisauthentifizierung und gib den Benutzernamen und das Passwort für Prometheus ein.

prometheus Datenquelle einrichten

Scrolle nach unten und klicke zur Bestätigung auf Speichern & testen. Die Ausgabe„Successfully queried the Prometheus API.“ bestätigt, dass Prometheus zu Grafana hinzugefügt wurde.

prometheus hinzufügen

Importieren der Dashboard-Überwachung

Klicke auf das + Menü oben rechts und wähle Dashboard importieren.

Datenbank importieren

Finde dein gewünschtes Dashboard unter https://grafana.com/grafana/dashboards/. Kopiere die Dashboard-ID, füge sie ein und bestätige mit Laden. In diesem Fall verwenden wir die Dashboard-ID 15172.

Dashboard laden

Gib den Namen des Dashboards ein und wähle die Prometheus-Datenquelle aus. Klicke dann zur Bestätigung auf Importieren.

Dashboard importieren

Unten siehst du ein Beispiel für das verbesserte Grafana Dashboard mit Prometheus zur Überwachung des Systems.

Dashboard importiert

Du hast Grafana nun erfolgreich auf einem Debian 12 Server mit Nginx als Reverse Proxy installiert, Prometheus als Datenquelle zu Grafana hinzugefügt und das Grafana Dashboard zur Systemüberwachung importiert.

Das könnte dich auch interessieren …