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

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

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

stdout_logfile=/var/log/progam/process_%(process_num)02d.log
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=50

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

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

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

stdout_logfile_maxbytes=0
stdout_logfile_backups=0

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

/var/log/program/process_*.log {
    create 0600 root root
    su root root
    daily
    copytruncate
    compress
    missingok
    notifempty
}

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *