MongoDB Log 관리 ( logrotate 사용 )

2021. 4. 8. 13:58mongodb

반응형

이번에는 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 로그와 방화벽을 한번에!!

https://urame.tistory.com/entry/Ubuntu-MongoDB-%EC%84%A4%EC%B9%98-%EA%B0%80%EC%9D%B4%EB%93%9C-%EB%A1%9C%EA%B7%B8-%EB%B0%A9%ED%99%94%EB%B2%BD-%EA%B4%80%EB%A6%AC-%ED%95%9C%EB%B2%88%EC%97%90

 

Ubuntu MongoDB 설치 가이드 - (로그, 방화벽 관리 한번에)

MongoDB 설치에 대해 알아보겠다. MongoDB 사이트에서 설명하는 설치가이드를 쭉 실행하면 된다. 하지만, MongoDB 사이트에서는 방화벽이랑 로그 관련해서는 내용이 빠져 있어서, 관련 내용을 한번에

urame.tistory.com

 

 

mongodb 레플리카 셋 하는 방법

https://urame.tistory.com/entry/mongodb-%EA%B5%AC%EC%A1%B0

 

MongoDB Replicaset 설정

몽고디비 레플리카셋 설정을 알아보겠다. 1. mongodb 구조를 만든다. $ mkdir mongodb $ cd mongodb $ mkdir conf $ mkdir data $ mkdir log $ mkdir pid 2. conf를 설정해준다. 2-1 mongodb_replicaset 1번 설정을 해준다 $ cd conf $ v

urame.tistory.com

 

mongodb 샤딩 하는 방법

https://urame.tistory.com/entry/%EB%AA%BD%EA%B3%A0%EB%94%94%EB%B9%84mongodb-%EC%83%A4%EB%93%9Cshard-%EC%84%A4%EC%A0%95

 

몽고디비(mongodb) 샤드(shard) 설정

금일은 몽고디비 샤드에 대해 알아보겠다. 금일 몽고디비 구성도는 아래와 같다. 2번정도 쭉 따라서 확인차 만들어 보았다. 큰 문제 없이 구성이 된다. 단, 위 그림에서 회색으로 표현된 부분은

urame.tistory.com

 

 

 

 

반응형