From f110cf72083da2e7c5cc3dddce155606ae4b0443 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Mon, 13 Jul 2026 19:30:53 +0300 Subject: [PATCH] =?UTF-8?q?Backlog:=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=B8=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=20?= =?UTF-8?q?=D0=B8=D0=B7=20tududi=20(=D0=B4=D0=B8=D1=81=D0=BA-=D0=B0=D0=BB?= =?UTF-8?q?=D0=B5=D1=80=D1=82=D1=8B,=20logrotate,=20=D0=B0=D1=83=D0=B4?= =?UTF-8?q?=D0=B8=D1=82=20=D0=B1=D0=B5=D0=B7=D0=BE=D0=BF=D0=B0=D1=81=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/backlog/README.md | 6 +++++- docs/backlog/backup-logs-logrotate.md | 13 +++++++++++++ docs/backlog/disk-usage-alerts.md | 18 ++++++++++++++++++ docs/backlog/security-audit.md | 14 ++++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 docs/backlog/backup-logs-logrotate.md create mode 100644 docs/backlog/disk-usage-alerts.md create mode 100644 docs/backlog/security-audit.md diff --git a/docs/backlog/README.md b/docs/backlog/README.md index ffde3ba..f26d50a 100644 --- a/docs/backlog/README.md +++ b/docs/backlog/README.md @@ -8,7 +8,8 @@ Приоритет — грубая оценка «ценность / стоимость», не обязательство к порядку. Пункты с пометкой _(ансибл-ревью)_ пришли из ревью плейбуков -[`docs/drafts/ansible-review.md`](../drafts/ansible-review.md) (2026-05-25). +[`docs/drafts/ansible-review.md`](../drafts/ansible-review.md) (2026-05-25); +_(tududi)_ — перенесены из инбокса задач в tududi (проект Pet Project Server). Драфты `timeweb.md` и `timeweb-migration-log.md` — исторические логи уже завершённой миграции в Timeweb (cutover 2026-05-23), в беклог не входят. @@ -22,8 +23,10 @@ - [Gitea runner on-demand в Yandex Cloud](gitea-runner-on-demand.md) — раннер активен только во время сборки; webhook→Cloud Function стартует ВМ, probe/decide гасят по idle; экономия ~95% - [Синхронизация общих Ansible-ролей](shared-roles-sync.md) — `owner`/`eget`/`secrets` дублируются между репозиториями и дрейфуют; канон в ansible-shared + rsync-таски invoke +- [Уведомления о размере приложений и диске](disk-usage-alerts.md) — алерты на заполнение диска и аномальный рост data-томов; сервер ресурсно ограничен _(tududi)_ - [Composable-роль `backup`](ansible-backup-role.md) — бэкап — самый чистый шов для extraction (одинаков у всех, различается только список targets) _(ансибл-ревью)_ - [Точечные фиксы идемпотентности и баг имени play](ansible-quick-fixes.md) — быстрые правки: имя play в wanderer, `changed_when` в netdata/eget, backup-targets через template _(ансибл-ревью)_ +- [Аудит безопасности сервера](security-audit.md) — разовый проход по экспозиции, Authelia, правам пользователей и секретам; находки дробятся в беклог _(tududi)_ ## Низкий @@ -31,3 +34,4 @@ - [Причесать роль `owner` под конвенции](ansible-owner-role-cleanup.md) — `assert` вместо `fail`+`when`, `loop` вместо `with_*`, добавить `meta`/README _(ансибл-ревью)_ - [Инвентарь: `host_vars`, группы, точечный `become`](ansible-inventory-hostvars.md) — хост-специфику в `host_vars/server.yml`, хост в именованную группу, глобальный root → точечный become _(ансибл-ревью)_ - [Фоновая зачистка стиля и конфигурации](ansible-style-nits.md) — sudoers.d, профиль ansible-lint, `ansible.cfg`, кавычки, `cache_valid_time` _(ансибл-ревью)_ +- [Logrotate для логов бэкапов](backup-logs-logrotate.md) — логи `backup-all.py`/restic копятся без ротации _(tududi)_ diff --git a/docs/backlog/backup-logs-logrotate.md b/docs/backlog/backup-logs-logrotate.md new file mode 100644 index 0000000..bcbeb21 --- /dev/null +++ b/docs/backlog/backup-logs-logrotate.md @@ -0,0 +1,13 @@ +# Logrotate для логов бэкапов + +**Приоритет:** низкий + +Логи бэкапов на сервере (вывод `backup-all.py` / restic) копятся без ротации — +со временем растут неограниченно. Настроить logrotate (отдельный файл в +`/etc/logrotate.d/` через `copy`/`template`) с разумным retention и сжатием. +Завести в `playbook-backups.yml` рядом с настройкой самих бэкапов. + +Из tududi (проект Pet Project Server). + +Связано: playbook-backups.yml, files/backups/backup-all.py, +project_restic_intelligent_tiering. diff --git a/docs/backlog/disk-usage-alerts.md b/docs/backlog/disk-usage-alerts.md new file mode 100644 index 0000000..3091f20 --- /dev/null +++ b/docs/backlog/disk-usage-alerts.md @@ -0,0 +1,18 @@ +# Уведомления о размере приложений и заполнении диска + +**Приоритет:** средний + +Сервер ресурсно ограничен (диск небольшой, RAM ~80% на штатной нагрузке — +`project_server_specs`), а рост данных сейчас никак не сигнализируется: узнаёшь, +только когда место кончилось. Нужны алерты на (1) заполнение диска выше порога +(общий том + data-тома приложений) и (2) аномальный рост размера отдельного +приложения (лог/БД/кэш распух). Реализация — через Netdata (disk space collector ++ алерты в `health.d/*.conf`), тот же канал нотификаций, что и у алертов на +контейнеры. Пороги калибровать под фактический объём диска. + +Отдельный сигнал от [container-alerts](container-alerts.md) (там — здоровье +контейнеров, здесь — ёмкость). Канал нотификаций общий. + +Из tududi (проект Pet Project Server). + +Связано: playbook-netdata.yml, container-alerts, project_server_specs. diff --git a/docs/backlog/security-audit.md b/docs/backlog/security-audit.md new file mode 100644 index 0000000..763ac80 --- /dev/null +++ b/docs/backlog/security-audit.md @@ -0,0 +1,14 @@ +# Аудит безопасности сервера + +**Приоритет:** средний + +Провести аудит безопасности сервера и конфигураций (Fable / `/security-review`): +поверхность экспозиции наружу (Caddy, открытые порты, UFW), аутентификация и +границы Authelia, права системных пользователей приложений, обращение с +секретами (vault, env-файлы, docker socket), настройки docker-compose. Разовый +проход; найденное дробится на отдельные пункты беклога. + +Из tududi (проект Pet Project Server). + +Связано: playbook-ufw.yml, playbook-caddyproxy.yml, playbook-authelia.yml, +roles/owner, roles/secrets.