Grafana: Monitoring für Homelab
Tools · 7 min

Grafana + Prometheus bilden den Monitoring-Stack für dein Homelab. Prometheus sammelt Metriken, Grafana visualisiert sie. Mit Alertmanager bekommst du Benachrichtigungen bei Problemen. Open Source, self-hosted, 100+ Datenquellen.
Das Blindflug-Problem
Stell dir vor, du betreibst ein Homelab mit zehn, zwanzig oder dreissig Services. Alles scheint zu laufen. Dann sagt dir ein Kunde, dass deine Website seit sechs Stunden offline ist. Oder du merkst, dass deine Backup-Festplatte seit zwei Wochen voll ist. Oder ein Docker Container startet seit Stunden alle fünfzehn Minuten still und leise neu — und niemand hat es bemerkt.
Das passiert ohne Monitoring. Du fliegst blind. Monitoring ist der Unterschied zwischen "Probleme finden, bevor jemand betroffen ist" und "Probleme von genervten Nutzern erfahren".
Was gutes Monitoring leistet
Gutes Monitoring macht drei Dinge:
- Aktuellen Zustand zeigen: Ist gerade alles gesund? Welche Services laufen? Wie viel Festplattenplatz ist noch frei? Du solltest diese Fragen in unter zehn Sekunden beantworten können.
- Trends über die Zeit: Deine Festplatte war letzten Monat bei sechzig Prozent und ist jetzt bei achtzig. Bei diesem Tempo ist sie in sechs Wochen voll. Trends sagen dir, was kommt, bevor es soweit ist.
- Bei Problemen warnen: Wenn ein Schwellenwert überschritten wird — Festplatte über neunzig Prozent, Service länger als zwei Minuten down — schickt dir das Monitoring eine Benachrichtigung. Du erfährst von Problemen in Sekunden, nicht in Stunden.
Grafana ist das Dashboard-Tool schlechthin, wenn es um Metriken geht. Egal ob Docker-Container, Server-Ressourcen oder deine eigenen Anwendungen — Grafana visualisiert alles, was du reingibst.
So nutzen wir es bei AI Engineering
Wir nutzen Grafana + Prometheus mit 6 Dashboards auf 6 Nodes die 31 Docker Services, GPU-Auslastung und LLM-Requests überwachen.
Warum Grafana?
- • Open Source — kostenlos
- • 100+ Datenquellen — Prometheus, InfluxDB, Elasticsearch
- • Flexible Dashboards — eigene Visualisierungen
- • Alerting — Benachrichtigungen bei Problemen
- • Self-hosted — alle Daten bleiben lokal

Komponenten
Prometheus
Time-Series-Datenbank. Fragt in regelmässigen Abständen Metriken von Exportern ab — braucht keine überall installierten Agenten. Abfragen mit PromQL, einer Sprache die für Metriken entwickelt wurde. "Durchschnittliche CPU der letzten Stunde" sind Einzeiler.
Grafana
Nimmt Prometheus-Daten und macht visuelle Dashboards daraus. Panels zeigen Graphen, Anzeigen, Tabellen und Stat-Displays. Dashboards kombinieren mehrere Panels zu einer Gesamtansicht, die eine vollständige Geschichte über ein System erzählt.
Exporters
Node Exporter (Linux-Systemmetriken), cAdvisor (Container-Metriken), NVIDIA Exporter (GPU). Die meisten beliebten Services — Traefik, Nginx, Pi-hole — haben eingebaute Prometheus-Endpoints oder Community-Exporter.
Alertmanager
Routing von Alerts. Slack, Email, PagerDuty. Wenn etwas schiefgeht, erfährst du es in Sekunden statt Stunden.
Was du damit überwachen kannst
System-Infrastruktur
CPU, Memory, Disk und Netzwerk für jede Linux-Maschine. Übersichts- und Detail-Dashboards.
Docker und Container
Container-Anzahl, Ressourcenverbrauch, Image-Grössen, Restart-Zähler, Netzwerk-Traffic.
Proxmox-Virtualisierung
VM-Status, Ressourcenzuweisung, Speichernutzung, Cluster-Gesundheit, HA-Status.
Netzwerk und Services
HTTP-Endpoints, Antwortzeiten, SSL-Zertifikat-Ablauf, DNS-Queries, Reverse-Proxy-Metriken.
Docker Monitoring
Hier ist unser docker-compose.yml für ein komplettes Monitoring-Stack:
# docker-compose.yml
services:
prometheus:
image: prom/prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
node-exporter:
image: prom/node-exporter
ports:
- "9100:9100"
cadvisor:
image: gcr.io/cadvisor/cadvisor
ports:
- "8080:8080"
grafana:
image: grafana/grafana
ports:
- "3000:3000"
volumes:
- grafana_data:/var/lib/grafanaNach dem Starten über docker compose up -d findest du:
- • Grafana: http://localhost:3000 (admin/admin)
- • Prometheus: http://localhost:9090
- • Node Exporter: http://localhost:9100
- • cAdvisor: http://localhost:8080
Prometheus Konfiguration
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node-exporter'
static_configs:
- targets: ['node-exporter:9100']
- job_name: 'cadvisor'
static_configs:
- targets: ['cadvisor:8080']Teste mit: curl http://localhost:9090/api/v1/query?query=up
Wichtige Metriken
| Metrik | Beschreibung |
|---|---|
| CPU Usage | Prozentuale Auslastung |
| Memory Usage | RAM in GB oder Prozent |
| Disk Usage | Speicherplatz auf Festplatten |
| Network I/O | Durchsatz in MB/s |
| Container Status | Running/Stopped/Restarting |
Alerting
So richtest du Alerts ein, die dich bei Problemen benachrichtigen:
# alerts.yml - Alert-Regeln
groups:
- name: container_alerts
rules:
- alert: HighMemoryUsage
expr: (container_memory_usage_bytes / container_spec_memory_limit_bytes) * 100 > 90
for: 5m
labels:
severity: warning
annotations:
summary: "Container {{ $labels.name }} nutzt über 90% RAM"
- alert: ContainerDown
expr: up{job="docker"} == 0
for: 1m
labels:
severity: critical
annotations:
summary: "Container {{ $labels.instance }} ist down"
- alert: HighCPUUsage
expr: 100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 10m
labels:
severity: warningPrometheus Query-Beispiele zum Testen:
# Alle laufenden Container
up{job="docker"}
# Memory Usage in Prozent
(container_memory_usage_bytes / container_spec_memory_limit_bytes) * 100
# CPU Usage
100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)Unsere Dashboards
Wir nutzen 22 vorkonfigurierte Dashboards:
- • Docker Swarm Overview
- • Node Resources (CPU, RAM, Disk)
- • Container Details
- • Network Traffic
- • GPU Utilization (für Ollama)
- • n8n Workflow Status
- • System Health Overview
GPU Monitoring für Ollama
Für GPU-Monitoring brauchst du den nvidia-exporter:
# docker-compose.yml erweitern
nvidia-exporter:
image: nvcr.io/nvidia/prometheus-nvidia-exporter:latest
environment:
- NVIDIA_ADDR=unix:///run/nvidia.sock
volumes:
- /var/run/nvidia.sock:/var/run/nvidia.sock
ports:
- "9101:9101"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]Wichtige GPU-Metriken in Prometheus:
# GPU Temperature
nvidia_gpu_temperature_celsius
# GPU Utilization
nvidia_gpu_utilization_percentage
# Memory Usage
nvidia_gpu_memory_used_bytes / nvidia_gpu_memory_total_bytes * 100
# Power Usage
nvidia_gpu_power_draw_wattsNach Aenderungen an prometheus.yml musst du nicht den Container neu starten. Ein einfaches curl -X POST http://localhost:9090/-/reload genügt, damit Prometheus die neue Konfiguration laedt.
Fazit
Ohne Monitoring fliegst du blind. Grafana + Prometheus gibt dir Sichtbarkeit über deine gesamte Infrastruktur — bevor Benutzer Probleme melden.
Quellen
- Grafana Dokumentation
- Prometheus Docs: Overview
- GitHub: google/cadvisor — Container Advisor für Docker-Metriken
- Grafana Dashboard Library — Fertige Dashboards zum Importieren
Weiterfuehrende Artikel: Docker Grundlagen · Self-Hosted Sicherheit · AI Stack Setup
Fuer die Umsetzung gibt es Ressourcen auf ai-engineering.at.
War dieser Artikel hilfreich?
Nächster Schritt: Workflows sauber in Betrieb bringen
Nutze bewährte n8n-Patterns, Templates und Integrationen für Workflows, die lokal, dokumentiert und auditierbar bleiben.
- Lokal und self-hosted gedacht
- Dokumentiert und auditierbar
- Aus eigener Runtime entwickelt
- Made in Austria