Ротация логов процессов в supervisord

Если вы пользуетесь supervisord, то наверняка сталкивались с неудобством ротации логов в нём.

Типичная настройка в конфигурационном файле процесса в /etc/supervisor.d/ выглядит так:

stdout_logfile=/var/log/progam/process_%(process_num)02d.log_x000D_stdout_logfile_maxbytes=100MB_x000D_stdout_logfile_backups=50_x000D_

Логи складываются в отдельные файлы и ротируются по достижении размера в 100 мегабайт. Данный способ не очень удобен, особенно если нужно искать логи за определённую дату.

В этом случае на помощь приходит logrotate.

В конфигурационном файле процесса меняем опции логов:

stdout_logfile_maxbytes=0_x000D_stdout_logfile_backups=0

И добавляем в /etc/logrotate.d/processname:

/var/log/program/process_*.log {_x000D_ create 0600 root root_x000D_ su root root_x000D_ daily_x000D_ copytruncate_x000D_ compress_x000D_ missingok_x000D_ notifempty_x000D_}

Теперь логи будут складываться в «суточные» файлы и автоматически сжиматься.

EnglishRussianUkrainian