아 그거 뭐였지

[PM2] pm2-logrotate로 pm2 로그 관리 본문

Back-End

[PM2] pm2-logrotate로 pm2 로그 관리

승발자 2022. 9. 23. 16:57
728x90
반응형

전 작업자분이 퇴사해서 인수인계받은 리눅스서버가 하나있는데, 서버가 갑자기 다운되던 일이 발생하였다.

이유를 찾기위해 리눅스서버 접속해서 로그를 확인해보려고 경로를 입력하던중 tab키를 누르면 자동완성이 안되고

'No space left on device' 라는 오류가 나왔다. 

저번에도 비슷한경우가있었는데 서버 용량이 꽉차면 이런 오류가 나왔었다.

dh -h 명령어로 메모리를 확인해보니 아니나 다를까 

Use%가 100%로 용량이 꽉차있었었다. (아래사진은 로그 관리해주고 난 후)

참고사진

원인은 pm2 로그파일이 쌓이고 쌓여서 파일하나당 몇기가씩 잡아먹고있던거였고, 

이로인해 용량이 꽉차서 pm2를 실행시킬 용량이 없어서 다운됐던것이였다.

 

이를 해결하기위해 pm2-logrotate를 사용하였고 로그는 하루에 한개씩 기록하고 7일이 지난로그는 삭제하게 하였다. 

 

pm2-logrotate 설치

pm2-logrotate를 사용하기위해서는 우선 pm2가 설치되어있어야한다.

 

//pm2가 설치되어있지않다면 pm2설치 -g는 글로벌 옵션이다.
npm install -g pm2

//pm2-logrotate 설치
pm2 install pm2-logrotate

설치가 완료되고 sudo pm2 list 를 입력하면 아래와 같이 나오면 잘 설치된것이다.

설치 완료

 

pm2-logrotate 옵션

설치후에는 따로 start를 해주거나 하지않아도 자동으로 실행이 되기때문에 필요시 옵션만 설정해주면된다.

옵션 확인은 sudo pm2 conf를 입력하면 나온다.

sudo pm2 conf

  • max_size: 최대크기로 저장할 용량이다. 해당 용량이 넘어가면 다음 파일을 생성한다.
  • retain: 로그의 저장 개수이다.
  • compress: 생성된 로그를 gzip으로 압축할지 유무이다.
  • dateFormat: 로그 파일 이름뒤에 날짜포맷을 정해준다.
  • workerInterval: 로그 파일 사이즈를 확인하는 1초마다의 횟수이다.
  • rotateInterval: 로그 생성 시간을 정한다. 분 시 일 월 요일 순서이다. (0 0 * * * 이면 매일 정각에 실행한다.0시0분)

옵션을 설정하고 싶으면 아래와같이 설정하면된다.

pm2 set pm2-logrotate:옵션명 옵션값

pm2 set pm2-logrotate:retain 7

본인은 7일이 지난 로그는 삭제할것이므로 retain의 값을 7로 주었다.

 

이렇게 pm2-logrotate로 편리하게 로그를 관리할수있다.

728x90
반응형
Comments