2021. 4. 8. 13:58ㆍmongodb
이번에는 mongodb 초보자가 실수하는 log 관리에 대해서 알아본다.
과거 MongoDB 운영을 하다, MongoDB로그를 끊임없이 쌓이고 있다는걸 모르는 시절이 있었다.
충분한 용량을 준비했는데, 왜 서버에서 디스크가 100% 찼는가..? 이걸 찾다가
원인이 MongoDB 로그라는 걸 알게 되었다.
지금 생각해보면 당연한 건데, 당시 회사도, 우리팀도, 심지어 나 역시도 MongoDB는 처음이였다.
MongoDB 설치 메뉴얼을 봐도 설치 가이드를 봐도, log 관리는 없다.
( 설치만 있는게 당연한 건가?? 그래도 함께 설명해 주면 좋잖아.. )
로그 관련 명령어는 있지만...그건 초보 관리자가 생각하기엔....
( 나만 생각을 못하나 ㅠ )
그래서 이번 시간에는 당연하지만, 초보자들이 놓칠 수도 있는 MongoDB 로그 관리하는 설정을
정리해 보겠다.
1. MongoDB Log의 특징
• 설정을 안 해도 MongoDB는 실행은 잘 됨
• 로그 관리를 수동으로 해 주어여 함
• 로그의 사이즈가 무제한으로 늘어남 ( 용량 문제 )
*Q. 그럼 자동으로 관리하는 방법이 없을까??
*A. logroate를 사용하면 된다.
2. logroate 위치
$ cd /etc/logrotate.d
3. logroate 설정
$ sudo vi mongod
작성시 /etc/mongo.conf 참조
- 필요 정보 : log 파일 위치
- 실행 사용자와 사용자 그룹
ex )
1. /var/log/mongodb/mongod.log 는 CONFIG 설정된 로그 파일 위치
2. create 664 user_group user_id 권한 부여 및 계정 ( 사용자 권한 부여 )
( apt-get으로 MongoDB를 설치 했다면, user_id 만 바꿔주면 됨 )
* 아래 명령어를 쓰고 굵게 칠해진 부분을 고쳐준다.
$ cd /etc/logrotate.d
$ sudo vi mongod
/var/log/mongodb/mongod.log
{
su root root
daily
size 300M
rotate 7
missingok
compress
delaycompress
notifempty
create 664 ubuntu ubuntu
sharedscripts
postrotate
sudo /bin/kill -SIGUSR1 `ps -ef | grep mongod | grep -v grep | awk '{print $2}'`
endscript
}
3. Logrotate 작동 전 로그 상태
$ cd /var/log/mongodb
$ ls
4. Logrotate 작동 후 로그 상태 ( 수동 작동 명령어 )
$ sudo /usr/sbin/logrotate -f /etc/logrotate.conf
위와 같이 파일이 나누어 지는걸 확인 할 수 있으며, 일정 사이즈 이상 파일이 늘어 나지 않는다.
이제 개발자는 여유롭게 꿀을 빨면 된다.
[참조하면 좋은 글]
mongodb 로그와 방화벽을 한번에!!
mongodb 레플리카 셋 하는 방법
https://urame.tistory.com/entry/mongodb-%EA%B5%AC%EC%A1%B0
mongodb 샤딩 하는 방법
'mongodb' 카테고리의 다른 글
MongoDB Replicaset 설정 (0) | 2021.04.14 |
---|---|
MongoDB SQL Union All ($facet) 하는 방법 (0) | 2021.04.11 |
MongoDB 데이터 삭제 후, 용량 반환 방법 ( compact 명령어 ) (2) | 2021.04.09 |
Ubuntu MongoDB 설치 가이드 - (로그, 방화벽 관리 한번에) (0) | 2021.04.08 |
Grafana + Mongodb 연동 ( ubuntu ) - 한글 (3) | 2021.04.06 |