ふたりで

pm2-logrotate Downgrade v2.7.0 to v2.6.0 본문

node.js

pm2-logrotate Downgrade v2.7.0 to v2.6.0

graykang 2024. 4. 17. 14:20
728x90
반응형
SMALL

얼마 전 node.js 프로젝트에 pm2 cluster 모드를 적용하였다.

적용 후 로그를 확인해보려 하니 각 cluster(프로세스) 별 로그가 별도로 생성이 되는 거다...

어머지... 이런 상태에서 pm2-logrotate가 잘 동작 하나??? 하는 의문이 생겨 관련 자료를 검색을 해보았다.

역시나 문제가 있었다. 

https://github.com/keymetrics/pm2-logrotate/issues/143

 

only rotate the first process while running in cluster mode? · Issue #143 · keymetrics/pm2-logrotate

I am running apps in cluster mode with 6 instances and I find that only the first instance's log is rotated. Am I missing something?

github.com

해결 방법으론 pm2-logrotate 버전을 2.6.0으로 다운그레이드를 하면 된다고 한다.

다운 그레이드 ㄱㄱㄱ

 

# 먼저 pm2-logrotate 버전확인.

]$ pm2 ls
┌────┬──────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name             │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├────┼──────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 1  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241544   │ 12m    │ 0    │ online    │ 0%       │ 108.0mb  │ gra… │ enabled  │
│ 2  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241551   │ 12m    │ 0    │ online    │ 0%       │ 114.9mb  │ gra… │ enabled  │
│ 3  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241558   │ 12m    │ 0    │ online    │ 0%       │ 107.6mb  │ gra… │ enabled  │
│ 4  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241565   │ 12m    │ 0    │ online    │ 0%       │ 107.3mb  │ gra… │ enabled  │
│ 5  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241576   │ 12m    │ 0    │ online    │ 0%       │ 107.8mb  │ gra… │ enabled  │
│ 6  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241587   │ 12m    │ 0    │ online    │ 0%       │ 108.4mb  │ gra… │ enabled  │
│ 7  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241598   │ 12m    │ 0    │ online    │ 0%       │ 109.5mb  │ gra… │ enabled  │
│ 8  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241605   │ 12m    │ 0    │ online    │ 0%       │ 109.2mb  │ gra… │ enabled  │
│ 9  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241620   │ 12m    │ 0    │ online    │ 0%       │ 106.6mb  │ gra… │ enabled  │
│ 10 │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241631   │ 12m    │ 0    │ online    │ 0%       │ 106.9mb  │ gra… │ enabled  │
│ 11 │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241642   │ 12m    │ 0    │ online    │ 0%       │ 107.6mb  │ gra… │ enabled  │
│ 12 │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241649   │ 12m    │ 0    │ online    │ 0%       │ 107.3mb  │ gra… │ enabled  │
└────┴──────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
Module
┌────┬──────────────────────────────┬───────────────┬──────────┬──────────┬──────┬──────────┬──────────┬──────────┐
│ id │ module                       │ version       │ pid      │ status   │ ↺    │ cpu      │ mem      │ user     │
├────┼──────────────────────────────┼───────────────┼──────────┼──────────┼──────┼──────────┼──────────┼──────────┤
│ 0  │ pm2-logrotate                │ 2.7.0         │ 241513   │ online   │ 0    │ 0%       │ 66.6mb   │ gra… │
└────┴──────────────────────────────┴───────────────┴──────────┴──────────┴──────┴──────────┴──────────┴──────────┘
]$

 

음 하단에 module항목을 보면  버전이 2.7.0이쥬???

 

# 다운그레이드하기 위해 기존 버전삭제.

]$ pm2 uninstall pm2-logrotate
┌────┬──────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name             │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├────┼──────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 1  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241544   │ 12m    │ 0    │ online    │ 0%       │ 108.0mb  │ gra… │ enabled  │
│ 2  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241551   │ 12m    │ 0    │ online    │ 0%       │ 114.9mb  │ gra… │ enabled  │
│ 3  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241558   │ 12m    │ 0    │ online    │ 0%       │ 107.6mb  │ gra… │ enabled  │
│ 4  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241565   │ 12m    │ 0    │ online    │ 0%       │ 107.3mb  │ gra… │ enabled  │
│ 5  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241576   │ 12m    │ 0    │ online    │ 0%       │ 107.8mb  │ gra… │ enabled  │
│ 6  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241587   │ 12m    │ 0    │ online    │ 0%       │ 108.4mb  │ gra… │ enabled  │
│ 7  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241598   │ 12m    │ 0    │ online    │ 0%       │ 109.5mb  │ gra… │ enabled  │
│ 8  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241605   │ 12m    │ 0    │ online    │ 0%       │ 109.2mb  │ gra… │ enabled  │
│ 9  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241620   │ 12m    │ 0    │ online    │ 0%       │ 106.6mb  │ gra… │ enabled  │
│ 10 │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241631   │ 12m    │ 0    │ online    │ 0%       │ 106.9mb  │ gra… │ enabled  │
│ 11 │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241642   │ 12m    │ 0    │ online    │ 0%       │ 107.6mb  │ gra… │ enabled  │
│ 12 │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241649   │ 12m    │ 0    │ online    │ 0%       │ 107.3mb  │ gra… │ enabled  │
└────┴──────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
]$

 

# 그리고 ~/. pm2/logs 폴더 내 로그도 삭제

프로젝트 및 pm2 설치 경로는 아래와 같다.

[graykang@localhost ~]$ pwd
/home/graykang
[graykang@localhost ~]$ ll -a
total 48
drwx------. 10 graykang  graykang  4096 Apr 15 17:17 .
drwxr-xr-x.  3 root root   17 Jan 31 17:35 ..
-rw-------.  1 graykang  graykang  7340 Apr 16 16:01 .bash_history
-rw-r--r--.  1 graykang  graykang    18 Jan 24  2023 .bash_logout
-rw-r--r--.  1 graykang  graykang   141 Jan 24  2023 .bash_profile
-rw-r--r--.  1 graykang  graykang   689 Feb  1 09:57 .bashrc
drwxr-xr-x.  5 graykang  graykang    53 Apr 15 16:39 .config
-rw-------.  1 graykang  graykang    56 Apr 15 16:40 .git-credentials
drwxr-xr-x.  5 graykang  graykang    90 Apr 15 16:43 .npm
drwxr-xr-x.  8 graykang  graykang  4096 Feb  1 10:01 .nvm
drwxr-xr-x.  5 graykang  graykang  4096 Apr 17 13:19 .pm2
-rw-------.  1 graykang  graykang   145 Apr 17 11:37 .rediscli_history
drwx------.  2 graykang  graykang    29 Feb 23 16:09 .ssh
-rw-r--r--.  1 graykang  graykang   180 Feb  1 09:56 .wget-hsts
drwxr-xr-x.  2 graykang  graykang   122 Feb 26 10:45 mssql-connTest
drwxr-xr-x.  3 graykang  graykang    27 Apr 12 13:31 node-apps
drwxr-xr-x.  4 graykang  graykang  4096 Feb  1 10:46 ssl-auth
[graykang@localhostr ~]$rm -rf ./.pm2/logs/*
[graykang@localhostr ~]$

/home/graykang/. pm2/logs 폴더 내의 로그를 삭제한다.

728x90
반응형
SMALL

# 이제 pm2-logrotate를 다시 설치한다. 버전 2.6.0으로...

[graykang@localhost ~]$ pm2 install pm2-logrotate@2.6.0
[PM2][Module] Installing NPM pm2-logrotate@2.6.0 module
[PM2][Module] Calling [NPM] to install pm2-logrotate@2.6.0 ...

added 197 packages in 13s

23 packages are looking for funding
  run `npm fund` for details
[PM2][Module] Module downloaded
[PM2][WARN] Applications pm2-logrotate not running, starting...
[PM2] App [pm2-logrotate] launched (1 instances)
Module: pm2-logrotate
$ pm2 set pm2-logrotate:max_size 10M
$ pm2 set pm2-logrotate:retain 30
$ pm2 set pm2-logrotate:compress false
$ pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
$ pm2 set pm2-logrotate:workerInterval 30
$ pm2 set pm2-logrotate:rotateInterval 0 0 * * *
$ pm2 set pm2-logrotate:rotateModule true
Modules configuration. Copy/Paste line to edit values.
[PM2][Module] Module successfully installed and launched
[PM2][Module] Checkout module options: `$ pm2 conf`
┌────┬──────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name             │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├────┼──────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 1  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241544   │ 12m    │ 0    │ online    │ 0%       │ 108.0mb  │ gra… │ enabled  │
│ 2  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241551   │ 12m    │ 0    │ online    │ 0%       │ 114.9mb  │ gra… │ enabled  │
│ 3  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241558   │ 12m    │ 0    │ online    │ 0%       │ 107.6mb  │ gra… │ enabled  │
│ 4  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241565   │ 12m    │ 0    │ online    │ 0%       │ 107.3mb  │ gra… │ enabled  │
│ 5  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241576   │ 12m    │ 0    │ online    │ 0%       │ 107.8mb  │ gra… │ enabled  │
│ 6  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241587   │ 12m    │ 0    │ online    │ 0%       │ 108.4mb  │ gra… │ enabled  │
│ 7  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241598   │ 12m    │ 0    │ online    │ 0%       │ 109.5mb  │ gra… │ enabled  │
│ 8  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241605   │ 12m    │ 0    │ online    │ 0%       │ 109.2mb  │ gra… │ enabled  │
│ 9  │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241620   │ 12m    │ 0    │ online    │ 0%       │ 106.6mb  │ gra… │ enabled  │
│ 10 │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241631   │ 12m    │ 0    │ online    │ 0%       │ 106.9mb  │ gra… │ enabled  │
│ 11 │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241642   │ 12m    │ 0    │ online    │ 0%       │ 107.6mb  │ gra… │ enabled  │
│ 12 │ appRelaySvc      │ default     │ 0.1.0   │ cluster │ 241649   │ 12m    │ 0    │ online    │ 0%       │ 107.3mb  │ gra… │ enabled  │
└────┴──────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
Module
┌────┬──────────────────────────────┬───────────────┬──────────┬──────────┬──────┬──────────┬──────────┬──────────┐
│ id │ module                       │ version       │ pid      │ status   │ ↺    │ cpu      │ mem      │ user     │
├────┼──────────────────────────────┼───────────────┼──────────┼──────────┼──────┼──────────┼──────────┼──────────┤
│ 13 │ pm2-logrotate                │ 2.6.0         │ 7901     │ online   │ 0    │ 0%       │ 26.8mb   │ gra…    │
└────┴──────────────────────────────┴───────────────┴──────────┴──────────┴──────┴──────────┴──────────┴──────────┘
[PM2][WARN] Current process list is not synchronized with saved list. App appSvr differs. Type 'pm2 save' to synchronize.
[graykang@localhost ~]$

 

자 설치가 완료되었다. 하단에 module 부분에 버전이 2.6.0으로 변경이 되었쥬?

 

# 이제 로그 생성 상태를 확인해 보자.

[graykang@localhost ~]$ cd .pm2/logs/
[graykang@localhost logs]$ ll
total 0
-rw-r--r--. 1 dev dev 0 Apr 17 14:02 pm2-logrotate-error.log
-rw-r--r--. 1 dev dev 0 Apr 17 14:02 pm2-logrotate-out.log
[graykang@localhost logs]$

어라라 프로세스별 로그가 안 보이네...

 

# 서비스를 재시작 또는 watch에 의해 리로딩되면 로그가 잘 생성이 된다.

[graykang@localhost logs]$ ll
total 48
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:10 appRelaySvc-error-1.log
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:10 appRelaySvc-error-10.log
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:10 appRelaySvc-error-11.log
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:10 appRelaySvc-error-12.log
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:10 appRelaySvc-error-2.log
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:10 appRelaySvc-error-3.log
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:10 appRelaySvc-error-4.log
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:10 appRelaySvc-error-5.log
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:10 appRelaySvc-error-6.log
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:10 appRelaySvc-error-7.log
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:10 appRelaySvc-error-8.log
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:10 appRelaySvc-error-9.log
-rw-r--r--. 1 graykang graykang 96 Apr 17 14:10 appRelaySvc-out-1.log
-rw-r--r--. 1 graykang graykang 96 Apr 17 14:10 appRelaySvc-out-10.log
-rw-r--r--. 1 graykang graykang 96 Apr 17 14:10 appRelaySvc-out-11.log
-rw-r--r--. 1 graykang graykang 96 Apr 17 14:10 appRelaySvc-out-12.log
-rw-r--r--. 1 graykang graykang 96 Apr 17 14:10 appRelaySvc-out-2.log
-rw-r--r--. 1 graykang graykang 96 Apr 17 14:10 appRelaySvc-out-3.log
-rw-r--r--. 1 graykang graykang 96 Apr 17 14:10 appRelaySvc-out-4.log
-rw-r--r--. 1 graykang graykang 96 Apr 17 14:10 appRelaySvc-out-5.log
-rw-r--r--. 1 graykang graykang 96 Apr 17 14:10 appRelaySvc-out-6.log
-rw-r--r--. 1 graykang graykang 96 Apr 17 14:10 appRelaySvc-out-7.log
-rw-r--r--. 1 graykang graykang 96 Apr 17 14:10 appRelaySvc-out-8.log
-rw-r--r--. 1 graykang graykang 96 Apr 17 14:10 appRelaySvc-out-9.log
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:02 pm2-logrotate-error.log
-rw-r--r--. 1 graykang graykang  0 Apr 17 14:02 pm2-logrotate-out.log
[graykang@localhost logs]$

 

익일 로그가 다음 날짜별로 잘 생성되는지 확인을 해봐야겠다.

728x90
반응형
LIST
Comments