✔pm2 소개
회사에서 운영중인 서비스 중 하나가 node.js로 구축이 돼있고 이를 pm2로 관리해주고 있다.
pm2란 Process Manager의 준말로 node.js를 관리해주는 어플리케이션이다.
✔pm2 설치 및 구동
기존에 pm2가 없으면 명령어를 통해 설치를 해주면 된다.
npm install pm2
그리고 프로젝트를 구동시킬때는 pm2 start app.js 와 같은 명령어를 통해 구동시켜주면 된다.
✔pm2 활용하기
현재 돌아가고있는 pm2는 $pm2 list를 통해 확인할 수 있다.
구동중인 프로젝트의 로그를 보고싶다면 $pm2 log {id}를 입력하면 해당 프로젝트의 로그를 실시간으로 확인할 수 있다.
또한 pm2 모듈을 설치하면 root경로에 .pm2/logs/app-out.log 파일이 생성이 되는데 로그가 쌓이는 파일이다.
✔pm2 log파일 일자별 생성하기
최초 pm2 설치를 하면 app-out.log 파일에만 로그가 저장이 되는데 여러날짜를 거듭할수록 파일 사이즈가 커져서 특정 로그를 찾을때 시간이 오래걸린다. 때문에 로그파일을 일자별로 나누어 관리한다.
pm2-logrotate 모듈을 통해 설정할 수 있다.
1. pm2 install pm2-logrotate ( 특정버전을 설치할경우 npm install 처럼 모듈이름뒤 @ 붙이고 버전 명시)
2 . pm2 set list 기본으로 설정된 값이 있다.
3. 수정이 필요할 경우 pm2 set pm2-logrotate:본인이 설정하고싶은 옵션 입력
- max_size(default=10M): 파일 크기가 이 값보다 커지면 rotate ,단위: 10G, 10M,10K
- retain(default=30files): rotate된 로그파일을 몇개나 가지고 있을지 지정
- compress(default=false): rotated 로그에 대해 gzip을 통한 압축 활성화
- dateFormat(default=YYYY-MM-DD_HH-mm-ss) : 로그 파일명 사용 데이터 형식
- rotateModule(default=true) : 다른 앱처럼 pm2 모듈의 로그를 회전
- workerInterval(default=30) : 작업자가 로그 크기를 확인하는 간격을 제어 (최소값은 1)
- rotateInterval(default=0 0 * * *매일 자정):cron job 매일 자정 log file reset
설정 변경 명령어 : EX) pm2 set pm2-logrotate:retain 100
'회사 업무' 카테고리의 다른 글
SpringBoot와 통신하는 자바 프로젝트 (2) | 2023.11.30 |
---|---|
ip 도메인 연결하기 (2) | 2023.11.28 |
위치기반 api 서버에 설치하기 (2) | 2023.11.28 |