Files
security-alert-center/docs/ingest-mass-update-backlog.ru.md
T
PapaTramp d47131cd9f feat: live update log in UI and suppress lifecycle Telegram during SAC update
Poll remote update_script.log while SSH update runs; skip lifecycle notify
when host agent_update_state is running (SAC v0.5.1).
2026-07-08 11:46:53 +10:00

3.5 KiB
Raw Blame History

Backlog: ingest и массовое обновление агентов

Статус: ToDo (не в текущем релизе).
Контекст: массовый SSH-update через SAC (10+ хостов) + sac-deploy в одно окно → часть POST в ingest «теряется» с точки зрения агента (SAC POST HTTP :), flood в Telegram (fallback + watchdog).
Связано: runbook-ops.md, agent-integration.md, ssh-monitor security-roadmap.ru.md.

Увеличение SAC_DB_POOL_SIZE / defer daily в 0.5.0 лечит штурм суточных отчётов и пул БД; не снимает узкие места ниже при одновременном restart многих агентов.


Операционно (сразу, без кода)

  • Не совмещать sudo /opt/sac-deploy.sh и массовое «Обновить ssh-monitor (SSH)» по многим хостам — сначала deploy SAC, потом агенты (или наоборот).
  • Обновлять Linux-хосты пачками по 23, не все подряд.
  • На зрелых хостах перевести UseSAC=exclusive (нет дубля в Telegram с агента при fallback); watchdog по-прежнему шлёт в Telegram сам.
  • Перед первым SSH-update с SAC: ssh-keyscan в config/ssh_known_hosts (см. runbook).
  • В sac-api.env: только KEY=value на строку, комментарии отдельной строкой с #.

SAC (backend / deploy)

  • Defer notify_lifecycle и notify_auth_login в background (как report.daily.*schedule_notify_daily_report), чтобы ingest не ждал Telegram API.
  • Uvicorn workers: 4 по умолчанию или SAC_UVICORN_WORKERS в sac-api.env / unit.
  • nginx: отдельный location для POST /api/v1/events с увеличенным proxy_read_timeout (сейчас общий location / — 60s).
  • Опционально: метрики/лог длительности ingest и очереди при burst.
  • UI: предупреждение при массовом update («N хостов — рекомендуется пачками»).

ssh-monitor (агент)

  • При shutdown / SIGTERM не увеличивать sac-fail.count (или отдельный флаг «update in progress»).
  • После успешного heartbeat сбрасывать fail counter агрессивнее (уже частично есть).
  • Watchdog: не слать Telegram при штатном restart во время SAC-update (state file /var/lib/ssh-monitor/agent-update-in-progress от updater) — 2.2.1-SAC
  • Lifecycle stop/start при SAC-update: подавление на агенте + state file — 2.2.1-SAC
  • Документировать рекомендуемый SAC_TIMEOUT_SEC при тяжёлом ingest (сейчас 45s).

Принято / сделано

  • Pool БД 15+25, defer daily push — SAC 0.5.0
  • sac-deploy.sh без source конфига, preflight pydantic — SAC fa1bd41
  • Watchdog: строка 🖥️ Сервер: в Telegram — ssh-monitor 2.1.9-SAC

После реализации пунктов SAC — bump APP_VERSION и runbook.