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

2021. 4. 8. 14:28mongodb

반응형

MongoDB 설치에 대해 알아보겠다.

 

MongoDB 사이트에서 설명하는 설치가이드를 쭉 실행하면 된다. 

 

하지만, MongoDB 사이트에서는 방화벽이랑 로그 관련해서는 내용이 빠져 있어서,

 

관련 내용을 한번에 정리했다. 

 

쭉 명령어를 수행하면, 설치가 될것이다.

 

1. MongoDB GPG 키 가지고 오기 ( 패키지 관리 시스템 공개 키 )

$ wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add 

 

2. MongoDB 4.4 목록 생성

$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

 

3. 로컬 패키지 업데이트

해당 업데이트를 수행하지 않으면, 설치 과정에서 에러가 발생할 수 있다. 그렇다고 무작정 날리는것은 반대한다. java 구

 

버전을 쓰고 있을 경우, java 버전 마저 업데이트가 이루어질 수 있다. 과거 아무생각없이 개발서버에 update를 했다가,...

 

java 버전이 바뀌어서 고생한 적이 있다. 그러니 업데이트는 늘 조심히 하자!!

$ sudo apt-get update

 

4. MongoDB 설치

apt-get은 참으로 사랑스럽다. 옛날에는 다 압축파일 받아서 하나하나 설치해주었는데.... 이제는 apt-get만 날리면 ~ 쭈

 

르르르륵 설치가 된다. 단점이있다면, conf 파일이 어디로 설정되었는지 찾아봐야한다는 것이다. 만약 Mongodb log와

 

config 파일 위치가 궁금하면 아래를 참조하면 된다.

* config 위치 : /etc/mongod.conf

* log 위치 : /var/log/mongodb/mongod.log 

$ sudo apt-get install -y mongodb-org

 

반응형

 

5. MongoDB conf 수정

이렇게 아무런 세팅 없이 실행이 되면 좋겠지만,,,아쉽게도 apt-get으로 실행하면, localhost에서만 수행이 된다. 그래서

 

딱 한줄 수정이 필요하다. mongod.conf에서 net : 부분에서 bindIp를 수정해주면 된다. 글로 설명하기 어려워서 그냥

 

conf 파일을 사진으로 찍어서 아래부분에 참고했다. 

$ sudo vi /etc/mongod.conf

 

Mongodb config 파일 수정 부분

 

 

6. MongoDB Log 관리

   

 •설정을 안 해도 실행은 됨

 

 •하지만, 추후 로그 관리를 수동으로 해 주어여 함

 

 •로그의 사이즈가 무제한으로 늘어남 ( 용량 문제 )

 

작성시 /etc/mongo.conf 참조

 

  -   /var/log/mongodb/mongod.log 는 CONFIG 설정된 로그 파일 위치

 

  -   create 664 user_group user_id 권한 부여 및 계정 ( 사용자 권한 부여 )

$ cd /etc/logrotate.d
$ sudo vi mongod

( apt-get으로 설치 했다면, user_id 만 바꿔주면 됨 )
/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
}

 

7. Logrotate 작동 확인

 

Logrotate가 잘 잘동하는지를 확인해 봐야한다. 이 적용을 테스트하지 않고, 넘어가면, 나중에 log가 지워지지 않아 disk

 

가 가득차는 현상이 발견되다. 그래서 꼭 아래 경로로 이동해서 해당 명령어를 날려봐야 한다. 그리고 그 명령어가 수행

 

되고 나면,  mongod.log가 잘 나누어지는지 확인이 필요하다.

$ cd /var/log/mongodb
$ ls

 

logrotate 작동 전 mongodb log 수

$ sudo /usr/sbin/logrotate -f /etc/logrotate.conf 

 

logrorate 작동 후 mongodb log 수

 

 

8. MongoDB Start 실행

MongoDB는 sysemctl에 적용이 되어 있었어, start, stop으로 손 쉽게 시작/종료가 가능하다. 

$ sudo systemctl start mongod

 

( 생략 ) 9. MongoDB Stop 실행

$ sudo service mongod stop

 

10 방화벽

 

설치는 완료 되었으나, 아마 robo같은 프로그램에서는 connetcion 실패가 나올것이다.

 

이유는 단순하다, 방화벽이다. 해결책 역시,,방화벽 해지다. 아래 명령어를 참고하면 된다.

$ sudo iptables -I INPUT 5 -i ens3 -p tcp --dport 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
$ sudo ufw allow 27017

 

 

11. 접속 확인

 

 

잘 접근되는걸 확인했다.

 

여기까지 왔다면, 당신도 이제 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

 

[샤드 설정]

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

 

반응형