Warum Prometheus & Grafana?
Prometheus hat sich in den letzten Jahren zum Standard für Open-Source-Monitoring entwickelt. Das Pull-basierte Modell sammelt Metriken von Zielen (Targets), speichert sie in einer leistungsstarken Zeitreihendatenbank (TSDB) und stellt sie über eine flexible Abfragesprache (PromQL) zur Verfügung. Grafana wiederum ist die Visualisierungsschicht: Es verbindet sich mit Prometheus (und vielen anderen Quellen) und erstellt aussagekräftige Dashboards. Die Kombination ist schlank, extrem leistungsfähig und für Server jeder Größe geeignet.
Die Komponenten im Überblick
| Komponente | Aufgabe | Port (Standard) |
|---|---|---|
| Prometheus Server | Metriken sammeln, speichern, auswerten | 9090 |
| Node Exporter | Systemmetriken (CPU, RAM, Disk, Netzwerk) | 9100 |
| Grafana | Visualisierung & Dashboarding | 3000 |
| Alertmanager | Alarme auslösen & verwalten | 9093 |
| cAdvisor (optional) | Container-Metriken (Docker) | 8080 |
| Blackbox Exporter (optional) | Externes Monitoring (HTTP, HTTPS, ICMP) | 9115 |
Installation: Prometheus & Node Exporter
Für die Installation verwenden wir Docker Compose – das ist die sauberste Methode für ein Monitoring-Setup auf einem VPS. Erstelle eine docker-compose.yml mit folgendem Inhalt:
version: '3.8'
services:
prometheus:
image: prom/prometheus:v2.53.0
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
ports:
- "9090:9090"
restart: unless-stopped
node_exporter:
image: prom/node-exporter:v1.8.0
network_mode: host
restart: unless-stopped
grafana:
image: grafana/grafana:11.0.0
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
- grafana_data:/var/lib/grafana
ports:
- "3000:3000"
restart: unless-stopped
volumes:
prometheus_data:
grafana_data:
Die prometheus.yml-Konfiguration:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
Starte das Setup mit docker compose up -d – nach wenigen Sekunden sammelt Prometheus die ersten Metriken.
Grafana-Dashboard einrichten
Rufe Grafana unter http://DEINE_SERVER_IP:3000 auf (Benutzer: admin, Passwort: admin). Danach:
- Datenquelle hinzufügen: Configuration → Data Sources → Prometheus. URL:
http://prometheus:9090→ Save & Test. - Dashboard importieren: Das Node Exporter Full Dashboard (ID: 1860) ist der perfekte Start. Gehe zu Dashboards → Import, gib die ID 1860 ein und wähle deine Prometheus-Datenquelle aus.
- Fertige Übersicht: Du siehst jetzt CPU-Auslastung, RAM-Nutzung, Festplatten-I/O, Netzwerk-Traffic und vieles mehr auf einen Blick.
Wichtige PromQL-Abfragen
Mit PromQL kannst du eigene Metriken und Alarme definieren. Hier die wichtigsten Abfragen für das Server-Monitoring:
| Metrik | PromQL-Abfrage |
|---|---|
| CPU-Auslastung (%) | 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) |
| RAM-Nutzung (%) | (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 |
| Festplattenauslastung (%) | (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100 |
| Netzwerk-Traffic | rate(node_network_receive_bytes_total[5m]) |
| Uptime (Tage) | time() - node_boot_time_seconds / 86400 |
Alertmanager & Benachrichtigungen
Der Alertmanager wertet Prometheus-Alerting-Regeln aus und sendet Benachrichtigungen – per E-Mail, Slack, Telegram oder PagerDuty. Beispiel für eine CPU-Alert-Regel in rules.yml:
groups:
- name: server_alerts
rules:
- alert: HighCPUUsage
expr: 100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 10m
labels:
severity: warning
annotations:
summary: "CPU-Auslastung über 80 %"
Die Alertmanager-Konfiguration leitet Alarme dann an deinen E-Mail-Server oder einen Telegram-Bot weiter.
Monitoring erweitern: Exporter & Integrationen
Das Monitoring lässt sich mit weiteren Exportern ausbauen:
- cAdvisor: Container-Metriken (CPU, RAM, Netzwerk pro Container)
- Blackbox Exporter: Überwacht externe Services (HTTP-Status, SSL-Verfall, Latenz)
- MySQL/PostgreSQL Exporter: Datenbank-Metriken
- Nginx Exporter: Nginx-Statusmetriken
- Cert-Manager: SSL-Zertifikatsüberwachung
Best Practices für Monitoring 2026
- Setze
scrape_intervalnicht zu niedrig (15–30 s ist ausreichend) - Definiere Alert-Regeln mit
for-Klausel, um Fehlalarme zu vermeiden - Sichere Grafana hinter einem Reverse Proxy mit HTTPS
- Lege ein langlebiges Admin-Passwort fest (nicht "admin")
- Konfiguriere die Datenaufbewahrung in Prometheus (
--storage.tsdb.retention.time) - Nutze Dashboards aus dem Grafana-Community-Hub – aber passe sie an deine Bedürfnisse an
Fazit
Prometheus und Grafana sind das Traumgespann für Server-Monitoring. Die Installation ist mit Docker Compose in wenigen Minuten erledigt, und die Möglichkeiten sind nahezu unbegrenzt. Egal, ob du einen einzelnen VPS oder ein ganzes Rechenzentrum überwachst – mit Prometheus & Grafana hast du immer den vollen Durchblick. Starte noch heute mit deinem Monitoring-Setup und behalte deine Server rund um die Uhr im Auge.