pm2 로그를 관리하는 모듈을 이용하자
pm2는 Nodejs에서 프로세스를 관리 하는 모듈이다.
아주 많이 사용되고 있으며 주요 기능은 프로세스 관리 및 모니터링을 제공한다. 또한 사용법이 간단하다.
# 설치
$> npm install pm2 -g
# 사용
$> pm2 start app.js
6개월 가량 운영하던 서비스에서 디스크 FULL 메시지를 받고 가장 많이 사용중인 파일을 확인하였는데, pm2 로그 파일이었다.
기본 설정을 사용시, 로그 파일은 한개만 생성되고 계속 사이즈가 증량되는 방식으로 제공한다.
pm2 로그를 관리 하기 위하여 검색 결과 pm2-logrotate를 찾았다. pm2 모듈로, 설치는 다음과 같이 하면 된다.
#설치
$> pm2 install pm2-logrotate
[PM2][Module] Module downloaded
[PM2][WARN] Applications pm2-logrotate not running, starting...
[PM2] App [pm2-logrotate] launched (1 instances)
== pm2-logrotate ==
┌────────────────┬─────────────────────┐
│ key │ value │
├────────────────┼─────────────────────┤
│ max_size │ 10M │
│ retain │ 30 │
│ compress │ false │
│ dateFormat │ YYYY-MM-DD_HH-mm-ss │
│ workerInterval │ 30 │
│ rotateInterval │ 0 0 * * * │
│ rotateModule │ true │
└────────────────┴─────────────────────┘
설치를 하면 다음과 같은 기본 설정이 반영 된다.
파일 한개의 최대 크기는 10M 이고 파일은 30개만 남는다. 파일명은 dateFormat을 기반으로 표시 되고 매일 1개의 파일이 생성된다.
설정을 변경하려면 다음과 같은 명령어를 이용하면 된다.
# (1KB)
$> pm2 set pm2-logrotate:max_size 1K
# (compress logs when rotated)
$> pm2 set pm2-logrotate:compress true
# (force rotate every minute)
$> pm2 set pm2-logrotate:rotateInterval '*/1 * * * *'
설치하고 사용이 참 쉬웠다.