-
MongoDB 초간단 log 관리하기MongoDB 2021. 4. 26. 20:40반응형
MongoDB 3.0 부터 configuration 으로 logrotate 옵션을 지원하지만! 이것만으로도는 로그관리에 부족한 점이 많습니다.
https://docs.mongodb.com/manual/reference/configuration-options/#systemLog.logRotate
주기, 사이즈 제한, 오래된것 제거 등등 때문에 많은 분들이 linux의 logrotate 기능을 같이 활용하여 관리를 하고 있습니다.
하지만 이번 포스팅은 간단하게 log를 rotate 하기만을 위한 초간단 방법을 알려드립니다.
바로 mongos/mongod 프로세스에 SIGUSR1 시그널을 보내는 방법입니다.
ps -ef | grep mongos | grep -v grep | awk '{print $2}' kill -SIGUSR1 ${위에서 도출한 pid} // or kill -10 ${위에서 도출한 pid} // 한줄로 축약하면 아래와 같이 가능합니다. kill -SIGUSR1 $(ps -ef | grep mongod | grep -v grep | awk '{print $2}')
이제 아래 명령어를 크론탭으로 등록해주면 매일 자정마다 rotate가 가능합니다.
crontab -e 0 0 * * * kill -10 $(ps -ef | grep mongod | grep -v grep | awk '{print $2}') 0 0 * * * kill -10 $(ps -ef | grep mongos | grep -v grep | awk '{print $2}')
이상하게 kill -SIGUSR1 로 신호를 주면 크론탭에서는 kill: Illegal option -S 에러가 발생하였습니다.
이유와 해결책은 찾지 못했지만 -10으로 우회하여 해결하였습니다.
반응형'MongoDB' 카테고리의 다른 글
MongoDB Oplog 와 Journaling 차이 (0) 2021.04.28 MongoDB Shard 개수에 따른 퍼포먼스 확인하기 (2) 2021.04.26 MongoDB 스키마 디자인 패턴 (0) 2020.08.20