pm2的日志模塊默認是每一個服務進程都分配兩個默認的日志文件
- 普通日志
- 錯誤日志
這兩個日志文件存放于/root/.pm2/logs中,如果pm2管理5個服務,那么該文件夾下總共有10個日志文件,并且隨著時間不斷增加,很容易就會產生很多個上g的日志文件,導致了服務器的磁盤空間不足的問題
解決方法:
- 合并日志: 將所有服務的日志合并到一個日志文件中
- 循環回滾保存 : 可以選擇1小時保存一份版本并且壓縮,合并日志清空,重新記錄
- 利用錯誤收集系統,保證服務的錯誤正常收集
- 在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小時的日志
```