Files
da-HomeNetDocumentation/PI5/MonitoringUndAlerting.md
T

5.5 KiB

title, description, published, date, tags, editor, dateCreated
title description published date tags editor dateCreated
Monitoring und Alerting Setup true 2026-01-14T20:26:36.634Z pi5, monitoring, alerting markdown 2026-01-14T20:23:26.086Z

Das ist eine hervorragende Idee. Eine saubere Dokumentation ist das A und O, wenn man in sechs Monaten mal etwas ändern muss oder das System neu aufsetzen will.

Hier ist die Zusammenfassung deines Monitoring-Stacks für den Raspberry Pi 5.


System-Dokumentation: Docker-Monitoring & Alerting

Dieses Setup überwacht Docker-Container in Echtzeit und sendet kritische Statusänderungen sowie Ressourcen-Engpässe direkt via Telegram-Bot an den Administrator.

1. Die Architektur

Das System besteht aus vier Kernkomponenten:

  • cAdvisor: Liest Ressourcen-Daten (CPU, RAM, Status) direkt vom Docker-Daemon.
  • Prometheus: Sammelt diese Daten (Scraping) und gleicht sie mit definierten Alarm-Regeln ab.
  • Alertmanager: Empfängt Alarme von Prometheus, gruppiert sie und regelt den Versand.
  • Telegram-API: Dient als Zustellungsweg für die Benachrichtigungen.

2. Konfigurationsdateien

A. Prometheus Rules (alert_rules_docker.yml)

Hier ist die Logik definiert, wann ein Alarm ausgelöst wird.

  • ContainerDown: Prüft über time() - container_last_seen, ob ein Container länger als 60 Sekunden keine Daten mehr gesendet hat.
  • HighContainerMemory: Warnt, wenn ein Container dauerhaft mehr als 1 GB RAM belegt.

B. Alertmanager Config (alertmanager.yml)

Regelt das Layout und den Versandweg.

  • Grouping: Fasst Alarme nach alertname und name zusammen, um Fluten bei Systemstarts zu vermeiden.
  • Template: Nutzt HTML-Formatierung für Telegram, um Informationen wie Dienstname, Startzeit und Beschreibung sauber darzustellen.

3. Wichtige Befehle für die Verwaltung

Aktion Befehl
Konfiguration neu laden docker exec -it monitoring-prometheus kill -SIGHUP 1
Alertmanager neu laden docker exec -it monitoring-alertmanager kill -SIGHUP 1
Logs prüfen (Fehlersuche) docker logs -f monitoring-alertmanager
Regel-Check (Syntax) promtool check rules /pfad/zu/rules.yml

4. Endpunkte im Netzwerk

  • Prometheus Web-UI: http://<Pi-IP>:9090 (Hier werden Regeln und Metriken visualisiert).
  • Alertmanager-UI: http://<Pi-IP>:9093 (Hier können Alarme stummgeschaltet/Silenzen werden).
  • cAdvisor Metriken: http://<Pi-IP>:8080/metrics (Rohdatenquelle).

5. Sicherheitsrelevante Daten

  • Bot-User: @YourBotName
  • Chat-ID: 1925816130 (Deine persönliche Telegram-ID)
  • Wichtig: Der Bot-Token wurde am 14.01.2026 rotiert und sollte niemals im Klartext in öffentlichen Repositories (z. B. GitHub) landen.

6. Wartungshinweise

  • Log-Rotation: Docker-Container sollten mit einem Log-Limit konfiguriert sein (z. B. max-size: 10m), damit die SD-Karte des Pi 5 nicht durch Metrik-Logs gefüllt wird.
  • Updates: Einmal im Monat docker compose pull ausführen, um Sicherheitsupdates für Prometheus und cAdvisor zu erhalten.

Soll ich dir noch die passende docker-compose.yml Sektion für die Log-Begrenzung (Log-Rotation) heraussuchen, damit dein Pi langfristig stabil bleibt?

Das ist ein sehr wichtiger Punkt für einen Raspberry Pi, da Docker standardmäßig unendlich große Log-Dateien schreibt, was bei einem Monitoring-System (viele Schreibvorgänge!) schnell die SD-Karte füllen kann.

Hier ist die Ergänzung für deine Dokumentation, wie du die Log-Rotation global für alle Monitoring-Container in deiner docker-compose.yml festlegst.

Log-Rotation in der docker-compose.yml

Füge diesen logging-Block zu jedem deiner Dienste (Prometheus, Alertmanager, cAdvisor) hinzu:

services:
  prometheus:
    image: prom/prometheus:latest
    container_name: monitoring-prometheus
    # ... deine anderen Einstellungen ...
    logging:
      driver: "json-file"
      options:
        max-size: "10m"   # Maximale Größe einer Datei (10 Megabyte)
        max-file: "3"     # Behalte maximal 3 Dateien (insg. 30MB)

  alertmanager:
    image: prom/alertmanager:latest
    container_name: monitoring-alertmanager
    # ...
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

  cadvisor:
    image: gcr.io/cadvisor/cadvisor:latest
    container_name: monitoring-cadvisor
    # ...
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"


Warum ist das wichtig? (Doku-Notiz)

Ohne diese Einstellung wächst die Datei /var/lib/docker/containers/.../*-json.log ununterbrochen an. Besonders cAdvisor und Prometheus erzeugen viele Statusmeldungen. Mit dieser Konfiguration:

  1. Wird die Log-Datei bei 10 MB "abgeschnitten".
  2. Wird eine neue Datei angefangen.
  3. Wird die älteste Datei gelöscht, sobald mehr als 3 Dateien existieren.
  4. Dein Speicherverbrauch pro Container für Logs bleibt also bei maximal 30 MB gedeckelt.

Aktivierung

Damit die Änderung greift, musst du die Container einmal neu erstellen lassen:

docker compose up -d


Zusammenfassung deiner Monitoring-Doku (Finaler Stand)

Komponente Zweck Wichtigste Datei
Metriken cAdvisor docker-compose.yml
Logik Prometheus alert_rules_docker.yml
Versand Alertmanager alertmanager.yml
Sicherheit Log-Rotation max-size: 10m
Output Telegram @YourBot

Damit ist dein Pi 5 jetzt ein echtes "Self-Healing" Monitoring-System!