Пример конфигурации logrotate для PM2

О PM2 уже было немного сказано ранее. Если вкратце, то это менеджер nodejs-приложений.

PM2 позволяет логировать вывод node-процессов, однако не содержит инструмента для ротации логов. Проблема решается с помощью linux-утилиты logrotate.

Для ротации логов PM2 с помощью logrotate необходимо добавить в файл /etc/logrotate.conf следующую конфигурацию:

/home/node_user/pm2_logs/*.log {
    monthly
    size 10M
    compress
    missingok
    rotate 5
    copytruncate
    create 640 node_user node_user
}

Пояснения

monthly — менять логи ежемесячно.

size 10M — заменять лог-файл, если он достиг размера в 10мб. Имеет приоритет над monthly.

compress — сжимать старые логи (по умолчанию в *.gz).

missingok — не уведомлять, если логи отсутствуют.

rotate 5 — общее количество хранимых логов одного типа.

copytruncate — важная директива. Включает копирование содержимого лога в новый файл с обрезанием изначального. Позволяет заменить лог-файл без необходимости сообщать PM2 об этом.

create 640 node_user node_user — права, владелец и группа создаваемых логов.