docs(issues): #0030 cadence set — monthly drill, and backups now alert
Monthly restore-drill CronJob (verified before commit) plus the finding that mattered more: there was no backup alerting at all, so a failed nightly job would have gone unnoticed. Added BackupJobFailed/BackupNotRunning/ RestoreDrillStale; the last one alerts on the absence of the check itself. Alert rules still need deploying on CFGMON. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
6f74642659
commit
d73a3b7658
@@ -189,3 +189,48 @@ einen Mirror. Begründung steht im README des Notfallhandbuchs, damit sie nicht
|
||||
|
||||
Das ist eine **dauerhafte Ausnahme von der Spiegel-Topologie** (ADR-0001) und daher als
|
||||
**ADR-0016** festgehalten.
|
||||
|
||||
## Schritt 4 erledigt 2026-08-14 — Rhythmus festgelegt (automatisiert + überwacht)
|
||||
|
||||
**Monatlich, 4. um 04:20**, als CronJob `restore-drill`
|
||||
(`gitops:apps/production/restore-drill.yaml`, Commit `b61dfd9`) — nach den nächtlichen
|
||||
Backups, damit er den frischen Stand zieht. Er spielt die Sicherungen in eine
|
||||
Wegwerf-Postgres **im Pod** zurück und besteht nur, wenn Zeilen ankommen. Vor dem Commit
|
||||
manuell ausgelöst und bestanden (synapse 31.908, MAS 16.085, wiki 251).
|
||||
|
||||
**Automatisiert statt dokumentiert:** ein Prüfrhythmus, den niemand ausführt, ist derselbe
|
||||
Fehler wie ein ungetestetes Backup — nur eine Ebene höher.
|
||||
|
||||
**Abdeckung:** synapse + matrixauthenticationservice + wiki (die unersetzlichen Daten).
|
||||
Authentik ist bewusst **nicht** im automatischen Lauf: Flows/Provider liegen als Blueprints
|
||||
deklarativ im Repo, die DB ist also weitgehend reproduzierbar — und der Job müsste sonst
|
||||
wegen der namespace-gebundenen Credentials dupliziert werden. Auf Zuruf über
|
||||
`notfall.sh` Stufe 3 (deckt alle drei Repos ab) jederzeit prüfbar.
|
||||
|
||||
### Nebenbefund, der wichtiger war als der Rhythmus selbst
|
||||
|
||||
**Es gab überhaupt keine Alarmregel zu Backups.** Ein fehlgeschlagenes nächtliches Backup
|
||||
wäre unbemerkt geblieben — exakt der stille Ausfall, den dieses Issue beschreibt, nur an
|
||||
der Stelle, die ihn hätte melden sollen. Behoben in
|
||||
`threadnet-operating:monitoring/prometheus/alerts.yml` (Commit `1bbff5e`), neue Gruppe
|
||||
`axion-backup`:
|
||||
|
||||
| Alarm | feuert wenn |
|
||||
|---|---|
|
||||
| `BackupJobFailed` | ein Backup- oder Probe-Job fehlschlägt |
|
||||
| `BackupNotRunning` | ein CronJob seit >26h nicht mehr geplant hat |
|
||||
| `RestoreDrillStale` | die Probe seit >40 Tagen nicht lief |
|
||||
|
||||
Der letzte ist Absicht: **auch das Ausbleiben der Prüfung ist ein Alarm.** Metrikweg
|
||||
verifiziert (kube-state-metrics → Alloy → remote_write; der Filter verwirft nur
|
||||
`go_.*|process_.*`, `kube_job_*`/`kube_cronjob_*` kommen an).
|
||||
|
||||
⚠️ **Deploy offen:** Die Alarmregeln liegen im Repo, sind aber noch **nicht auf CFGMON
|
||||
ausgerollt** (Prometheus dort, kein Zugang von hier). Bis zum Reload greifen sie nicht.
|
||||
|
||||
### Restaufwand
|
||||
|
||||
Nur noch **Phase A/B**: Wiederanlauf auf einem leeren Host (K3s, die zwei Bootstrap-Secrets,
|
||||
Flux) und die Rückspielung der Synapse-**Medien** sind weiterhin abgeleitet, nicht erprobt —
|
||||
dafür braucht es eine Wegwerf-Umgebung. Ebenso ungeprüft: die Homelab-Seite
|
||||
(GitLab/Overmind → MinIO/DSM).
|
||||
|
||||
Reference in New Issue
Block a user