Логи Pm2 с огромным размером, используя pm2-logrotate

У меня проблемы с pm2.

Я использую модуль pm2-logrotate, но журналы имеют огромный размер, такой как 1.7G, и не учитывают мою конфигурацию, которая

== pm2-logrotate ==
┌────────────────┬───────────────┐
│ key            │ value         │
├────────────────┼───────────────┤
│ compress       │ true          │
│ rotateInterval │ * * */1 * * * │
│ max_size       │ 10M           │
│ retain         │ 1             │
│ rotateModule   │ true          │
│ workerInterval │ 30            │
└────────────────┴───────────────┘

Итак, что я могу сделать, чтобы pm2 мог удалить старые журналы и не начать ломать мою машину огромным количеством данных?

1 ответ

У меня тоже была эта пробема. Я думаю, что сейчас есть ошибка в pm2-logrotate где workerIntervalопция игнорируется, и она меняется только в соответствии с опцией (то есть один раз в день по умолчанию). А это означает, что файлы могут стать намного больше, чем размер, указанный вами с помощью max_sizeвариант. Смотрите варианты здесь.

Я "решил" это, установив rotateIntervalвариант каждые 30 минут вместо одного раза в день по умолчанию. Вот команда:

      pm2 set pm2-logrotate:rotateInterval '*/30 * * * *'

Проблема в том, что это означает, что ваши журналы будут обновляться каждые 30 минут, независимо от их размера. Другое временное решение - запустить pm2 flush(который удаляет все журналы) с помощью crontab. Первый забег crontab -e в вашем терминале, а затем добавьте эту строку в файл:

      */30 * * * * pm2 flush

Вы также можете очистить конкретное приложение с помощью pm2 flush your_app_nameесли у вас есть конкретное приложение, которое создает много журналов. Если вы плохо помните, как работает синтаксис времени cron (как я), вы можете использовать этот сайт.

Другие вопросы по тегам