Mongo DB(4.4) 설치(Red Hat or CentOS)
Overview
몽고DB 4.4 커뮤니티 에디션을 CentOS에서 yum
을 이용하여 설치하는 방법
주의
WSL 에서는 아직 지원되지 않는다고 한다.
설치 방법
1. 패키지 매니저 yum
설정하기
/etc/yum.repos.d/
경로에 mongodb-org-4.4.repo
파일을 생성한다음 아래 내용을 입력하여 저장해준다.
1
2
3
4
5
6
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
yum repolist
명령어를 수행하여 MongoDB Repository가 정상적으로 추가되었는지 확인해보자.
2. MongoDB 패키지 설치하기
- 최신 stable 버전을 설치하려면
1
sudo yum install -y mongodb-org
원하는 버전(여기서는 4.4.11)을 설치하려면
1
sudo yum install -y mongodb-org-4.4.11 mongodb-org-server-4.4.11 mongodb-org-shell-4.4.11 mongodb-org-mongos-4.4.11 mongodb-org-tools-4.4.11
패키지를 업그레이드할 때,(yum upgrade 등) 자동으로 최신 버전이 업그레이드 될 수 있다.
그런 현상을 방지하고자 할 때는, /etc/yum.conf
파일에 아래 exclude
구문을 추가해주면 된다.
1
2
3
# /etc/yum.conf
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
설치 끝!
MongoDB 실행하기
전제 조건
대부분의 유닉스 시스템들은 시스템 리소스에 제한을 둔다. 이 제한은 MongoDB 작업에 부정적인 영향을 끼칠 수 있으므로 조정해주어야 한다. 조정이 안되어있다면 MongoDB를 실행했을 때 에러를 볼 수 있다.
ulimit 설정 관련 참고 자료
디렉토리 경로
Default 설정으로, MongoDB는 mongod
계정에서 아래 경로에 있는 디렉토리를 이용한다.
/var/lib/mongo
(the data directory)/var/log/mongodb
(the log directory)
위 설치 방법대로 yum
패키지 매니저를 이용하여 설치하였다면 해당 경로에 디렉토리가 자동으로 생성되어있을 것이다.
만약, 원하는 경로로 변경하고 싶다면 여기를 참고하자.
SELinux 설정
만약, SELinux가 동작 중이라면, 아래 두 가지(cgroup, nestat)에 대한 접근을 허용해줘야한다.
cgroup
에 대한 접근 허용하기SELinux는 MongoDB 프로세스가
/sys/fs/cgroup
에 대한 접근을 허용하지 않는다. (사용 가능한 메모리를 결정하는데 필요하다.)아래 방법대로 정책을 변경해주자.
checkpolicy
패키지 설치아래 명령어로
checkpolicy
패키지를 설치하자.1
sudo yum install checkpolicy
mongodb_cgroup_memory.te
파일 생성터미널에 아래 코드를 그대로 복사하여
mongodb_cgroup_memory.te
파일을 생성하자.1 2 3 4 5 6 7 8 9 10 11 12 13 14
cat > mongodb_cgroup_memory.te <<EOF module mongodb_cgroup_memory 1.0; require { type cgroup_t; type mongod_t; class dir search; class file { getattr open read }; } #============= mongod_t ============== allow mongod_t cgroup_t:dir search; allow mongod_t cgroup_t:file { getattr open read }; EOF
파일이 생성되었다면, 아래 3가지 명령어를 이용해서 정책을 컴파일하고 적용해주자.
1 2 3
checkmodule -M -m -o mongodb_cgroup_memory.mod mongodb_cgroup_memory.te semodule_package -o mongodb_cgroup_memory.pp -m mongodb_cgroup_memory.mod sudo semodule -i mongodb_cgroup_memory.pp
netstat
에 대한 접근 허용하기SELinux는 MongoDB 프로세스가
/proc/net/netstat
에 대한 접근을 허용하지 않는다. (FTDC(Full Time Diagnostic Data Capture)에 필요하다.)아래 방법대로 정책을 변경해주자.
checkpolicy
패키지 설치아래 명령어로
checkpolicy
패키지를 설치하자.1
sudo yum install checkpolicy
mongodb_cgroup_memory.te
파일 생성터미널에 아래 코드를 그대로 복사하여
mongodb_cgroup_memory.te
파일을 생성하자.1 2 3 4 5 6 7 8 9 10 11 12
cat > mongodb_proc_net.te <<EOF module mongodb_proc_net 1.0; require { type proc_net_t; type mongod_t; class file { open read }; } #============= mongod_t ============== allow mongod_t proc_net_t:file { open read }; EOF
파일이 생성되었다면, 아래 3가지 명령어를 이용해서 정책을 컴파일하고 적용해주자.
1 2 3
checkmodule -M -m -o mongodb_proc_net.mod mongodb_proc_net.te semodule_package -o mongodb_proc_net.pp -m mongodb_proc_net.mod sudo semodule -i mongodb_proc_net.pp
드디어 실행
mongod
프로세스 시작하기1
sudo systemctl start mongod
만약,
Failed to start mongod.service: Unit mongod.service not found.
에러가 발생한다면 아래와 같은 커맨드를 먼저 수행하자.1
sudo systemctl daemon-reload
그 다음, 다시 start 해보자
MongoDB 접속하기
mongod
가 실행중인 호스트에서 아래 명령어로 접속할 수 있다.1
mongo
실행 중인지 확인하기
1
sudo systemctl status mongod
Configuration 파일
yum
과 같은 패키지 매니저로 MongoDB를 설치한 경우, 아래 경로에 Configuration 파일이 존재한다.
1
/etc/mongod.conf
설정 파일은 yaml
형식으로 되어있으며, 여러 옵션들은 여기를 참고하자.