๐ MongoDB Ops Manager
Ops Manager๋ผ๋ ์ฉ์ด๋ ๋ณดํต IT ์ธํ๋ผ๋ ๋ฐ์ดํฐ์ผํฐ ์ด์ํ๊ธฐ ์ํด ๋๋ ํ์ฅ/์
๋ฌด ์ด์์ ์ต์ ํํ๊ธฐ ์ํด ๊ด๋ฆฌ๋ ์ด์์ ์๋ํํ๋ ๋๊ตฌ๋ก ํต์์ ์ผ๋ก ์ง์นญํฉ๋๋ค. MongoDB Ops Manager๋ ์์ฒด ์ธํ๋ผ(์จํ๋ ๋ฏธ์ค ๋๋ ํ๋ผ์ด๋น ํด๋ผ์ฐ๋)์ MongoDB ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐฐํฌ, ๋ชจ๋ํฐ๋ง, ๋ฐฑ์
, ์๋ํ, ํ์ฅํ ์ ์๋ ๊ด๋ฆฌ ํ๋ซํผ์
๋๋ค
ย ย . ์ฃผ์๊ธฐ๋ฅ
ย ย ย . ์๋ํ : MongoDB ๋
ธ๋ ๋ฐ ํด๋ฌ์คํฐ์ ๋ฐฐํฌ, ์
๊ทธ๋ ์ด๋, ์ ์ง๋ณด์, ํ์ฅ ์์
์ ์๋ํํ๊ณ , ํธ์คํธ์ ์ค์น๋ MongoDB Agent๊ฐ ์ด๋ฅผ ์ง์ํฉ๋๋ค
ย ย ย . ๋ชจ๋ํฐ๋ง : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ํ๋์จ์ด ์งํ๋ฅผ ์ค์๊ฐ์ผ๋ก ์์งยท์๊ฐํํ๊ณ , ๊ฒฝ๊ณ (์๋)๋ฅผ ์ค์ ํ ์ ์๊ณ , ์ด๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ์ฌ์ ์ ๊ฐ์งํ๊ณ ์ด์ ํจ์จ์ฑ์ ๋์
๋๋ค
ย ย ย . ๋ฐฑ์
: ๋ณต์ ๋ณธ ์ธํธ ๋ฐ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ์ค๋
์ท ๋ฐฑ์
๊ณผ ํน์ ์์ ๋ณต๊ตฌ(Point-in-Time Recovery)๋ฅผ ์ง์ํ๊ณ , ์ ์ฒด ๋ฐฑ์
๊ณผ ์ฆ๋ถ ๋ฐฑ์
๋ฐฉ์์ ๋ชจ๋ ์ ๊ณตํด ๋คํธ์ํฌ ๋ฐ ์ ์ฅ์ ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค
ย ย ย . ํตํฉ : Kubernetes, ๋ค์ํ ๋ชจ๋ํฐ๋ง ๋์๋ณด๋์ ์ฐ๋๋๋ฉฐ, ํด๋ผ์ฐ๋ ์๋น์ค๋ก์ ๋ง์ด๊ทธ๋ ์ด์
๋ ์ง์ํฉ๋๋ค
ย . ์ฌ์ฉ๋ชฉ์
ย ย ย . MongoDB๋ฅผ ๋๊ท๋ชจ๋ก ์ด์ํ๋ ์กฐ์ง์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ ์ฑ๊ณผ ๊ฐ์ฉ์ฑ, ์ด์ ์๋ํ, ๋ฐ์ดํฐ ๋ณดํธ๋ฅผ ์ํด ํ์ฉ๋ฉ๋๋ค
โป MongoDB Ops Manager์์ Atlas์ ์๋ MongoDB ํด๋ฌ์คํฐ๋ฅผ ์ง์ ๋ชจ๋ํฐ๋งํ๋ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์์
ย . ์จํ๋ ๋ฏธ์ค ๋๋ ์์ฒด ํด๋ผ์ฐ๋์ ๋ฐฐํฌ๋ MongoDB ์ธ์คํด์ค์ ๊ด๋ฆฌ์ ๋ชจ๋ํฐ๋ง์ ์ํ ๋๊ตฌ์ด๊ณ , Atlas๋ MongoDB๊ฐ ์ง์ ์ ๊ณตํ๋ ์์ ๊ด๋ฆฌํ ํด๋ผ์ฐ๋ ์๋น์ค์ด๊ธฐ ๋๋ฌธ์
๋๋ค
๐งฉ ๊ตฌ์ฑ ํ๊ฒฝ
ย . Ops Manager ์ค์น ์๋ฒ : Windows11 64bit (Ubuntu WSL)
ย . ๋ชจ๋ํฐ๋ง ๋์ : docker container๋ก replicaset ๊ตฌ์ฑ (Primary 1ea, Secondary 2ea)
. ์์ terminal : WSL
--WSL ์
๋ฐ์ดํธ
$ apt update && sudo apt upgrade -y
--์์กด์ฑ ์ค์น
$ apt install openjdk-17-jdk -y
--Ops Manager ๋ค์ด๋ก๋
$ mkdir mongotest; cd mongotest ## Ops Manager๊ฐ ์ค์น๋ ์์์ ๋๋ ํ ๋ฆฌ ์์ฑ
$ wget https://downloads.mongodb.com/on-prem-mms/tar/mongodb-mms-8.0.7.500.20250505T1426Z.tar.gz
โป mongodb-mms-8.0.7.500.20250505T1426Z.tar.gz ํ์ผ ํ์ธ
. URL : https://www.mongodb.com/try/download/ops-manager
. FILE : version : 8.0.7 (stable), platform : debian11 / ubuntu 22.04, 24.04, package : tar.gz
$ tar -xzvf mongodb-mms-*.tar.gz
--๋ ํ์งํ ๋ฆฌ์ฉ ๋ชฝ๊ณ DB ๋๋ ํ ๋ฆฌ ์ด๋ ๋ฐ ๊ตฌ์ฑ
$ cd mongodb-mms
$ mkdir -p data/{logs,db} # ๋ก๊ทธ/๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ ์์ฑ
--์ค์ ํ์ผ ํ๋จ์ ์ถ๊ฐ
$ cd mongodb-mms/conf
$ vi conf-mms.properties
...
mongo.mongoUri=mongodb://localhost:27099 # Ops Manager ์ ํ๋ฆฌ์ผ์ด์
DB ์ฐ๊ฒฐ
โป ๊ธฐ๋ณธ์ 27017์ด๊ณ , ๋ชจ๋ํฐ๋ง์ ์ํ ๋ณ๋ port์ธ 27099๋ก ์ค์
mms.centralUrl=http://localhost:8080
--๋ณ๋ MongoDB ์ค์น ๋ฐ ์คํ
$ apt install mongodb-org -y
โป "E: Unable to locate package mongodb-org" ์ค๋ฅ ๋ฐ์ ์
--MongoDB GPG ํค ๊ฐ์ ธ์ค๊ธฐ
$ curl -fsSL https://pgp.mongodb.com/server-8.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor
--MongoDB ๊ณต์ ์ ์ฅ์ ๋ฑ๋ก
$ echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
deb [ signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse
--ํจํค์ง ๋ชฉ๋ก ๊ฐฑ์
$ apt update
--MongoDB์ค์น ํ์ธ
$ mongod --version
db version v8.0.9
Build Info: {
"version": "8.0.9",
"gitVersion": "f882ef816d531ecfbb593843e4c554fda90ca416",
"openSSLVersion": "OpenSSL 3.0.13 30 Jan 2024",
"modules": [],
"allocator": "tcmalloc-google",
"environment": {
"distmod": "ubuntu2404",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
--MongoDB ์คํ
$ systemctl start mongod
--MongoDB ์ํ ํ์ธ
$ systemctl status mongod
โป ์ค๋ฅ : port ์ฌ์ฉ ์ค๋ณต
ร mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; disabled; preset: enabled)
Active: failed (Result: exit-code) since Wed 2025-05-14 10:45:09 KST; 4min 40s ago ## ๋ชฝ๊ณ DB๊ฐ ์ ์์ ์ผ๋ก ์คํ๋์ง ์์
Duration: 184ms
Docs: https://docs.mongodb.org/manual
Process: 6149 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=48)
Main PID: 6149 (code=exited, status=48) ## 48 : ์ด๋ฏธ ํฌํธ 27017 ์ฌ์ฉ ์ค
...
--ops manager์์ ์ฌ์ฉํ๋ mongodb port๋ณ๊ฒฝ
$ vi /etc/mongod.conf
...
# network interfaces
net:
# port: 27017
port: 27099 ## ๋ค๋ฅธ port๋ก ๋ชฝ๊ณ DB ์์, ์ด๋ฏธ ๋ชจ๋ํฐ๋งํ ๋์์ replicaset์ผ๋ก 27017~27019ํฌํธ๋ฅผ ์ฌ์ฉํ๊ณ ์์
bindIp: 127.0.0.1
... ํ์ธ
--์ ๊ทport๋ก mongodb ์ ์ ํ์ธ
$ mongosh --port 27099
--Replica Set๊ณผ์ ํต์ ์ค์
$ echo "127.0.0.1 mongo1 mongo2 mongo3" | sudo tee -a /etc/hosts # ํธ์คํธ ์ค์ IP(127.0.0.1) ์ฌ์ฉ
--์๋น์ค ์์
$ cd mongodb-mms
$ ./bin/mongodb-mms start
โป configํ์ผ์์ ์ด ํ์ํ ๊ฒฝ์ฐ : mongodb-mms/conf/conf-mms.properties
--์น ์ธํฐํ์ด์ค ์ ์
http://localhost:8080
. ์ต์ด ์ ์ ์ Sign up
. Configure Ops Manager ํ์ด์ง
. Email
. "From" Email Address : test@cudo.co.kr
. "Reply To" Email Address : test@cudo.co.kr
. Admin Email Address : test@cudo.co.kr
. Admin Email Address : test@cudo.co.kr
. SMTP Server Hostname : mail.cudo.co.kr
. SMTP Server Port : 465
. Versions Directory : Ops Manager๊ฐ MongoDB ๋ฐ์ด๋๋ฆฌ(์ค์น ํ์ผ)๋ฅผ ์ ์ฅํ๋ ์๋ฒ ๋ด์ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ ์ค์
. ๊ธฐ๋ณธ๊ฐ์ธ "/opt/mongodb/mms/mongodb-releases/๊ฐ ์์ผ๋ฉด ์์ ํ์ง ์๊ณ ์ด ๊ฐ ๊ทธ๋๋ก ์ฌ์ฉ
. ์์ผ๋ฉด ์ฐ๊ธฐ ๊ถํ์ด ์๋ ์์์ ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑ
. $ mkdir -p /home/ubuntu/mongodb-releases/
โป "์ฌ์ดํธ์ ์ฐ๊ฒฐํ ์ ์์" ์ค๋ฅ ๋ฐ์ ์
--Ops Manager ์ํ ํ์ธ
$ ./bin/mongodb-mms status
Check Ops Manager status
Probing instance 0... [FAILED]
PID file not found: /root/mongotest/mongodb-mms/tmp/mms-0.pid
Check Backup Daemon status [FAILED]
Backup Daemon is not running.
--Ops Manager ์ฌ๊ธฐ๋
$ ./bin/mongodb-mms start
Migrate Ops Manager data
Running migrations... [ OK ]
Starting Ops Manager server
Instance 0 starting........ [ OK ]
Starting pre-flight checks
Successfully finished pre-flight checks
Start Backup Daemon... [ OK ]
--๋ค์ด๋ก๋ ๋ฐ ์ค์น
. "64-bit" ํ
์คํธ ํด๋ฆญ
. mongodb-mms-automation-agent-108.0.7.8810-1.windows_x86_64.msi
. Base URL : http://localhost:8080
. Project ID : 68241***
. Key Generated > API Key : 68242***
--Deployment ์์ฑ
. Build New Deployment > New Replica Set > Create Relica Set
. ์ค๋ฅ
. Invalid config: Two or more processes have their Data Directory or Log File (dbPath/logPath) set to /data/db on Hostname arky
. MongoDB Replica Set์ ๊ฐ ๋
ธ๋(์๋ฒ)๋ณ๋ก ๋ก๊ทธ ํ์ผ์ ๋ถ๋ฆฌํ๋ ค๋ฉด ๊ฐ ๋
ธ๋์ mongod.conf ์ค์ ํ์ผ์์ systemLog.path๋ฅผ ๊ณ ์ ํ ๊ฒฝ๋ก๋ก ์ง์ ํด์ผ ํฉ๋๋ค. ๋์ปค ํ๊ฒฝ์์๋ ๊ฐ ์ปจํ
์ด๋์ ๋ณ๋์ ์ค์ ํ์ผ์ ๋ง์ดํธํด์ผํจ
. docker-compose.yml ์์
. ./data/mongo1:/data/db โ ./data/mongo1:/data/db1
. ./data/mongo2:/data/db โ ./data/mongo2:/data/db2
. ./data/mongo3:/data/db โ ./data/mongo3:/data/db3
. mongod.conf ์์
. mongod.conf โ mongod1.conf
. path: /var/log/mongodb/mongod.log โ path: /var/log/mongodb/mongod1.log
. mongod.conf โ mongod2.conf
. path: /var/log/mongodb/mongod.log โ path: /var/log/mongodb/mongod2.log
. mongod.conf โ mongod3.conf
. path: /var/log/mongodb/mongod.log โ path: /var/log/mongodb/mongod3.log
. docker์ฌ๊ธฐ๋
# cd /drives/c/mongodata ## docker-compose.ymlํ์ผ์ด ์๋ ๊ณณ์ผ๋ก ์ด๋
# docker compose up -d --no-deps --force-recreate mongo1 mongo2 mongo3 ## docker-compose.ymlํ์ผ์ด ์๋ ๊ณณ์์ ์คํ
. Invalid config: Two or more processes have their Port set to 27017 on Hostname arky
. Member Configuration > MongoD Settings > Port
. 1 : 27017, 2: 27018, 3 : 27019
--ops manager ๋ชจ๋ํฐ๋ง ๋ก๊ทธ ์์น
. Deployment > Agents > Downloads & Settings
. "Monitoring Log Settings" section
. C:\MMSAutomation\log\mongodb-mms-automation\monitoring-agent.log
. "Backup Log Settings" section
. C:\MMSAutomation\log\mongodb-mms-automation\backup-agent.log