pm2日志管理

pm2的日志模块默认是每一个服务进程都分配两个默认的日志文件

  • 普通日志
  • 错误日志
    这两个日志文件存放于/root/.pm2/logs中,如果pm2管理5个服务,那么该文件夹下总共有10个日志文件,并且随着时间不断增加,很容易就会产生很多个上g的日志文件,导致了服务器的磁盘空间不足的问题

解决方法:

  1. 合并日志: 将所有服务的日志合并到一个日志文件中
  2. 循环回滚保存 : 可以选择1小时保存一份版本并且压缩,合并日志清空,重新记录
  3. 利用错误收集系统,保证服务的错误正常收集
  • 在pm2的配置文件中加入以下配置项
    output: '/root/.pm2/logs/out.log',
    error: '/root/.pm2/logs/error.log',
    merge_logs: true
  • 安装pm2-logrotate
    pm2 install pm2-logrotate@2.2.0
  • 配置循环回滚策略
    ┬ ┬ ┬ ┬ ┬ ┬
    │ │ │ │ │ |
    │ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun)
    │ │ │ │ └───── month (1 - 12)
    │ │ │ └────────── day of month (1 - 31)
    │ │ └─────────────── hour (0 - 23)
    │ └──────────────────── minute (0 - 59)
    └───────────────────────── second (0 - 59, OPTIONAL)
    pm2 set pm2-logrotate:rotateInterval '* * */1 * *'     //每小时备份
    pm2 set pm2-logrotate:compress true    //压缩
    pm2 set pm2-logrotate:retain 3  //备份最多3份,也就是备份最进3小时的日志
    ```