diff --git a/STATUS.md b/STATUS.md index 6e2f8bc..deec6e4 100644 --- a/STATUS.md +++ b/STATUS.md @@ -2,9 +2,9 @@ -## Issues (63 open, 36 closed) +## Issues (62 open, 37 closed) -Verteilung: M1 16 · M2 17 · M3 4 · M4 11 · M5 15 +Verteilung: M1 15 · M2 17 · M3 4 · M4 11 · M5 15 | Issue | Status | Meilenstein | Priorität | Title | |---|---|---|---|---| @@ -50,7 +50,6 @@ Verteilung: M1 16 · M2 17 · M3 4 · M4 11 · M5 15 | [0078](docs/issues/0078-gitops-45-cve-meldeweg-v2-metriken-grafana-dashboard-al.md) | open | M1 | medium | CVE-Meldeweg v2: Metriken, Grafana-Dashboard, Alerts in eigenen Matrix-Raum | | [0080](docs/issues/0080-gitops-47-raidplaner-mit-sozialer-komponente-verfuegbar.md) | open | M3 | medium | Raidplaner mit sozialer Komponente (Verfügbarkeiten, Aufgaben, Roadmap, Fotoalbum) | | [0081](docs/issues/0081-gitops-48-gaeste-invite-workflow-per-bot-3-tage-account.md) | open | M3 | medium | Gäste-Invite-Workflow per Bot (3-Tage-Accounts, Admin-Freischaltung, begrenzte Reaktivierung) | -| [0082](docs/issues/0082-gitops-49-cve-alarme-eine-matrix-nachricht-pro-cve-flut.md) | open | M1 | high | CVE-Alarme: eine Matrix-Nachricht pro CVE flutet den Security-Raum -- Zustellung derzeit stumm | | [0083](docs/issues/0083-gitops-50-monitoring-deploy-geaenderte-configs-greifen.md) | open | M1 | medium | Monitoring-Deploy: geaenderte Configs greifen nicht ohne --force-recreate (Inode-Falle bei Einzeldatei-Mounts) | | [0085](docs/issues/0085-gitops-52-docs-traegt-zwei-altbestaende-abgeschlossener.md) | open | M2 | low | docs/ trägt zwei Altbestände abgeschlossener Umzüge: TASKS.md und oldwiki/ | | [0086](docs/issues/0086-gitops-53-k8s-ressourcen-heissen-noch-element-web-docs.md) | open | M4 | low | k8s-Ressourcen heißen noch element-web-docs (Rest des ThreadNet-Rebrands) | diff --git a/docs/issues/0082-gitops-49-cve-alarme-eine-matrix-nachricht-pro-cve-flut.md b/docs/issues/0082-gitops-49-cve-alarme-eine-matrix-nachricht-pro-cve-flut.md index e7d125e..50807bb 100644 --- a/docs/issues/0082-gitops-49-cve-alarme-eine-matrix-nachricht-pro-cve-flut.md +++ b/docs/issues/0082-gitops-49-cve-alarme-eine-matrix-nachricht-pro-cve-flut.md @@ -1,10 +1,10 @@ --- type: issue id: "0082" -status: open +status: done created: 2026-08-01 milestone: M1 -priority: high +priority: medium projekt: gitops gitlab_iid: "49" related: [] @@ -53,3 +53,42 @@ Scanner, Exporter, Scrape-Job und Dashboard laufen und sind verifiziert -- Expor --- *Migriert aus Gitea `sorb/axion1337.chat-gitops#51` — dort erstellt am 2026-08-01 von sorb.* + +## Richtigstellung + Abschluss 2026-08-19 + +**Die Kernaussage des Issues war überholt.** „Die Alarm-Zustellung ist abgeklemmt" +stimmte am Tag der Erstellung — und wurde noch **am selben Tag** behoben, ohne dass das +Issue geschlossen wurde. Ich habe es zwischenzeitlich als Produktionsblocker geführt +(„CVE-Alarme werden gar nicht zugestellt"); das war falsch, nachgeprüft am Code: + +| Forderung | Stand | +|---|---| +| Zustellung bündeln | ✅ Weg 2 gewählt: Regeln aggregieren per `count by (target, target_type, host)`, Details im Dashboard (`alerts.yml`) | +| State inkrementell speichern | ✅ `save_state()` steht **in** der Schleife, auch im Fehlerzweig; dazu `time.sleep(1)` gegen `rc_message` | +| `room="security"`-Null-Route entfernen | ✅ In `alertmanager.yml` nicht mehr vorhanden; der Kommentar dort hält die Historie fest | +| `coturn:latest` pinnen | ✅ gitops `b4650dc` | + +Alles vier per Commit `ff87cb2` (2026-08-01) bzw. gitops. + +### Heute erledigt: die beiden verbliebenen Review-Punkte + +**Der Exporter löschte Erstfund-Zeitstempel bei jedem Lesefehler.** `first_seen` wurde +bei **jedem** Scrape auf das reduziert, was gerade gesehen wurde — und ein Bericht, der +sich nicht parsen ließ, wurde per stillem `continue` übersprungen. Seine Findings kamen +damit nicht in `seen_keys`, ihre Zeitstempel waren dauerhaft weg, und „erstmals gesehen" +fing danach bei *jetzt* an. Gemeldet hat das nichts. + +Geprunt wird jetzt nur noch für Targets, deren Bericht in diesem Durchgang **wirklich +gelesen** wurde. Beidseitig gegen eine Wegwerf-Ablage belegt, nicht argumentiert: ein +unlesbarer Bericht lässt seinen Eintrag stehen (`read_errors 1`), ein lesbarer Bericht +ohne das Finding räumt ihn weiterhin ab. + +**`TrivyScanStale` hat eine Blindstelle, die es prinzipiell nicht schließen kann:** Ein +Target ohne je erfolgreichen Bericht hat keine Serie, an der `time() - …` hängen könnte — +es bleibt still, egal wie lange es kaputt ist. Dafür verlassen den Exporter jetzt zwei +Zahlen (`trivy_reports_total`, `trivy_report_read_errors`) mit je einer Regel: +`TrivyReportUnreadable` (>0 für 30 min) und `TrivyNoReports` (==0 für 1 h). Das schließt +die Lücke so weit, wie sie **ohne Soll-Liste der erwarteten Targets** zu schließen ist — +eine solche Liste wäre der nächste Schritt, ist aber ein eigener Umfang. + +Commit `9a10615` in `threadnet-operating`.