Prometheus, Node Exporter und Grafana unter Debian oder Ubuntu einrichten
Schritt-für-Schritt-Anleitung zum Aufbau eines Monitoring-Stacks auf einem Debian-/Ubuntu-Server. Die unten verwendeten Versionen sind die zum Zeitpunkt des Schreibens aktuellen stabilen Stände (August 2026): Prometheus 3.13.1, Node Exporter 1.12.1, Grafana 13.1.1. Prüfen Sie die Release-Seiten, bevor Sie loslegen, falls es inzwischen neuere gibt.
- Prometheus-Releases: https://github.com/prometheus/prometheus/releases
- Node-Exporter-Releases: https://github.com/prometheus/node_exporter/releases
- Grafana-Releases: https://grafana.com/grafana/download
Architektur
+----------------+ scrapes :9100 +----------------+
| Node Exporter | <---------------- | Prometheus |
| :9100 | | :9090 |
+----------------+ +--------+-------+
|
| PromQL queries :9090
v
+----------------+
| Grafana |
| :3000 |
+----------------+
|
v
Browser / userVoraussetzungen
- Ein Debian- oder Ubuntu-Server mit sudo-Zugriff
curlundtarinstalliert- Die Ports 9090 (Prometheus), 9100 (Node Exporter) und 3000 (Grafana) in der Firewall offen, falls Sie aus der Ferne zugreifen
Teil 1: Prometheus installieren
Schritt 1: den Systembenutzer prometheus anlegen
sudo useradd --no-create-home --shell /bin/false prometheusSchritt 2: Verzeichnisse anlegen
sudo mkdir -p /etc/prometheus /var/lib/prometheusSchritt 3: Prometheus herunterladen
cd /tmp
curl -LO https://github.com/prometheus/prometheus/releases/download/v3.13.1/prometheus-3.13.1.linux-amd64.tar.gz
tar -xvf prometheus-3.13.1.linux-amd64.tar.gzSchritt 4: die Binaries installieren
sudo cp prometheus-3.13.1.linux-amd64/prometheus /usr/local/bin/
sudo cp prometheus-3.13.1.linux-amd64/promtool /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/prometheus /usr/local/bin/promtoolSchritt 5: Konsolenvorlagen installieren und Besitzrechte setzen
sudo cp -r prometheus-3.13.1.linux-amd64/consoles /etc/prometheus
sudo cp -r prometheus-3.13.1.linux-amd64/console_libraries /etc/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheusSchritt 6: die Konfigurationsdatei anlegen
sudo tee /etc/prometheus/prometheus.yml > /dev/null <<EOF
global:
scrape_interval: 10s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
EOFDer Scrape-Job für Node Exporter kommt in Teil 3 dazu, sobald er installiert ist.
Schritt 7: den systemd-Dienst anlegen
sudo tee /etc/systemd/system/prometheus.service > /dev/null <<EOF
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \\
--config.file=/etc/prometheus/prometheus.yml \\
--storage.tsdb.path=/var/lib/prometheus \\
--web.console.templates=/etc/prometheus/consoles \\
--web.console.libraries=/etc/prometheus/console_libraries \\
--storage.tsdb.retention.time=365d
ExecReload=/bin/kill -HUP \$MAINPID
[Install]
WantedBy=multi-user.target
EOFExecReload sorgt dafür, dass systemctl reload prometheus in Teil 3 funktioniert. Ohne das verweigert systemd das Neuladen mit "Job type reload is not applicable", und Ihnen bleibt nur ein vollständiger Neustart. Achten Sie auf den Backslash in \$MAINPID: dieses Heredoc steht ohne Anführungszeichen, sonst würde die Shell die Variable beim Schreiben der Datei zu nichts auflösen.
Schritt 8: Prometheus starten und aktivieren
sudo systemctl daemon-reload
sudo systemctl enable --now prometheusSchritt 9: prüfen
sudo systemctl status prometheus
curl -s http://localhost:9090/-/healthyÖffnen Sie http://<server-ip>:9090 im Browser, um zu bestätigen, dass die Oberfläche lädt.
Den Prometheus-Download aufräumen
rm -rf /tmp/prometheus-3.13.1.linux-amd64*Teil 2: Node Exporter installieren
Schritt 1: den Systembenutzer node_exporter anlegen
sudo useradd --no-create-home --shell /bin/false node_exporterSchritt 2: Node Exporter herunterladen
cd /tmp
curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.12.1/node_exporter-1.12.1.linux-amd64.tar.gz
tar -xvf node_exporter-1.12.1.linux-amd64.tar.gzSchritt 3: das Binary installieren
sudo cp node_exporter-1.12.1.linux-amd64/node_exporter /usr/local/bin/
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporterSchritt 4: den systemd-Dienst anlegen
sudo tee /etc/systemd/system/node_exporter.service > /dev/null <<EOF
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
EOFSchritt 5: Node Exporter starten und aktivieren
sudo systemctl daemon-reload
sudo systemctl enable --now node_exporterSchritt 6: prüfen
curl -s http://localhost:9100/metrics | headDen Node-Exporter-Download aufräumen
rm -rf /tmp/node_exporter-1.12.1.linux-amd64*Teil 3: Prometheus auf Node Exporter richten
Schritt 1: den Scrape-Job hinzufügen
sudo vim /etc/prometheus/prometheus.ymlFügen Sie unter scrape_configs hinzu:
- job_name: "node_exporter"
static_configs:
- targets: ['localhost:9100']Schritt 2: die Konfiguration prüfen
promtool check config /etc/prometheus/prometheus.ymlSchritt 3: Prometheus neu laden
sudo systemctl reload prometheusSchritt 4: prüfen, ob das Target läuft
Öffnen Sie http://<server-ip>:9090/targets: die Jobs prometheus und node_exporter sollten beide State = UP zeigen.
Teil 4: Grafana installieren
Offizieller Weg: APT-Repository, damit apt-get update Grafana aktuell hält. Quelle: https://grafana.com/docs/grafana/latest/setup-grafana/installation/debian/
Schritt 1: Voraussetzungen installieren
sudo apt-get install -y apt-transport-https wget gnupgSchritt 2: den GPG-Schlüssel importieren
sudo mkdir -p /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/grafana.asc https://apt.grafana.com/gpg-full.key
sudo chmod 644 /etc/apt/keyrings/grafana.ascSchritt 3: das Stable-Repository hinzufügen
echo "deb [signed-by=/etc/apt/keyrings/grafana.asc] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.listSchritt 4: die Paketliste aktualisieren
sudo apt-get updateSchritt 5: Grafana OSS installieren
sudo apt-get install -y grafanaSchritt 6: Grafana starten und aktivieren
sudo systemctl daemon-reload
sudo systemctl enable --now grafana-serverSchritt 7: prüfen
sudo systemctl status grafana-serverÖffnen Sie http://<server-ip>:3000. Die Standardanmeldung ist admin / admin, und Sie werden beim ersten Anmelden zum Ändern aufgefordert.
Teil 5: optionale Grafana-Konfiguration (eigene Domain / HTTPS)
Nur nötig, wenn Sie Grafana hinter einem Domainnamen mit TLS betreiben.
Schritt 1: grafana.ini bearbeiten
sudo vim /etc/grafana/grafana.ini[server]
http_addr =
http_port = 3000
domain = mysite.com
root_url = https://subdomain.mysite.com:3000
cert_key = /etc/grafana/grafana.key
cert_file = /etc/grafana/grafana.crt
enforce_domain = False
protocol = httpsSchritt 2: Grafana neu starten
sudo systemctl restart grafana-serverSchritt 3 (optional): Nginx als Reverse Proxy
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
listen [::]:80;
server_name your_domain www.your_domain;
location / {
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000;
}
location /api/live {
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;
}
}Teil 6: Grafana mit Prometheus verbinden
Schritt 1: die Datenquelle hinzufügen
In Grafana: Connections > Data sources > Add data source > Prometheus.
Setzen Sie die URL auf:
http://localhost:9090Klicken Sie auf Save & test, Sie sollten "Successfully queried the Prometheus API." sehen.
Schritt 2: das Node-Exporter-Dashboard importieren
Dashboards > New > Import, dann die Dashboard-ID eingeben:
1860Wählen Sie auf Nachfrage Ihre Prometheus-Datenquelle und klicken Sie auf Import. Das ist das Community-Dashboard "Node Exporter Full", und es deckt CPU, Arbeitsspeicher, Festplatte und Netzwerk von Haus aus ab.
Spickzettel zur Dienstverwaltung
service start status enable
--------------- -------------------- -------------------- -------------------------------
prometheus systemctl start systemctl status systemctl enable prometheus
node_exporter systemctl start systemctl status systemctl enable node_exporter
grafana-server systemctl start systemctl status systemctl enable grafana-serverKonfigurationen ohne Ausfallzeit neu laden:
sudo systemctl reload prometheus
sudo systemctl restart grafana-serverWie es weitergeht
Ein Server ist der Anfang, nicht das Ende. Die nächsten beiden Schritte sind meist Alarmierung (Alertmanager, damit eine volle Platte Sie um 3 Uhr weckt statt Sie um 9 zu überraschen) und ein zweiter Exporter für das, was auf der Maschine tatsächlich läuft. Ist diese Maschine eine Website, dann ist WordPress mit Docker und Redis selbst hosten die andere Hälfte desselben Aufbaus.
Monitoring in größerem Maßstab ist ein guter Teil meiner Arbeit: Observability mit Grafana und Prometheus, einschließlich eines Benchmark-Aufbaus, der zehn Millionen Requests in fünfzehn Minuten losgeschickt hat. Ich bespreche das gern mit Ihnen.
Deinstallieren
Prometheus entfernen
sudo systemctl disable --now prometheus
sudo rm -f /usr/local/bin/prometheus /usr/local/bin/promtool
sudo rm -rf /etc/prometheus /var/lib/prometheus /etc/systemd/system/prometheus.service
sudo userdel prometheus
sudo systemctl daemon-reloadNode Exporter entfernen
sudo systemctl disable --now node_exporter
sudo rm -f /usr/local/bin/node_exporter /etc/systemd/system/node_exporter.service
sudo userdel node_exporter
sudo systemctl daemon-reloadGrafana entfernen
sudo systemctl stop grafana-server
sudo apt-get remove -y grafana
sudo rm -i /etc/apt/sources.list.d/grafana.list