我们使用节点模块 pm2 来运行服务器并捕获应用程序日志。
但由于流量非常巨大,大量数据被存储在单个文件中,大约超过 100Gb。
我们是否有可能在不重新启动服务器的情况下每 1 小时或每 1Gb 文件更改一次文件?
目前我们正在手动执行此操作,重新启动服务器并重命名造成问题的现有文件。
是否可以停止或禁用 pm2 模块?我确实安装了 pm2-logrotate 模块,但最近社区发现了一个影响我们服务的问题,我们需要优先停止或禁用该模块。
模块不断重启,节点应用程序正在生产中。所以我们不能只是停止 pm2 并寻找修复程序。
nodejs version: "4.8.2"
pm2 version "2.7.2"
pm2-logrotate version "2.4.0"
OS-Release: "Raspbian Stretch"
$ pm2 describe pm2-logrotate | grep -i script
? script path ? /home/user/.pm2/node_modules/pm2-logrotate/app.js ?
? script args ? N/A ?
? script id ? 0 ?
$ pm2 describe pm2-logrotate | grep -i id
Describing process with id 0 - name pm2-logrotate
? pid path ? /home/user/.pm2/pids/pm2-logrotate-0.pid ?
? script id ? 0 ?
$ cat /home/user/.pm2/pids/pm2-logrotate-0.pid
7723
Run Code Online (Sandbox Code Playgroud) 我在使用 pm2 时遇到了麻烦。
我正在使用一个名为 pm2-logrotate 的模块,但日志有一个像 1.7G 这样的巨大 gize 并且不尊重我的配置
== pm2-logrotate ==
??????????????????????????????????
? key ? value ?
??????????????????????????????????
? compress ? true ?
? rotateInterval ? * * */1 * * * ?
? max_size ? 10M ?
? retain ? 1 ?
? rotateModule ? true ?
? workerInterval ? 30 ?
??????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
那么我该怎么做才能让 pm2 删除旧日志而不用大量数据开始粉碎我的机器?
我为PM2 Logrotate设置了以下设置:
rotateInterval= * * 23 * * *
max_size= 100MB
Run Code Online (Sandbox Code Playgroud)
我想每23小时轮换一次日志,并且/或者最多保留100MB的日志文件。但是由于某些奇怪的原因,PM2 Logrotate经常旋转/创建新日志文件的方式太频繁,因此我无法查看日志的历史记录,即。e pm2 logs --lines 300
仅显示已创建新日志。这是我在终端中看到的输出:
pm2-logrotate > "/root/.pm2/logs/scraper-init-out-1__2017-06-01_08-00-25.log" has been created
pm2-logrotate > "/root/.pm2/logs/pm2-logrotate-out-2__2017-06-01_08-00-25.log" has been created
pm2-logrotate > "/root/.pm2/logs/pm2-logrotate-out-2__2017-06-01_08-00-55.log" has been created
pm2-logrotate > "/root/.pm2/logs/pm2-logrotate-out-2__2017-06-01_08-01-25.log" has been created
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?