Логи 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 (как я), вы можете использовать этот сайт.