회사 업무

pm2로그 남기기

알리에미친남자 2024. 6. 3. 17:33

✔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:본인이 설정하고싶은 옵션 입력

pm2-logrotate 설치 후 pm2 list
log설정

 

  • 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