MongoDB Ops Manager

arky uhmยท2025๋…„ 5์›” 14์ผ

MongoDB

๋ชฉ๋ก ๋ณด๊ธฐ
4/14

๐Ÿ“Œ 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๊ฐ€ ์ง์ ‘ ์ œ๊ณตํ•˜๋Š” ์™„์ „ ๊ด€๋ฆฌํ˜• ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค



โœ… MongoDB Ops Manager ๊ตฌ์„ฑํ•˜๊ธฐ

๐Ÿงฉ ๊ตฌ์„ฑ ํ™˜๊ฒฝ
ย . Ops Manager ์„ค์น˜ ์„œ๋ฒ„ : Windows11 64bit (Ubuntu WSL)
ย . ๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ : docker container๋กœ replicaset ๊ตฌ์„ฑ (Primary 1ea, Secondary 2ea)
. ์ž‘์—…terminal : WSL

  1. WSL ํ™˜๊ฒฝ ์„ค์ • ๋ฐ Ops Manager ๋‹ค์šด๋กœ๋“œ
--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


2. Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ DB ๊ตฌ์„ฑ
--๋ณ„๋„ 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) ์‚ฌ์šฉ


3. Ops Manager ์‹คํ–‰ ๋ฐ ์ ‘์†
--์„œ๋น„์Šค ์‹œ์ž‘
$ 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  ]

      



4. agent ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ (in Window)
--๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜
. "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***


5. Deployment (in Ops Manager UI)
--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
      


6. ๊ธฐํƒ€
--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


๐Ÿงพ ์ถœ์ฒ˜
https://www.mongodb.com/ko-kr/docs/ops-manager/current/

0๊ฐœ์˜ ๋Œ“๊ธ€