我们使用节点模块pm2来运行服务器和捕获应用程序日志。
但是由于流量非常大,巨大的数据被存储在一个文件中,这个文件大约超过100 in。
是否有可能每1小时更改一次文件,或每1Gb文件不重新启动服务器?
目前,我们正在手动执行此操作,重新启动服务器并重命名正在创建问题的现有文件。
发布于 2021-04-28 02:11:52
您可以使用PM2-对数旋转
pm2 install pm2-logrotate
# max log size is 1GB
pm2 set pm2-logrotate:max_size 1G
# compress logs when rotated (optional)
pm2 set pm2-logrotate:compress true
# force rotate every hours
pm2 set pm2-logrotate:rotateInterval '0 * * * *'
发布于 2022-04-12 21:09:31
我个人不使用PM2日志旋转,因为它不再被维护,更糟糕的是,它是相当错误的。有一次,我在我的生产服务器上使用它,它立即多次创建大日志文件,导致0%的空间,并使服务器崩溃。那可不是个好日子。
PM2网站有一个名为“设置本机日志旋转”的部分,它告诉您运行:
sudo pm2 logrotate -u user
显然,将用户更改为运行pm2的实际用户。它将在/etc/logrotate.d/pm2上创建一个文件,并对其进行编辑,使其看起来如下所示:
/home/user/.pm2/pm2.log /home/user/.pm2/logs/*.log {
su user user
rotate 12
weekly
missingok
notifempty
compress
delaycompress
copytruncate
create 0640 user user
}
最重要的部分是su user user
部分。Log转速作为root运行,并且它不喜欢创建非root用户可以查看的日志文件,因此它将失败,通常情况下是静默的。这违背了国家预防机制的理念,后者倾向于在没有特权的情况下管理事情。通过在log旋转配置文件中指定用户,您就可以解决这个问题。
我花了一段时间才弄明白-希望它能帮上忙。
https://stackoverflow.com/questions/66689376
复制