# E2E и нагрузочное тестирование SAC + агенты Чеклист после freeze MVP (`work-plan.md`). Отмечайте дату и хост. ## Дни 1–2: функциональный E2E ### Linux (ssh-monitor, `UseSAC=dual` или `exclusive`) - [ ] `ssh-monitor --check-sac` → HTTP 201/202, событие `agent.test` в UI - [ ] Успешный SSH login → `ssh.login.success` в SAC + Telegram (dual) - [ ] Неудачный SSH → `ssh.login.failed` - [ ] `SERVER_DISPLAY_NAME` задан → в SAC **Хосты** отображается display name - [ ] Heartbeat → `agent.heartbeat`, хост не `stale` в пределах `SAC_HEARTBEAT_STALE_MINUTES` - [ ] Daily report → `report.daily.ssh` (если включён) ### Windows (RDP-login-monitor, `UseSAC=dual`) - [ ] `-CheckSac` → ingest OK - [ ] Старт монитора → `agent.lifecycle` в SAC (HTTP 201), Telegram «ЗАПУЩЕН» - [ ] Версия в UI **Хосты** = `$ScriptVersion` после деплоя - [ ] `$ServerDisplayName` → display name в SAC - [ ] 4624/4625 (тестовый вход) → `rdp.login.*` при наличии событий - [ ] Dashboard: новое событие появляется в «Последние события» без F5 (~5 с) ### SAC UI - [ ] Problems: open → ack → resolve - [ ] Дубликат `event_id` → HTTP 409, одна строка в БД - [ ] Правило brute-force (порог событий) → Problem ## Дни 3–4: нагрузка и устойчивость - [ ] Пакет 50+ `ssh.login.failed` с одного IP → агрегация/Problem, без зависания UI - [ ] Повтор ingest с тем же `event_id` → 409 - [ ] Остановка SAC API → spool на агенте, восстановление после `/health` - [ ] Flapping heartbeat: stale → warning в health / хостах ## День 5: регресс - [ ] Обновление RDP через Deploy: одна версия в `deployed_version.txt`, ingest после 1.2.14+ JSON - [ ] `sac-retention.timer` active; ручной `systemctl start sac-retention.service` — exit 0 - [ ] Известные issues занесены в issue tracker / `known-issues.md` ## Дни 6–7: soak - [ ] 48–72 ч dual mode: нет роста spool без причины, диск БД в норме - [ ] Только bugfix по результатам выше ## Версии на момент чеклиста | Компонент | Версия | |-----------|--------| | ssh-monitor | 1.2.6-SAC | | RDP-login-monitor | 1.2.15-SAC | | security-alert-center | см. `backend/app/version.py` |