반응형
안녕하세요 코딩하는헬린이 입니다.
오늘은 pm2 (node.js 관리 모듈)인 로그를 관리하는 작업을 포스팅하겠습니다.
pm2-logrotate를 사용하면 좋은점은 파일 리사이즈, 자동 삭제 등 지원해 주는 기능이 많습니다.
물론 다른 방식으로 커스텀 하여 사용 할 수 있는 모듈은 많지만 저는 이것을 사용하였습니다. 추가로 설정해야 하는 부분이 적어서요 ㅎ
#설치
➜ ~ pm2 install pm2-logrotate
간단하게 위에와 같은 명령어로 모듈을 설치 가능하며 ,
설치가 완료된 후 아래와 같이 표시가 됩니다.
pm2 set ----- 으로 표시되어 보이는것은 default 설정값이며 변경 가능합니다.
설정 내용으로 보자면 공식 문서를 확인하여 번역기로 확인하였습니다.
- max_size(기본값은 10M): 파일 크기가 이 값보다 커지면 회전합니다(실제로 파일이 제한을 통과한 후 작업자가 파일을 확인할 수 있음). 다음 끝에서 단위를 지정할 수 있습니다. 10G, 10M,10K
- retain(기본값은 30파일 로그): 이 숫자는 한 번에 유지되는 회전된 로그의 수입니다. 이는 유지 = 7인 경우 최대 7개의 회전된 로그와 현재 로그가 있음을 의미합니다.
- compress(기본값 false: ): 회전된 모든 로그에 대해 gzip을 통한 압축 활성화
- dateFormat(기본값 YYYY-MM-DD_HH-mm-ss) : 로그 파일명 사용 데이터 형식
- rotateModule(기본값은 true) : 다른 앱처럼 pm2 모듈의 로그를 회전합니다.
- workerInterval(기본값 30은 초) : 작업자가 로그 크기를 확인하는 간격을 제어 할 수 있습니다 (최소값은 1).
- rotateInterval(기본값은 0 0 * * *매일 자정): 이 cron은 실행될 때 강제로 회전하는 데 사용됩니다. 우리는 node-schedule 을 사용하여 cron을 예약하므로 node-schedule에 대한 모든 유효한 cron은 이 옵션에 대한 유효한 cron입니다. 크론 스타일:
- TZ(기본값은 시스템 시간): 저장된 로그 파일을 오프셋하는 데 사용되는 표준 tz 데이터베이스 시간대 입니다. 예를 들어, Etc/GMT+1시간별 로그가 있는 의 값은 로그 이름에 14시간 13(GMT+1) 과 함께 GMT 시간에 파일을 저장합니다 .
https://www.npmjs.com/package/pm2-logrotate
그래서 저는 많은 설정은 필요없을듯 하여 이정도로만 추가 설정하였습니다.
파일사이즈, gzip 변환 유무, 파일 갯수, 생성주기 만 설정하였습니다.
$ pm2 set pm2-logrotate:max_size 1M
$ pm2 set pm2-logrotate:retain 14
$ pm2 set pm2-logrotate:compress false
$ pm2 set pm2-logrotate:rotateInterval 0 0 12 * *
더 좋은 Log 관리 모듈을 알고 계시다면 답글 부탁드립니다.
감사합니다.
반응형