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:
- Einen Debian 12 Server für die Installation von Grafana.
- Einen Debian 12-Server mit installiertem Prometheus und Node Exporter – So installierst du Prometheus und Node Exporter auf Debian 12.
- Ein Nicht-Root-Benutzer mit sudo-Administrator-Rechten.
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
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
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
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
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
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.
Ändere nun das Standardpasswort admin durch ein neues Passwort. Klicke dann zur Bestätigung auf Absenden.
Wenn der Vorgang abgeschlossen ist, solltest du das Grafana-Dashboard wie folgt sehen:
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
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.
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.
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.
Jetzt solltest du das Grafana Admin-Dashboard erhalten.
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
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
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.
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.
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.
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.
Wenn deine Konfiguration erfolgreich ist, solltest du das Prometheus-Dashboard wie folgt sehen.
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.
Klicke auf Datenquelle hinzufügen, um fortzufahren.
Wähle die Zeitreihen-Datenbank Prometheus aus.
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.
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.
Importieren der Dashboard-Überwachung
Klicke auf das + Menü oben rechts und wähle Dashboard 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.
Gib den Namen des Dashboards ein und wähle die Prometheus-Datenquelle aus. Klicke dann zur Bestätigung auf Importieren.
Unten siehst du ein Beispiel für das verbesserte Grafana Dashboard mit Prometheus zur Überwachung des Systems.
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.