Docs Menu

์ƒํƒœ ๊ด€๋ฆฌ์ž๋กœ ์ž์ฒด ๊ด€๋ฆฌํ˜• ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ๊ตฌ์„ฑ

์ด ๋ฌธ์„œ์—์„œ๋Š” ์ƒํƒœ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ๋ฌธ์ œ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ƒํƒœ ๊ด€๋ฆฌ์ž ๋Š” ์ง€์ •๋œ ๊ฐ•๋„ ์ˆ˜์ค€ ์—์„œ ์ƒํƒœ ๊ด€๋ฆฌ์ž ํŒจ์‹ฏ ์— ๋Œ€ํ•œ ์ƒํƒœ ๊ฒ€์‚ฌ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ ๊ด€๋ฆฌ์ž ๊ฒ€์‚ฌ๋Š” ์ง€์ •๋œ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ์‹คํ–‰ ๋ฉ๋‹ˆ๋‹ค. ์‹คํŒจํ•œ mongos ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ–์œผ๋กœ ์ž๋™์œผ๋กœ ์ด๋™ํ•˜๋„๋ก ์ƒํƒœ ๊ด€๋ฆฌ์ž ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง„ํ–‰๋ฅ  ๋ชจ๋‹ˆํ„ฐ ๋Š” ์ƒํƒœ ๊ด€๋ฆฌ์ž ๊ฒ€์‚ฌ๊ฐ€ ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ์‘๋‹ตํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ ๊ด€๋ฆฌ์ž ํŒจ์‹ฏ์ด ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒจ์‹ฏ
์ƒํƒœ ๊ด€๋ฆฌ์ž๊ฐ€ ํ™•์ธํ•˜๋Š” ์‚ฌํ•ญ

configServer

config ์„œ๋ฒ„์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ๊ณผ ๊ด€๋ จ๋œ ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ๋ฌธ์ œ.

dns

DNS ๊ฐ€์šฉ์„ฑ ๋ฐ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ๋ฌธ์ œ.

ldap

LDAP ๊ฐ€์šฉ์„ฑ ๋ฐ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ๋ฌธ์ œ.

๋‹ค์Œ ํ‘œ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ ๊ด€๋ฆฌ์ž ๊ฐ•๋„ ์ˆ˜์ค€์„ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค.

๊ฐ•๋„ ์ˆ˜์ค€
์„ค๋ช…

critical

์ด ํŒจ์‹ฏ์˜ ์ƒํƒœ ๊ด€๋ฆฌ์ž๋Š” ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‹คํŒจํ•œ mongos๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ–์œผ๋กœ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ ๊ด€๋ฆฌ์ž๋Š” activeFaultDurationSecs(์œผ)๋กœ ์ง€์ •๋œ ์‹œ๊ฐ„ ๋™์•ˆ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ mongos๋ฅผ ์ž๋™์œผ๋กœ ์ค‘์ง€ํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ–์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

non-critical

์ด ํŒจ์‹ฏ์˜ ์ƒํƒœ ๊ด€๋ฆฌ์ž๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๊ณ  ์˜ค๋ฅ˜๋ฅผ ๊ธฐ๋กํ•˜์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด mongos ํด๋Ÿฌ์Šคํ„ฐ์— ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

off

์ด ํŒจ์‹ฏ์˜ ์ƒํƒœ ๊ด€๋ฆฌ์ž๋Š” ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. mongos๋Š” ์ด ํŒจ์‹ฏ์— ๋Œ€ํ•ด ์ƒํƒœ ํ™•์ธ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ ๊ฐ•๋„ ์ˆ˜์ค€์ž…๋‹ˆ๋‹ค.

์žฅ์• ๊ฐ€ ๊ฐ์ง€๋˜๊ณ  ์ƒํƒœ ๊ด€๋ฆฌ์ž ๊ฐ•๋„ ์ˆ˜์ค€์ด critical(์œผ)๋กœ ์„ค์ •๋˜๋ฉด ์ƒํƒœ ๊ด€๋ฆฌ์ž๋Š” activeFaultDurationSecs(์œผ)๋กœ ์ง€์ •๋œ ์‹œ๊ฐ„ ๋™์•ˆ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ mongos๋ฅผ ์ž๋™์œผ๋กœ ์ค‘์ง€ํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ–์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

์ง„ํ–‰๋ฅ  ๋ชจ๋‹ˆํ„ฐ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ƒํƒœ ๊ด€๋ฆฌ์ž ๊ฒ€์‚ฌ๊ฐ€ ๋ฉˆ์ถ”๊ฑฐ๋‚˜ ์‘๋‹ตํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ง„ํ–‰๋ฅ  ๋ชจ๋‹ˆํ„ฐ๋Š” interval๋กœ ์ง€์ •๋œ ๊ฐ„๊ฒฉ์œผ๋กœ ์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ ํ™•์ธ์ด ์‹œ์ž‘๋˜์—ˆ์ง€๋งŒ deadline์— ์ง€์ •๋œ ์ œํ•œ ์‹œ๊ฐ„ ๋‚ด์— ์™„๋ฃŒ๋˜์ง€ ์•Š์œผ๋ฉด ์ง„ํ–‰๋ฅ  ๋ชจ๋‹ˆํ„ฐ๊ฐ€ mongo๋ฅผ ์ค‘์ง€ํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

ํ•„๋“œ
์„ค๋ช…
๋‹จ์œ„

interval

์ƒํƒœ ๊ด€๋ฆฌ์ž๊ฐ€ ์ •์ฒด๋˜๊ฑฐ๋‚˜ ์‘๋‹ตํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋นˆ๋„์ž…๋‹ˆ๋‹ค.

๋ฐ€๋ฆฌ์ดˆ

deadline

mongos๊ฐ€ ์ƒํƒœ ๊ด€๋ฆฌ์ž ๊ฒ€์‚ฌ๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•  ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์‹คํŒจํ•˜๊ธฐ ์ „์˜ ํƒ€์ž„์•„์›ƒ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ดˆ

๋‹ค์Œ ์˜ˆ๋Š” ์ƒํƒœ ๊ด€๋ฆฌ์ž๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ƒํƒœ ๊ด€๋ฆฌ์ž ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ƒํƒœ ๊ด€๋ฆฌ์ž ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š” .

์˜ˆ๋ฅผ ๋“ค์–ด dns Health Manager ํŒจ์‹ฏ์„ critical ๊ฐ•๋„ ์ˆ˜์ค€์œผ๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด ์‹œ์ž‘ ์‹œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

mongos --setParameter 'healthMonitoringIntensities={ values:[ { type:"dns", intensity: "critical"} ] }'

๋˜๋Š” ์‹คํ–‰ ์ค‘์ธ mongos์— ์—ฐ๊ฒฐ๋œ mongosh ์„ธ์…˜์—์„œ setParameter ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

db.adminCommand(
{
setParameter: 1,
healthMonitoringIntensities: { values: [ { type: "dns", intensity: "critical" } ] } } )
}
)

setParameter ๋กœ ์„ค์ •๋œ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์žฌ์‹œ์ž‘ ์‹œ์—๋„ ์œ ์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ SetParameter ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ด ์„ค์ •์„ ์˜๊ตฌ์ ์œผ๋กœ healthMonitoringIntensities ์œ ์ง€ํ•˜๋ ค๋ฉด setParameter ๋‹ค์Œ ์˜ˆ์‹œ์—์„œ์™€ ๊ฐ™์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ mongos ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

setParameter:
healthMonitoringIntensities: "{ values:[ { type:\"dns\", intensity: \"critical\"} ] }"

healthMonitoringIntensities values์€ ๋ฌธ์„œ ๋ฐฐ์—ด์„ ๋ฐ›์•„๋“ค์ž…๋‹ˆ๋‹ค. values ๊ฐ ๋ฌธ์„œ์—๋Š” ๋‘ ๊ฐœ์˜ ํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • type๋ฅผ ํด๋ฆญํ•˜๊ณ  ์ƒํƒœ ๊ด€๋ฆฌ์ž ํŒจ์‹ฏ

  • intensity๊ฐ•๋„ ์ˆ˜์ค€

์ž์„ธํ•œ ๋‚ด์šฉ์€ healthMonitoringIntensities ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์˜ˆ๋ฅผ ๋“ค์–ด, 30์ดˆ๋งˆ๋‹ค ์ƒํƒœ ํ™•์ธ์„ ์‹คํ–‰ํ•˜๋„๋ก ldap Health Manager ํŒจ์‹ฏ์„ ์„ค์ •ํ•˜๋ ค๋ฉด ์‹œ์ž‘ ์‹œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

mongos --setParameter 'healthMonitoringIntervals={ values:[ { type:"ldap", interval: "30000"} ] }'

๋˜๋Š” ์‹คํ–‰ ์ค‘์ธ mongos์— ์—ฐ๊ฒฐ๋œ mongosh ์„ธ์…˜์—์„œ setParameter ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

db.adminCommand(
{
setParameter: 1,
healthMonitoringIntervals: { values: [ { type: "ldap", interval: "30000" } ] } } )
}
)

setParameter ๋กœ ์„ค์ •๋œ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์žฌ์‹œ์ž‘ ์‹œ์—๋„ ์œ ์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ SetParameter ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ด ์„ค์ •์„ ์˜๊ตฌ์ ์œผ๋กœ healthMonitoringIntervals ์œ ์ง€ํ•˜๋ ค๋ฉด setParameter ๋‹ค์Œ ์˜ˆ์‹œ์—์„œ์™€ ๊ฐ™์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ mongos ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

setParameter:
healthMonitoringIntervals: "{ values: [{type: \"ldap\", interval: 200}] }"

healthMonitoringIntervals values์€ ๋ฌธ์„œ ๋ฐฐ์—ด์„ ๋ฐ›์•„๋“ค์ž…๋‹ˆ๋‹ค. values ๊ฐ ๋ฌธ์„œ์—๋Š” ๋‘ ๊ฐœ์˜ ํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • type๋ฅผ ํด๋ฆญํ•˜๊ณ  ์ƒํƒœ ๊ด€๋ฆฌ์ž ํŒจ์‹ฏ

  • interval ์‹คํ–‰ํ•˜๋Š” ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ(๋ฐ€๋ฆฌ์ดˆ)

์ž์„ธํ•œ ๋‚ด์šฉ์€ healthMonitoringIntervals ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์‹คํŒจ๋ถ€ํ„ฐ ์ถฉ๋Œ๊นŒ์ง€์˜ ๊ธฐ๊ฐ„์„ 5๋ถ„์œผ๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด ์‹œ์ž‘ ์‹œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

mongos --setParameter activeFaultDurationSecs=300

๋˜๋Š” ์‹คํ–‰ ์ค‘์ธ mongos์— ์—ฐ๊ฒฐ๋œ mongosh ์„ธ์…˜์—์„œ setParameter ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

db.adminCommand(
{
setParameter: 1,
activeFaultDurationSecs: 300
}
)

setParameter ๋กœ ์„ค์ •๋œ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์žฌ์‹œ์ž‘ ์‹œ์—๋„ ์œ ์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ SetParameter ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ด ์„ค์ •์„ ์˜๊ตฌ์ ์œผ๋กœ activeFaultDurationSecs ์œ ์ง€ํ•˜๋ ค๋ฉด setParameter ๋‹ค์Œ ์˜ˆ์‹œ์—์„œ์™€ ๊ฐ™์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ mongos ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

setParameter:
activeFaultDurationSecs: 300

์ž์„ธํ•œ ๋‚ด์šฉ์€ activeFaultDurationSecs ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ง„ํ–‰๋ฅ  ๋ชจ๋‹ˆํ„ฐ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ƒํƒœ ๊ด€๋ฆฌ์ž ๊ฒ€์‚ฌ๊ฐ€ ๋ฉˆ์ถ”๊ฑฐ๋‚˜ ์‘๋‹ตํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ง„ํ–‰๋ฅ  ๋ชจ๋‹ˆํ„ฐ๋Š” interval๋กœ ์ง€์ •๋œ ๊ฐ„๊ฒฉ์œผ๋กœ ์ด๋Ÿฌํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ ํ™•์ธ์ด ์‹œ์ž‘๋˜์—ˆ์ง€๋งŒ deadline์— ์ง€์ •๋œ ์ œํ•œ ์‹œ๊ฐ„ ๋‚ด์— ์™„๋ฃŒ๋˜์ง€ ์•Š์œผ๋ฉด ์ง„ํ–‰๋ฅ  ๋ชจ๋‹ˆํ„ฐ๊ฐ€ mongo๋ฅผ ์ค‘์ง€ํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

interval ์‹œ๊ฐ„์„ 1000๋ฐ€๋ฆฌ์ดˆ๋กœ ์„ค์ •ํ•˜๊ณ  deadline ๋ฅผ 300์ดˆ๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด ์‹œ์ž‘ ์‹œ ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

mongos --setParameter 'progressMonitor={"interval": 1000, "deadline": 300}'

๋˜๋Š” ์‹คํ–‰ ์ค‘์ธ mongos์— ์—ฐ๊ฒฐ๋œ mongosh ์„ธ์…˜์—์„œ setParameter ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

db.adminCommand(
{
setParameter: 1,
progressMonitor: { interval: 1000, deadline: 300 } )
}
)

setParameter ๋กœ ์„ค์ •๋œ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์žฌ์‹œ์ž‘ ์‹œ์—๋„ ์œ ์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ SetParameter ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ด ์„ค์ •์„ ์˜๊ตฌ์ ์œผ๋กœ progressMonitor ์œ ์ง€ํ•˜๋ ค๋ฉด setParameter ๋‹ค์Œ ์˜ˆ์‹œ์—์„œ์™€ ๊ฐ™์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ mongos ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

setParameter:
progressMonitor: "{ interval: 1000, deadline: 300 }"

์ž์„ธํ•œ ๋‚ด์šฉ์€ progressMonitor ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.