Ein funktionierendes Monitoring für den eigenen Cloud-Server und das Heimnetzwerk muss weder teuer noch kompliziert sein. In dieser Anleitung zeige ich, wie ich mir ein dauerhaft kostenfreies und leistungsfähiges Monitoring-System aufgebaut habe.
Die Basis bilden eine Oracle Cloud Free Tier VM, ein Docker-Setup mit Prometheus, der Node-Exporter sowie Grafana Cloud.
1. Die Infrastruktur: Kostenlose VM in der Oracle Cloud (OCI)
Der erste Schritt war das Aufsetzen einer virtuellen Maschine (VM) in der Oracle Cloud (OCI). Oracle bietet im Always Free Tier extrem großzügige Ressourcen an.
- Betriebssystem: Oracle Linux 9
- Netzwerk-Voraussetzung: Zuweisung einer festen öffentlichen IP-Adresse.
2. Netzwerkkonfiguration & Firewall-Freigaben (OCI & Linux VM)
Damit Grafana Cloud aus dem Internet auf die Prometheus-Datenbank auf der VM zugreifen kann, mussten die Ports auf zwei verschiedenen Ebenen freigeschaltet werden:
A. Oracle Cloud Security List (Äußere Firewall)
In der OCI Console muss der Traffic auf Cloud-Ebene durchgelassen werden:
- Navigation zu Networking $\rightarrow$ Virtual Cloud Networks $\rightarrow$ VCN Details $\rightarrow$ Security Lists.
- Hinzufügen einer Ingress Rule:
- Source CIDR:
0.0.0.0/0(oder die spezifischen Grafana Cloud IP-Bereiche) - IP Protocol:
TCP - Destination Port Range:
9090(Prometheus) sowie optional3000
- Source CIDR:
B. Oracle Linux firewalld (Innere Firewall auf der VM)
Oracle Linux blockiert eingehende Verbindungen standardmäßig auch direkt im Betriebssystem. Über die Shell (PuTTY) wurden die Ports dauerhaft freigeschaltet:
Bash
# Ports in der Firewall öffnen
sudo firewall-cmd --permanent --add-port=9090/tcp
sudo firewall-cmd --permanent --add-port=3000/tcp
# Firewall-Regeln neu laden
sudo firewall-cmd --reload
3. Docker & Dienst-Container einrichten
Um alle Komponenten sauber und isoliert zu betreiben, kommt Docker Compose zum Einsatz.
Das Container-Setup besteht aus zwei Hauptkomponenten:
- Node Exporter: Greift Hardwaredaten der Linux-VM ab (CPU-Auslastung, RAM, Speicherplatz, Netzwerktraffic).
- Prometheus: Dient als zentrale Zeitreihen-Datenbank, die die Daten der Exporter in regelmäßigen Intervallen (z. B. alle 15 Sekunden) einsammelt (scraped).
docker-compose.yml
YAML
services:
node-exporter:
image: prom/node-exporter:latest
container_name: node_exporter
restart: unless-stopped
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--path.rootfs=/rootfs'
ports:
- "9100:9100"
prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: unless-stopped
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prom_data:/prometheus
ports:
- "0.0.0.0:9090:9090"
volumes:
prom_data:
4. Prometheus konfigurieren
In der prometheus.yml wird festgelegt, welche Datenquellen abgefragt werden. Für die VM sieht das so aus:
YAML
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'oracle_vm'
static_configs:
- targets: ['node-exporter:9100']
5. Visualisierung mit Grafana Cloud (Kostenloser Account)
Anstatt Grafana selbst auf der VM zu hosten und Ressourcen zu verschwenden, nutzen wir den kostenlosen Grafana Cloud Plan.
- Datenquelle anbinden:
- In Grafana Cloud unter Connections $\rightarrow$ Data Sources eine neue Prometheus-Datenquelle anlegen.
- Als URL die öffentliche IP der Oracle VM eintragen:
http://<DEINE_VM_IP>:9090.
- Dashboard importieren:
- Über die Import-Funktion das vorgefertigte Community-Dashboard Node Exporter Full (ID:
1860) laden. - Das Dashboard zeigt sofort Echtzeit-Graphen für CPU, Arbeitsspeicher, Disks und Netzwerk an.
- Über die Import-Funktion das vorgefertigte Community-Dashboard Node Exporter Full (ID:
6. Ausblick: Einbindung der FRITZ!Box & Heimnetz-Monitoring
Das Grundgerüst steht! Als nächster Schritt folgt die Anbindung des Heimnetzes:
- FRITZ!Box Integration: Sobald der neue Router installiert ist, wird ein
fritzbox-exporter-Container hinzugeschaltet. Dieser liest Bandbreiten, DSL-Sync-Raten und Mesh-Daten aus. - Erreichbarkeitstests (Ping): Über den
blackbox_exporterwerden zusätzlich die TP-Link WLAN-Repeater und andere Netzwerkknoten auf Latenz und Ausfälle überwacht. - Absicherung: Nach erfolgreichem Testbetrieb wird der offene Port 9090 nach außen wieder geschlossen und die Datenübertragung durch verschlüsselte Authentifizierung (Basic Auth / Remote Write) abgesichert.
