MongoDB의 logRotate에는 여러가지 방법이 있는데,

그 중 가장 간단한 방법은 mongos/mongod 프로세스에 SIGUSR1 시그널을 보내는 방법이다.


kill -SIGUSR1 <mongos/mongod process id>

// 또는 

kill -10 <mongos/mongod process id>



pid는 ps 명령어 등으로 그때그때 모으거나,

processManagement.pidFilePath 옵션을 설정했다면 해당 경로를 뒤져서 모으면 된다.


mongos/mongod 프로세스는 SIGUSR1 시그널을 받으면 logRotate를 실행하고, 

로그 디렉토리에 로그파일명.YYYY-MM-DDTHH-mm-ss 형태의 로그파일을 남긴다.


아래는 간단한 예제

// mongos의 pid를 알아냄

[root@localhost]# ps -ef | grep mongos | grep -v grep | awk '{print $2}'

28395


// log rotate

[root@localhost]# kill -SIGUSR1 28395


// 이제 로그 디렉토리에 보면 rotate 처리된 로그파일을 확인할 수 있음





[참고]

https://docs.mongodb.com/manual/tutorial/rotate-log-files/#forcing-a-log-rotation-with-sigusr1









Posted by bloodguy

댓글을 달아 주세요