fix(tradein/devops): логи в journald — переживают пересоздание контейнера (#2741) #2758

Merged
bot-backend merged 1 commit from fix/2741-log-retention into main 2026-08-06 21:24:58 +00:00

1 commit

Author SHA1 Message Date
62f64f36cb fix(tradein/devops): логи в journald — переживают пересоздание контейнера (#2741)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
CI / changes (pull_request) Successful in 7s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
json-file пишет в /var/lib/docker/containers/<id>/ — каталог удаляется вместе
с контейнером. При ~20 деплоях в сутки окно жизни лога редко больше часа, а
скрейперы работают ночью: к утреннему разбору логов заведомо нет. За один день
это трижды сорвало разбор (#2695 — 1600 отказов Авито, #2698, #2676).

journald отдаёт stdout/stderr в /var/log/journal на хосте: запись переживает
`docker rm` и адресуется по времени (--since/--until), а не «сколько осталось
от последнего рестарта». Глубина ограничена journald глобально (SystemMaxUse,
дефолт 4G), а не 60 МБ на сервис, обнуляемыми деплоем.

Проверено на проде до правки: контейнер с --log-driver=journald + --rm, после
его удаления запись читается по -t и по CONTAINER_NAME. Замеры там же:
/var/log/journal = 2.3G за 103 дня (~22 МБ/сутки), tradein добавит единицы-
десятки МБ/сутки (5.8k карточек за сутки по scrape_runs, ~153 Б/строку) —
вытеснения не будет неделями при требуемых «сутки-двое».

`docker logs <c>` работает как раньше (демон читает журнал сам). Прямой
journalctl под deploy-юзером не работает — он в docker, но не в adm; рабочий
docker-однострочник и разовая команда владельцу записаны в комментарии.
2026-08-07 02:19:11 +05:00