Практическое задание

Эта задача — шаг 15 курса «Логи: разбор и обслуживание»

logrotate для лога очереди по размеру

средне~7 мин

Воркер очереди пишет в /var/log/queue/worker.log, и лог уже перевалил за 3 MiB. Опиши ротацию в /etc/logrotate.d/queue-worker: ротировать, только когда лог больше 500k, хранить 5 старых копий, сжимать их и после ротации создавать новый пустой worker.log.

Что потренируешь:
  • logrotate
  • ротация по размеру
  • size
  • compress
  • create

Разбор темы

logrotate срабатывает по порогу: по расписанию (daily, weekly) или по размеру файла. Порог по размеру удобен для логов, которые растут рывками: пока файл меньше порога, ротация пропускается, даже если её запустили. При ротации текущий файл переименовывается в .1, старые копии сдвигаются, а лишние сверх лимита удаляются; сжатие экономит место на архивах. Директива создания нового файла нужна, когда процесс пишет по пути, а не держит дескриптор: без неё после ротации лога на месте просто не окажется. Режим -d показывает решение logrotate без реальных действий — им удобно проверять конфиг.

Что проверяется

  1. конфиг /etc/logrotate.d/queue-worker описывает лог воркера
  2. хранится 5 сжатых копий
  3. ротация срабатывает только после 500k
  4. принудительная ротация даёт worker.log.1.gz
  5. на месте лога — новый пустой worker.log

Как это выглядит