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:

  1. Navigation zu Networking $\rightarrow$ Virtual Cloud Networks $\rightarrow$ VCN Details $\rightarrow$ Security Lists.
  2. 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 optional 3000

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:

  1. Node Exporter: Greift Hardwaredaten der Linux-VM ab (CPU-Auslastung, RAM, Speicherplatz, Netzwerktraffic).
  2. 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.

  1. 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.
  2. 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.

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_exporter werden 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.

Share this content: