pm2-logrotate 可做日志管理,具体功能不详细展开,下面将介绍如何安装。
环境:centos7
有网络情况下可使用:
pm2 install pm2-logrotate
没有网络只能离线安装,即:从一个有网络的机子安装pm2-logrotate,然后压缩成pm2-logrotate.tar.gz,拷贝至目标服务器的路径 /root/.pm2/modules/ ,然后解压,最后使用 pm2 启动,具体步骤如下:
1.从有网的机子打包 pm2-logrotate.tar.gz
cd /root/.pm2/modules/
tar -zcvf pm2-logrotate.tar.gz pm2-logrotate/
2.将 pm2-logrotate.tar.gz 拷贝至需要部署的目标机子的 /root/.pm2/modules/ 目录下,然后解压
cd /root/.pm2/modules/
tar -zxvf pm2-logrotate.tar.gz
3. 将 /root/.pm2/module_conf.json 也拷贝到对应的位置
module_conf.json文件内容:
{
"pm2-logrotate": {
"max_size": "100M",
"retain": "30",
"compress": false,
"dateFormat": "YYYY-MM-DD_HH-mm-ss",
"workerInterval": "30",
"rotateInterval": "0 0 * * *",
"rotateModule": true
},
"module-db-v2": {
"pm2-logrotate": {}
}
}
关键:
"module-db-v2": {
"pm2-logrotate": {}
}
有这个配置,则后面就可以使用 pm2 install pm2-logrotate
4.执行启动命令
启动有两种方式:
方式一(推荐):
pm2 install pm2-logrotate
这时,会提示正在更新pm2-logrotate,但实际上离线无法下载更新,这不影响,执行完毕会自动启动pm2-logrotate
方式二:
pm2 start --name "pm2-logrotate" /root/.pm2/modules/pm2-logrotate/node_modules/pm2-logrotate/app.js
显示上,跟方法一相比,是跟其他服务放在一起,没有单独在module,不过功能是正常使用的
# 保存(自启动)
pm2 save
# 查看是否已启动
pm2 ls
# 查看配置:
pm2 conf pm2-logrotate
# pm2 conf pm2-logrotate
Module: pm2-logrotate
$ pm2 set pm2-logrotate:max_size 10M
$ pm2 set pm2-logrotate:retain 30
$ pm2 set pm2-logrotate:compress false
$ pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
$ pm2 set pm2-logrotate:workerInterval 30
$ pm2 set pm2-logrotate:rotateInterval 0 0 * * *
$ pm2 set pm2-logrotate:rotateModule true
Module: module-db-v2
# 更改配置,设置单个日志文件最大为100M
pm2 set pm2-logrotate:max_size 100M
附:关键配置说明:
compress 是否压缩日志,默认false
max_size 单个日志文件的大小
retain 保留的文件数量
workerInterval 检查日志大小的时间间隔,单位为秒
rotateModule 是否将 pm2-logrotate 模块日志分割(pm2-logrotate日志在/root/.pm2/logs/下)
dateFormat 日志文件名后缀追加的日期格式,不用修改
rotateInterval 定时分割日志cron
补充说明:日志分割标准有2种,一是按大小,即日志大小到达设定的max_size 则分割,workerInterval这个配置对其有效,二是在某个时间点进行分割,rotateInterval这个配置对其生效