# Backup Monitoring: Proaktive Überwachung der Datensicherung
TL;DR / Management Summary Ein Administrator darf niemals morgens überrascht werden, dass das Backup fehlgeschlagen ist. Wir nutzen ein mehrstufiges Monitoring-Konzept: Lokale Job-Meldungen, zentrale Dashboards und proaktive Alarme bei Hardware-Engpässen. Ein Senior Admin verlässt sich nicht auf “Email-Erfolgsmeldungen” (die oft im Spam landen), sondern nutzt Zentralisierte Monitoring-Systeme (Prometheus/Grafana), die bei Inaktivität oder Performance-Abfall sofort Alarm schlagen.
# 1. Das Monitoring-Ebenen Modell
Sichtbarkeit von der Hardware bis zum Dienst.
- Hardware Ebene: Ist die Disk gesund? (SMART Werte, RAID Status).
- Storage Ebene: Wie viel Platz ist noch frei? Wie hoch ist die I/O Latenz?
- Job Ebene: War der Lauf erfolgreich? Wie lange hat er gedauert?
- Integritäts Ebene: Sind die Daten im Repository noch lesbar? (Verify Status).
# 2. Integration in Prometheus & Grafana
Datenvisualisierung für Profis.
Nutzen Sie Exporter (z.B. pbs-exporter oder veeam-exporter), um Metriken zu sammeln.
- Wichtige Metriken:
backup_last_success_timestamp: Zeit seit dem letzten Erfolg.backup_duration_seconds: Wie lange dauerte der Job? (Trendanalyse).storage_used_bytes: Füllstand des Datastores.
# Das ‘Dead-Man-Switch’ Prinzip
Ein Backup-System, das schweigt, ist gefährlich.
- Regel: Wenn Prometheus für 24 Stunden keine neue Erfolgsmeldung von Server X erhält -> CRITICAL ALERT. (Schutz vor abgestürzten Backup-Diensten).
# 3. Deep Dive: Alarm-Klassifizierung
Den ‘Noise’ reduzieren.
Vermeiden Sie es, für jedes kleine Ereignis eine Mail zu schicken.
- Information: Backup erfolgreich (Nur im Dashboard sichtbar).
- Warning: Backup erfolgreich mit Warnungen (z.B. VSS-Timeout bei einer Datei).
- Critical: Backup fehlgeschlagen ODER Speicherplatz < 5%.
- Disaster: Letztes Backup > 48h her ODER Repository offline.
# 4. Day-2 Operations: Log-Aggregation
Fehlermuster erkennen.
Senden Sie alle Backup-Logs via Syslog (Artikel 584) an ein zentrales System (ELK/Graylog).
- Aktion: Suchen Sie nach dem String
erroroderfailed. - Vorteil: Sie sehen sofort, ob 50 VMs gleichzeitig wegen eines Netzwerk-Timeouts fehlgeschlagen sind.
# 5. Troubleshooting & “War Stories”
Wenn der Wächter schläft.
# Top 3 Fehlerbilder
-
Symptom: Alle Backups sind grün, aber die Disk ist leer.
- Ursache: Das Backup-Programm sichert nur das Verzeichnis, das Verzeichnis ist aber leer (Mount-Point nicht eingehängt).
- Lösung: Überwachen Sie die Backup-Größe. Wenn sie um > 50% abweicht -> Alarm!
-
Symptom: Dashboards zeigen veraltete Daten.
- Lösung: Cache des Exporters prüfen oder Pull-Intervall verkürzen.
-
Symptom: Email-Flut bei Netzwerkausfall.
- Fix: Nutzen Sie Alert-Dependencies. Wenn das Gateway offline ist, unterdrücke alle Backup-Fehlermeldungen.
# “War Story”: Das “Success” Paradoxon
Ein Admin erhielt täglich 200 Mails mit dem Betreff “Backup Success”. Er filterte diese in einen Outlook-Ordner und schaute nur rein, wenn er Zeit hatte. Das Ergebnis: Eines Morgens bemerkte er, dass seit 2 Wochen nur noch 199 Mails ankamen. Ein kritischer Datenbank-Server war aus der Liste verschwunden und wurde gar nicht mehr gesichert. Da es keinen “Failure” gab, gab es auch keine Fehlermeldung. Lehre: Überwachen Sie nicht den Erfolg, sondern das Alter des letzten Erfolgs. Ein fehlendes Signal ist der wichtigste Alarm.
# 6. Monitoring & Reporting
Management-Dashboard.
Erstellen Sie ein High-Level Dashboard für die IT-Leitung:
- SLA Score: “99.5% aller Server innerhalb der RPO gesichert”.
- Capacity Trend: “Wir brauchen in 3 Monaten neue Festplatten”.
# 7. Fazit & Empfehlung
Monitoring ist die aktive Versicherung Ihrer Backups.
- Empfehlung: Nutzen Sie das Plugin Healthchecks.io für einfache Skripte. Der Server muss sich beim Dienst melden (“Heartbeat”), sonst gibt es Alarm.
- Wichtig: Testen Sie Ihre Alarme! Löschen Sie testweise eine kleine Test-VM und prüfen Sie, ob Ihr Report den Verlust bemerkt.
# Anhang: Cheatsheet (Prometheus Alert Rule)
groups:
- name: BackupAlerts
rules:
- alert: BackupMissing
expr: (time() - backup_last_success_timestamp) > 86400
for: 1h
labels:
severity: critical
annotations:
summary: "Backup für {{ $labels.instance }} fehlt!"