반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- SpringBoot
- MSsql
- NextJS
- MariaDB
- config
- node.js
- popup
- submit
- centos7
- post
- yona
- mybatis
- security
- docker
- Eclipse
- jquery
- git
- spring3
- ajax
- console
- Next.js
- jenkins
- nodejs
- Maven
- mysql
- javascript
- rocky9
- Java
- spring
- PM2
Archives
- Today
- Total
ふたりで
pm2-logrotate (pm2 log 관리) 본문
728x90
반응형
SMALL
pm2 만 설치하여 사용할 경우 스토리지 용량이 다 찰 때까지 한 개의 파일에 적재된다.
이럴경우 서비스의 중단 또는 서버의 문제가 발생할 수 있다.
이를 방지하기 위해서 pm2에 module로 pm2-logrotate를 설치 설정 하여 log를 관리할 수 있다.
1. pm2-logrotate 설치.
참고:pm2-logrotate설치는 pm2 가 실행 중일 때 설치를 해도 실행 중인 app서비스에 영향이 없는 것 같다.
나의 경우 pm2가 /home/graykang/.pm2에 설치되어 있다. 혹시 모르니 /home/graykang/에서 설치를 해준다.
pm2-logrotate모듈이 설치되지 않은 경우 pm2 ls를 하면 아래와 같으니,
[graykang@localhost ]$ pm2 ls
┌────┬────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├────┼────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ apptestSvc │ default │ N/A │ fork │ 82845 │ 46h │ 265 │ online │ 0% │ 69.7mb │ gra… │ enabled │
└────┴────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
[graykang@localhost ]$
pm2-logrotate를 설치해 주자 설치하면 아래와 같으며, 로그관리 설정은 기본으로 최근일자 기준 10M 단위로 30개까지만
유지되도록 자동 설정 된다.
주의: npm install로 설치하는 게 아니라 pm2 install로 설치해야 한다. 명령어는 아래 참고.
728x90
반응형
SMALL
[graykang@localhost ~]$ pm2 install pm2-logrotate
[PM2][Module] Installing NPM pm2-logrotate module
[PM2][Module] Calling [NPM] to install pm2-logrotate ...
added 197 packages in 5s
22 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 │
├────┼──────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ apptestSvc │ default │ N/A │ fork │ 82845 │ 46h │ 265 │ online │ 0% │ 70.4mb │ gra… │ enabled │
└────┴──────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
Module
┌────┬──────────────────────────────┬───────────────┬──────────┬──────────┬──────┬──────────┬──────────┬──────────┐
│ id │ module │ version │ pid │ status │ ↺ │ cpu │ mem │ user │
├────┼──────────────────────────────┼───────────────┼──────────┼──────────┼──────┼──────────┼──────────┼──────────┤
│ 1 │ pm2-logrotate │ 2.7.0 │ 85327 │ online │ 0 │ 0% │ 19.0mb │ gra… │
└────┴──────────────────────────────┴───────────────┴──────────┴──────────┴──────┴──────────┴──────────┴──────────┘
[graykang@localhost ~]$
2. pm2-logrotate 로그 관리 설정 config 확인은 아래 명령어로 확인 및 설정 가능 하다.
[graykang@localhost ~]$ pm2 conf
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
Module: module-db-v2
$ pm2 set module-db-v2:pm2-logrotate [object Object]
[graykang@localhost ~]$
설정은 pm2 set pm2-logrotate:<param> <value>
3. 옵션 참고 설명.
max_size(기본값은 10M): 유지될 1개의 파일 크기.
retain( 30파일 로그의 기본값): 최근일자 기준 최대 보관 로그 파일 갯수
compress(기본값은 false): gzip을 통한 압축 여부
dateFormat(기본값은 YYYY-MM-DD_HH-mm-ss) : 로그 파일 이름을 사용하는 데이터 형식
rotateModule(기본값은 true) : 새로운 로그 파일생성 여부
workerInterval(기본값은 30초 단위): max_size 확인 간격 주기
rotateInterval(기본값은 0 0 * * *매일 자정): max_size 보다 용량이 작더라도 정해진 일시가 지나면 새로운 로그생성
참고:
https://github.com/keymetrics/pm2-logrotate
728x90
반응형
LIST
'node.js' 카테고리의 다른 글
pm2-logrotate Downgrade v2.7.0 to v2.6.0 (0) | 2024.04.17 |
---|---|
pm2 cluster + nextJS (0) | 2024.04.15 |
pm2 특정 app프로세스 강제 종료 및 초기화. (0) | 2024.03.19 |
node.js MSSQL 접속 테스트용 소스 (0) | 2024.02.26 |
node.js + Sequelize + mariadb Query parameter print option (0) | 2023.04.05 |
Comments