2021. 4. 8. 14:28ㆍmongodb
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 |
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 |
$ sudo /usr/sbin/logrotate -f /etc/logrotate.conf |
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' 카테고리의 다른 글
MongoDB Replicaset 설정 (0) | 2021.04.14 |
---|---|
MongoDB SQL Union All ($facet) 하는 방법 (0) | 2021.04.11 |
MongoDB 데이터 삭제 후, 용량 반환 방법 ( compact 명령어 ) (2) | 2021.04.09 |
MongoDB Log 관리 ( logrotate 사용 ) (4) | 2021.04.08 |
Grafana + Mongodb 연동 ( ubuntu ) - 한글 (3) | 2021.04.06 |