04301ab359
Track agent.heartbeat and report.daily.ssh per host; show online/stale on Hosts UI; dashboard counters and SAC_HEARTBEAT_STALE_MINUTES config.
106 lines
3.5 KiB
Markdown
106 lines
3.5 KiB
Markdown
# План работ — Security Alert Center
|
||
|
||
**Актуальный порядок:** сначала подготовка агентов (параллельно с минимальным SAC ingest), затем полный SAC MVP, затем prod rollout `UseSAC=exclusive`.
|
||
|
||
---
|
||
|
||
## Фаза 0. Документация ✅
|
||
|
||
| # | Задача | Статус |
|
||
|---|--------|--------|
|
||
| 0.1–0.3 | ТЗ, архитектура, схема, deployment | ✅ |
|
||
| 0.5 | Репозиторий git.kalinamall.ru | ✅ |
|
||
| 0.6 | Multi-root workspace | ✅ |
|
||
|
||
---
|
||
|
||
## Фаза 1A. Агенты — контракт SAC (параллельно с 1B)
|
||
|
||
**Репозитории:** `ssh-monitor`, `RDP-login-monitor`
|
||
**Прод:** везде `UseSAC=off` по умолчанию.
|
||
|
||
| # | Задача | Статус |
|
||
|---|--------|--------|
|
||
| 1A.1 | Параметры `UseSAC`, `SAC_URL`, `SAC_API_KEY`, spool | ✅ ssh-monitor |
|
||
| 1A.2 | `build_sac_event()` + `send_sac_event()` по schema v1 | ✅ `sac-client.sh` |
|
||
| 1A.3 | `notify_or_sac()`: off / dual / exclusive / fallback | ✅ + маппинг событий |
|
||
| 1A.4 | `--check-sac` / `Test-SacConnection` | ✅ ssh-monitor `--check-sac` |
|
||
| 1A.5 | README агентов, first deploy | ✅ `first_deploy.sh`, `--deploy` |
|
||
|
||
**Выход:** на тестовом хосте `dual` шлёт JSON в SAC + Telegram.
|
||
|
||
---
|
||
|
||
## Фаза 1B. SAC — минимальный ingest ✅ (prod)
|
||
|
||
| # | Задача | Статус |
|
||
|---|--------|--------|
|
||
| 1B.1 | Scaffold backend FastAPI | ✅ |
|
||
| 1B.2 | PostgreSQL + Alembic (hosts, events, api_keys) | ✅ |
|
||
| 1B.3 | `POST /api/v1/events`, `GET /health` | ✅ prod `sac.kalinamall.ru` |
|
||
| 1B.4 | systemd + nginx + TLS | ✅ |
|
||
| 1B.5 | Валидация JSON Schema v1 | ✅ |
|
||
|
||
**Выход:** ingest с curl и UI на prod — достигнут.
|
||
|
||
---
|
||
|
||
## Фаза 1C. SAC — MVP UI и оповещения
|
||
|
||
| # | Задача | Статус |
|
||
|---|--------|--------|
|
||
| 1C.1 | Frontend Vue: Events, Hosts | ✅ prod |
|
||
| 1C.2 | Auth JWT, admin bootstrap | ✅ prod |
|
||
| 1C.3 | Problems (базовые правила) | ✅ API + UI (деплой ⏳) |
|
||
| 1C.4 | Telegram из SAC | ✅ backend (деплой + TELEGRAM_* в env) |
|
||
| 1C.5 | Dashboard (3 виджета), SSE | ✅ v0.2.0 |
|
||
|
||
**Выход:** тег `v0.2.0-mvp`.
|
||
|
||
---
|
||
|
||
## Фаза 2. Пилот и exclusive
|
||
|
||
| # | Задача |
|
||
|---|--------|
|
||
| 2.1 | E2E: 1 Linux + 1 Windows, `UseSAC=exclusive` | ✅ Linux [pilot-2.1-exclusive.md](pilot-2.1-exclusive.md) |
|
||
| 2.2 | Daily report / heartbeat через SAC | ✅ [pilot-2.2-heartbeat-reports.md](pilot-2.2-heartbeat-reports.md) |
|
||
| 2.3 | fallback на агентах | ✅ счётчик `SAC_FALLBACK_FAILURES` в sac-client |
|
||
|
||
**Выход:** `v0.2.0`.
|
||
|
||
---
|
||
|
||
## Фаза 3. Эксплуатация
|
||
|
||
См. [roadmap.md](roadmap.md).
|
||
|
||
---
|
||
|
||
## Gantt (упрощённо)
|
||
|
||
```mermaid
|
||
gantt
|
||
title SAC — актуальный план
|
||
dateFormat YYYY-MM-DD
|
||
section Документы
|
||
Фаза 0 :done, 2026-05-26, 1d
|
||
section SAC
|
||
1B ingest+deploy :done, 2026-05-26, 1d
|
||
1C UI базовый :done, 2026-05-26, 1d
|
||
1C notify+dash :active, 2026-05-27, 14d
|
||
section Агенты
|
||
1A UseSAC dual :2026-05-26, 10d
|
||
section Prod
|
||
Пилот exclusive :2026-06-16, 7d
|
||
```
|
||
|
||
---
|
||
|
||
## См. также
|
||
|
||
- [install-ubuntu-24.04.md](install-ubuntu-24.04.md) — подготовка сервера
|
||
- [operations-prod-status.md](operations-prod-status.md) — статус prod и деплой
|
||
- [roadmap.md](roadmap.md)
|
||
- [TZ.md](TZ.md)
|