Server-Surveillance – Proxmox- und Raspberry-Pi-Monitoring in einer Instanz
Selbst gehostetes Monitoring-Dashboard für die Heimnetzwerk-Infrastruktur.
Mein Monitoring-Dashboard überwacht mein Heimserver-Setup mit Proxmox-Host und die im Netzwerk eingebundenne Raspberry Pi und bündelt die wichtigsten Zustandsdaten der lokalen Infrastruktur in einer eigenen Instanz auf einer Seite.
Was überwacht wird
Proxmox-Host
- CPU: 20-Kern-Auslastung, Taktfrequenz je Kern, Temperaturen (via SSH)
- RAM, Disk, Uptime
- Intel RAPL: CPU-Paketleistung in Watt (live aus der CPU-Telemetrie, keine externe Leistungsmessung)
VMs und LXC-Container
- CPU- und RAM-Auslastung aller laufenden Gäste
- Benannte Anzeige: Algroveon-AI, Algroveon-Agent, Algroveon-News, Home Assistant, TrueNAS, Paperless-ngx …
GPU (RTX PRO 2000 Blackwell, PCIe-Passthrough in Algroveon-AI)
- Temperatur, Auslastung, VRAM-Nutzung, Lüfterdrehzahl, Leistungsaufnahme
- Prozess-Tracking: welche Prozesse (Ollama, ComfyUI etc.) gerade GPU-Ressourcen nutzen
Raspberry Pi 5
- CPU, RAM, Disk, Temperatur
- Über einen schlanken lokalen Agenten (FastAPI, ~60 Zeilen Python)
Services
- HTTP-Health-Checks für alle relevanten Dienste: Ollama, Faster-Whisper, Piper TTS, ComfyUI, Algroveon-Agent, Algroveon-News und weitere
- Status-Badges: online / degraded / offline
24-Stunden-Report
Aggregierte Tagesstatistiken direkt aus SQLite: Peak-Werte, Durchschnittswerte, Top-CPU-Consumer, GPU-Prozess-History. Stromkosten über 24 h, 30 Tage und seit dem letzten Server-Start. Berechnet aus RAPL-Telemetrie, nvidia-smi und Pi-Schätzformel, multipliziert mit dem konfigurierten Strompreis. Die Werte sind als praxisnahe Näherung zu verstehen, nicht als exakte elektrische Gesamtmessung des Systems.
Architektur
Browser (HTMX-Polling alle 10s)
↓
FastAPI (SSR via Jinja2 + HTMX-Partials)
↓
┌────────┼──────────┐
Proxmox SSH Pi-Agent
REST API (nvidia- GET /metrics
(proxmox smi, (psutil)
er) sensors)
↓
SQLite (MetricsHistory · AlertLog · ServiceConfig)
Alle Seiteninhalte werden serverseitig gerendert, Updates kommen als HTMX-Fragmente zurück.
Collector und Alerting
Der Hintergrund-Collector läuft in einem zweiphasigen Modus:
- Ruhemodus (alle 180 s) – Heartbeat bei normaler Last
- Aktivmodus (alle 30 s) – wenn Trigger-Schwellen überschritten werden (z.B. GPU-Last > 25%)
Konfigurierbare Schwellenwerte für CPU, RAM, Disk, GPU-Temperatur, VRAM und Pi-Temperatur lösen Alerts aus, die in der Datenbank protokolliert und im Dashboard sichtbar werden.
Der Pi-Agent
Ein kleines eigenständiges FastAPI-Skript, das auf dem Raspberry Pi läuft und über GET /metrics seine aktuellen Werte liefert. Installation via systemd-Service.
Keine Agenten-Infrastruktur, keine Daemons – nur psutil + eine Handvoll Zeilen Python.