giip
SES Proposal
8 min read

์„œ๋น„์Šค ๋ชจ๋‹ˆํ„ฐ ๊ฐ€์ด๋“œ

GIIP ์ƒํƒœ๊ณ„์—์„œ ๋™์ž‘ํ•˜๋Š” ์„œ๋น„์Šคยทํฌ๋ก  ์Šคํฌ๋ฆฝํŠธ์˜ ์‹ค์‹œ๊ฐ„ ์ƒํƒœ์™€ ๊ฑด๊ฐ•๋„, ์‹คํ–‰ ์ด๋ ฅ์„ ํ•˜๋‚˜์˜ ๊ด€๋ฆฌ์ž ํ™”๋ฉด์—์„œ ๊ฐ์‹œํ•ฉ๋‹ˆ๋‹ค. ์š”์•ฝ ๋Œ€์‹œ๋ณด๋“œ๋กœ ์ „์ฒด ํ˜„ํ™ฉ์„ ํ›‘๊ณ , ๋ชฉ๋กยทํ”Œ๋กœ์šฐยทํŠธ๋ฆฌ๊ฑฐ ๋ทฐ๋กœ ๊ฐœ๋ณ„ ์„œ๋น„์Šค๋ฅผ ์ƒ์„ธํžˆ ๋“ค์—ฌ๋‹ค๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ–ฅ๏ธ ์„œ๋น„์Šค ๋ชจ๋‹ˆํ„ฐ ํŽ˜์ด์ง€๋กœ ์ด๋™ โ†’

๐Ÿ“‹ ๊ฐœ์š”

์„œ๋น„์Šค ๋ชจ๋‹ˆํ„ฐ ํŽ˜์ด์ง€๋Š” GIIP ์ƒํƒœ๊ณ„์—์„œ ๋Œ์•„๊ฐ€๋Š” ํฌ๋ก  ์Šคํฌ๋ฆฝํŠธยท์—์ด์ „ํŠธ ์›Œ์ปคยทAzure Function์˜ ์‹ค์‹œ๊ฐ„ ์ƒํƒœ๋ฅผ ๊ด€์ œํ•˜๋Š” ๊ด€๋ฆฌ์ž ํ™”๋ฉด์ž…๋‹ˆ๋‹ค. ๊ฐ ์„œ๋น„์Šค๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฆฌํฌํŠธํ•œ ์ƒํƒœ(์‹คํ–‰์ค‘/์ •์ƒ/์˜ค๋ฅ˜/๋ฏธ๋ณด๊ณ ), ์‹คํ–‰ ์‹œ๊ฐ, ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ(์„ฑ๊ณตยท์‹คํŒจยท์Šคํ‚ต ๋“ฑ)๋ฅผ ํ‘œ๋กœ ๋ณด์—ฌ์ฃผ๊ณ , ์ƒ๋‹จ ์š”์•ฝ ์นด๋“œ๋กœ ์ „์ฒด ๊ฑด๊ฐ•๋„๋ฅผ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” ์—์ด์ „ํŠธ๊ฐ€ ์‹œ๊ณ„์—ด ์ €์žฅ์†Œ(tKVS)์— ์˜ฌ๋ฆฐ ์ƒํƒœ ๋ฆฌํฌํŠธ์—์„œ ์˜ค๋ฉฐ, ์ด ํ™”๋ฉด์€ ์šด์˜์ž๊ฐ€ "๋ฌด์—‡์ด ๋Œ๊ณ  ๋ฌด์—‡์ด ๋ฉˆ์ท„๋Š”์ง€"๋ฅผ ํŒ๋‹จํ•˜๋Š” ๊ด€์ œ ํ™”๋ฉด์ž…๋‹ˆ๋‹ค.

โš ๏ธ ์ด ํ™”๋ฉด์€ ๊ด€๋ฆฌ์ž ์ „์šฉ์ž…๋‹ˆ๋‹ค. ์ ‘๊ทผํ•˜๋ ค๋ฉด ๊ด€๋ฆฌ์ž ๋ ˆ๋ฒจ **uLevel >= 70**์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋ฏธ๋งŒ ์‚ฌ์šฉ์ž๋Š” ํ™ˆ์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ” ํ™”๋ฉด ๊ตฌ์„ฑ

1. ์ƒ๋‹จ ํ—ค๋”

  • ํŽ˜์ด์ง€ ์ œ๋ชฉ/์„ค๋ช…: "์„œ๋น„์Šค ๋ชจ๋‹ˆํ„ฐ"(ํ˜„์ง€ํ™”๋จ)์™€ ์š”์•ฝ ์„ค๋ช….
  • ๋ทฐ ์ „ํ™˜ ๋ฒ„ํŠผ: ๋ชฉ๋ก / ํ”Œ๋กœ์šฐ / ํŠธ๋ฆฌ๊ฑฐ ์„ธ ๊ฐ€์ง€ ๋ทฐ๋ฅผ ํ† ๊ธ€ํ•ฉ๋‹ˆ๋‹ค.
  • ์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€ ๋ฒ„ํŠผ(๋ชฉ๋ก ๋ทฐ ์ „์šฉ, giip #1307): ์ƒˆ ๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ชจ๋‹ฌ์„ ์—ฝ๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ๊ณ ์นจ ๋ฒ„ํŠผ: ์„œ๋น„์Šค ์ƒํƒœ๋ฅผ ์ฆ‰์‹œ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค(๋กœ๋”ฉ ์ค‘ ์•„์ด์ฝ˜ ํšŒ์ „). ๋ชฉ๋ก ๋ทฐ๋Š” 30์ดˆ, ํ”Œ๋กœ์šฐยทํŠธ๋ฆฌ๊ฑฐ ๋ทฐ๋Š” 60์ดˆ๋งˆ๋‹ค ์ž๋™ ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค.

2. ์š”์•ฝ ๋Œ€์‹œ๋ณด๋“œ

์ƒ๋‹จ 4๊ฐœ ์นด๋“œ๋กœ ์ „์ฒด ์„œ๋น„์Šค์˜ ์ง‘๊ณ„ ํ˜„ํ™ฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์นด๋“œ์˜๋ฏธ
์ „์ฒด(Total)๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ ์„œ๋น„์Šค/์Šคํฌ๋ฆฝํŠธ ์ด ๊ฐœ์ˆ˜
์‹คํ–‰์ค‘(Running)ํ˜„์žฌ RUNNING ์ƒํƒœ๋กœ ์‹คํ–‰ ์ค‘์ธ ์„œ๋น„์Šค ์ˆ˜
์ •์ƒ(Healthy)IDLE(์ •์ƒ ๋Œ€๊ธฐ) ์ƒํƒœ๋กœ ๋ฆฌํฌํŠธํ•œ ์„œ๋น„์Šค ์ˆ˜
์˜ค๋ฅ˜(Error)ERROR(์‹คํŒจ/๋น„์ •์ƒ) ์ƒํƒœ๋กœ ๋ฆฌํฌํŠธํ•œ ์„œ๋น„์Šค ์ˆ˜

3. ๋ชฉ๋ก ๋ทฐ(์„œ๋น„์Šค ํ‘œ)

๊ฐ ํ–‰์ด ํ•˜๋‚˜์˜ ์„œ๋น„์Šค/์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ํด๋ฆญํ•˜๋ฉด ํŽผ์ณ ์ƒ์„ธ(ํ•˜์œ„ ์ž‘์—…ยท์ง€ํ‘œ)๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปฌ๋Ÿผ์„ค๋ช…
Script Name์Šคํฌ๋ฆฝํŠธ/์„œ๋น„์Šค ์ด๋ฆ„
MigrationAzure Function ์ด๊ด€ ์ƒํƒœ(์™„๋ฃŒ/๋Œ€๊ธฐ/ํ•ด๋‹น์—†์Œ)
Hostname๋ฆฌํฌํŠธ๋ฅผ ์˜ฌ๋ฆฐ ํ˜ธ์ŠคํŠธ
Status์ƒํƒœ ๋ฐฐ์ง€(RUNNING / IDLE / ERROR / UNKNOWN)
Last Execution๋งˆ์ง€๋ง‰ ์‹คํ–‰ ์‹œ๊ฐ
Telemetry์„ฑ๊ณตยท์‹คํŒจยท์Šคํ‚ตยท๊ฐ•์ œ์ข…๋ฃŒ ๋“ฑ ์‹คํ–‰ ์ง€ํ‘œ
DetailsํŽผ์น˜๊ธฐ(ํ•˜์œ„ ์ž‘์—…ยท์›๋ณธ ๋ฆฌํฌํŠธ ํ™•์ธ)

๊ฐ ํ–‰ ์˜ค๋ฅธ์ชฝ์—๋Š” ์ตœ๋Œ€ ๋‘ ๊ฐœ์˜ ์•ก์…˜ ์•„์ด์ฝ˜์ด ์žˆ์Šต๋‹ˆ๋‹ค(giip #1307๋กœ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„):

์•„์ด์ฝ˜๋ฌธ๊ตฌ๋™์ž‘๋Œ€์ƒ
๐Ÿšซ (์›+X, ์ฃผํ™ฉ)"๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ์—์„œ ์ œ๊ฑฐ"tServiceMonitorScript.enabled๋ฅผ ๋•๋‹ˆ๋‹ค(์†Œํ”„ํŠธ ์‚ญ์ œ). tKVS ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ๋Š” ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์Œ.DB์— ๋“ฑ๋ก๋œ ๋ชจ๋“  ํ–‰(๋ชจ๋‹ˆํ„ฐ๋ง ๋ชฉ๋ก ์ถœ์ฒ˜, UNKNOWN์ด๋ผ raw/ksn์ด ์—†๋Š” ํ–‰๋„ ํฌํ•จ)
๐Ÿ—‘๏ธ (ํœด์ง€ํ†ต, ๋นจ๊ฐ•)"์‚ญ์ œ"(giip #1214)ksn ๊ธฐ์ค€์œผ๋กœ tKVS ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ ๋ ˆ์ฝ”๋“œ 1๊ฑด์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.raw.ksn์ด ์žˆ๋Š” ํ–‰๋งŒ(์‹ค์ œ ๋ฆฌํฌํŠธ๊ฐ€ ์˜จ ํ–‰)

โš ๏ธ ๋‘ ๋ฒ„ํŠผ์€ ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ํœด์ง€ํ†ต(๋นจ๊ฐ•)์€ ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ ์ด๋ ฅ 1๊ฑด๋งŒ ์ง€์šฐ๊ณ , ํ™”๋ฉด์—์„œ ์Šคํฌ๋ฆฝํŠธ ํ–‰ ์ž์ฒด๋ฅผ ์—†์• ๋ ค๋ฉด(ํŠนํžˆ ํ•œ ๋ฒˆ๋„ ๋ฆฌํฌํŠธ๋ฅผ ์•ˆ ๋ณด๋‚ธ UNKNOWN ํ–‰) ๋ฐ˜๋“œ์‹œ ์ฃผํ™ฉ ์•„์ด์ฝ˜ ("๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ์—์„œ ์ œ๊ฑฐ")์„ ์จ์•ผ ํ•ฉ๋‹ˆ๋‹ค. giip #1214 ๋‹น์‹œ ์ด ๊ตฌ๋ถ„์ด ์—†์–ด์„œ UNKNOWN ํ–‰์„ ์ง€์šธ ๋ฐฉ๋ฒ•์ด ์—†์—ˆ๋˜ ๋ฌธ์ œ(giip #1307)๋ฅผ ํ•ด๊ฒฐํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

4. ํ”Œ๋กœ์šฐ ๋ทฐ

์„œ๋น„์Šค ๊ฐ„ ์˜์กด ๊ด€๊ณ„์™€ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค(ServiceMonitorFlow). ์–ด๋–ค ์„œ๋น„์Šค๊ฐ€ ์–ด๋–ค ์„œ๋น„์Šค๋กœ ์ด์–ด์ง€๋Š”์ง€ ํ๋ฆ„๋„๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

5. ํŠธ๋ฆฌ๊ฑฐ ๋ทฐ

๋“ฑ๋ก๋œ ์•Œ๋ฆผ ํŠธ๋ฆฌ๊ฑฐ(tKVSTrigger)์˜ ์‹ค์‹œ๊ฐ„ ํ‰๊ฐ€ ํ˜„ํ™ฉ์„ ํ‘œ๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋ฐฐ์น˜ SP dbo.pKVSCheckSchd๊ฐ€ 5๋ถ„๋งˆ๋‹ค(Azure Function KVSCheckSchdTimer, giip #2098) ์ด ์กฐ๊ฑด๋“ค์„ ์žฌํ‰๊ฐ€ํ•ด ktChkDt๋ฅผ ๊ฐฑ์‹ ํ•˜๊ณ , ์กฐ๊ฑด์„ ์ดˆ๊ณผํ•œ ํŠธ๋ฆฌ๊ฑฐ๋Š” Mail ์ฑ„๋„์ด ์ผœ์ ธ ์žˆ์œผ๋ฉด ์‹ค์ œ๋กœ ์ด๋ฉ”์ผ์„ ๋ฐœ์†กํ•ฉ๋‹ˆ๋‹ค.

์ปฌ๋Ÿผ ์˜๋ฏธ

์ปฌ๋Ÿผ์˜๋ฏธ
ํ‚ค(Key)๊ฐ์‹œ ๋Œ€์ƒ ์‹๋ณ„์ž. ktype='lssn'์ด๋ฉด ์„œ๋ฒ„(lssn) ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.
ํŒฉํ„ฐ(Factor)๊ฐ์‹œ ๋Œ€์ƒ ์ง€ํ‘œ ์ด๋ฆ„(์˜ˆ: DISKUSAGE, CPUUSAGE). tKVS์— ์‹ค์ œ ๋ฆฌํฌํŠธ๊ฐ€ ๋“ค์–ด์˜ฌ ๋•Œ ์“ฐ๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ํ‚ค์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์ด ๋น„์–ด ์žˆ์œผ๋ฉด tKVS์™€ ์ ˆ๋Œ€ ์กฐ์ธ๋  ์ˆ˜ ์—†์–ด ์˜๊ตฌํžˆ "๋น„ํ™œ์„ฑ" ์ƒํƒœ์ž…๋‹ˆ๋‹ค(์•„๋ž˜ ์ƒํƒœ ๋ฐฐ์ง€ ํ‘œ ์ฐธ๊ณ ).
์กฐ๊ฑดkAttrib kLogic kVal ํ˜•์‹(์˜ˆ: Capacity gt 90 = "Capacity ๊ฐ’์ด 90 ์ดˆ๊ณผ"). kAttrib='giipLogDate'๋Š” ํŠน์ˆ˜ ์ผ€์ด์Šค๋กœ "๋งˆ์ง€๋ง‰ ๋ฆฌํฌํŠธ ์ดํ›„ ๊ฒฝ๊ณผ ์ดˆ"๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: giipLogDate gt 600 = "10๋ถ„ ์ด์ƒ ๋ฆฌํฌํŠธ ์—†์Œ").
๋งˆ์ง€๋ง‰ ๋ฆฌํฌํŠธ์ด ํ‚ค+ํŒฉํ„ฐ ์กฐํ•ฉ์œผ๋กœ tKVS์— ์‹ค์ œ ๊ฐ’์ด ๋งˆ์ง€๋ง‰์œผ๋กœ ๋“ค์–ด์˜จ ์‹œ๊ฐ. -์ด๋ฉด ์ตœ๊ทผ 2์ผ๊ฐ„ ๋ฆฌํฌํŠธ๊ฐ€ ์ „ํ˜€ ์—†์—ˆ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.
๋งˆ์ง€๋ง‰ ์ฒดํฌ๋ฐฐ์น˜(pKVSCheckSchd)๊ฐ€ ์ด ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ‰๊ฐ€ํ•œ ์‹œ๊ฐ(5๋ถ„ ์ฃผ๊ธฐ ๊ฐฑ์‹ ). ์ด ๊ฐ’์ด ์˜ค๋ž˜๋๋‹ค๋ฉด ๋ฐฐ์น˜ ์ž์ฒด๊ฐ€ ๋ฉˆ์ถ˜ ๊ฒƒ์ด๋‹ˆ KVSCheckSchdTimer(Azure Function) ๊ฐ€๋™ ์—ฌ๋ถ€๋ถ€ํ„ฐ ํ™•์ธํ•˜์„ธ์š”.
์•Œ๋ฆผ ์ฑ„๋„Mail / SMS / Slack ์ค‘ ์ด ํŠธ๋ฆฌ๊ฑฐ์—์„œ ์ผœ์ง„ ์ฑ„๋„. Mail์€ ์‹ค์ œ๋กœ ๋ฐœ์†ก๋ฉ๋‹ˆ๋‹ค(giip #2098, tEmailServerConfig์˜ ํ™œ์„ฑ SMTP ์„ค์ • + giipApiSendEmail์„ ์žฌ์‚ฌ์šฉ). SMS๋Š” ๋ฐœ์†ก ๊ฒŒ์ดํŠธ์›จ์ด๊ฐ€ ์—ฐ๋™๋˜์–ด ์žˆ์ง€ ์•Š์•„ ํ‘œ์‹œ๋งŒ ๋˜๊ณ  ์‹ค์ œ ๋ฐœ์†ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Slack์€ ํŠธ๋ฆฌ๊ฑฐ๋ณ„ ์›นํ›…(kSlackWebhook)์ด ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ๋ฐœ์†ก๋˜๋ฉฐ, 2026-09-07 ๊ธฐ์ค€ ์‹ค์ œ๋กœ ์›นํ›…์ด ์„ค์ •๋œ ํŠธ๋ฆฌ๊ฑฐ๋Š” 0๊ฑด์ž…๋‹ˆ๋‹ค. Mail ์ˆ˜์‹ ์ฒ˜ ๊ฒฐ์ • ๊ทœ์น™(giip #2412): (1) kMail์ด ๋น„์–ด ์žˆ์ง€ ์•Š๊ณ  '-'๊ฐ€ ์•„๋‹ˆ๋ฉด ๊ทธ ๊ฐ’, (2) ๊ทธ ์™ธ์ด๋ฉฐ ํ•ด๋‹น usn์ด tKVSTriggerDefaultMail์— ๋“ฑ๋ก๋˜์–ด ์žˆ์œผ๋ฉด ๊ทธ ๊ธฐ๋ณธ ์ˆ˜์‹ ์ฒ˜, (3) ๋‘˜ ๋‹ค ์—†์œผ๋ฉด ๋ฐœ์†กํ•˜์ง€ ์•Š๊ณ  [WARN] no recipient for ktSn=... ๋กœ๊ทธ๋งŒ ๋‚จ๊น€. kMailAct=0์ด๋ฉด ์œ„์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋ฐœ์†ก ์•ˆ ํ•จ.
์ƒํƒœ์•„๋ž˜ ๋ฐฐ์ง€ 4์ข… ์ค‘ ํ•˜๋‚˜.

์ƒํƒœ ๋ฐฐ์ง€

๋ฐฐ์ง€์กฐ๊ฑด์˜๋ฏธ
์ •์ƒ(์ดˆ๋ก)ํŒฉํ„ฐ ์žˆ์Œ + ์ตœ๊ทผ ๋ฆฌํฌํŠธ ์žˆ์Œ + ์กฐ๊ฑด ๋ฏธ์ดˆ๊ณผ์ •์ƒ ๋™์ž‘ ์ค‘. ์กฐ์น˜ ๋ถˆํ•„์š”.
์ดˆ๊ณผ(๋นจ๊ฐ•, ๊นœ๋นก์ž„)ํŒฉํ„ฐ ์žˆ์Œ + ์กฐ๊ฑด ์ดˆ๊ณผ์‹ค์ œ ์ด์ƒ ์‹ ํ˜ธ. ์•„๋ž˜ "์กฐ์น˜ ์˜ˆ์‹œ" ์ฐธ๊ณ .
๋ฐ์ดํ„ฐ ์—†์Œ(ํšŒ์ƒ‰)ํŒฉํ„ฐ ์žˆ์Œ + ์ตœ๊ทผ 2์ผ๊ฐ„ ๋ฆฌํฌํŠธ ์—†์Œ๊ฐ์‹œ ๋Œ€์ƒ ์ž์ฒด๊ฐ€ ๋ฆฌํฌํŠธ๋ฅผ ์•ˆ ๋ณด๋‚ด๊ณ  ์žˆ์Œ(์—์ด์ „ํŠธ ์ค‘๋‹จ ๊ฐ€๋Šฅ์„ฑ).
๋น„ํ™œ์„ฑ(ํšŒ์ƒ‰, ํ๋ฆผ, ๊ธฐ๋ณธ ์ˆจ๊น€)ํŒฉํ„ฐ ๊ฐ’์ด ๋น„์–ด ์žˆ์ŒtKVS์™€ ์กฐ์ธ ์กฐ๊ฑด ์ž์ฒด๊ฐ€ ์„ฑ๋ฆฝํ•  ์ˆ˜ ์—†์–ด ์˜์›ํžˆ ๋งค์นญ๋˜์ง€ ์•Š๋Š” ์ฃฝ์€ ํŠธ๋ฆฌ๊ฑฐ ์ •์˜์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์ด์ƒ์ด ์•„๋‹ˆ๋ฏ€๋กœ ๋ชฉ๋ก์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆจ๊ฒจ์ง€๋ฉฐ, ํ‘œ ์ƒ๋‹จ์˜ "๋น„ํ™œ์„ฑ ํŠธ๋ฆฌ๊ฑฐ ํ‘œ์‹œ"๋ฅผ ๋ˆŒ๋Ÿฌ์•ผ ๋ณด์ž…๋‹ˆ๋‹ค(giip #2098). ์ •๋ฆฌํ•˜๋ ค๋ฉด DB์—์„œ ํ•ด๋‹น tKVSTrigger ํ–‰์˜ kfactor๋ฅผ ์ฑ„์šฐ๊ฑฐ๋‚˜ ๊ทธ ํ–‰์„ ์‚ญ์ œํ•˜์„ธ์š”.

์กฐ์น˜ ์˜ˆ์‹œ (์กฐ๊ฑด ์กฐํ•ฉ โ†’ ์˜๋ฏธ โ†’ ์กฐ์น˜)

ํ‚คํŒฉํ„ฐ์กฐ๊ฑด์ƒํƒœ์˜๋ฏธ์กฐ์น˜
584DISKUSAGECapacity gt 90์ดˆ๊ณผ(๋นจ๊ฐ•)lssn=584 ์„œ๋ฒ„ ๋””์Šคํฌ ์‚ฌ์šฉ๋ฅ ์ด 90%๋ฅผ ์ดˆ๊ณผํ•จํ•ด๋‹น ์„œ๋ฒ„(lssn 584)์— ์ ‘์†ํ•ด ๋””์Šคํฌ ์ •๋ฆฌ(๋กœ๊ทธยท์ž„์‹œํŒŒ์ผ ์‚ญ์ œ) ๋˜๋Š” ๋ณผ๋ฅจ ์ฆ์„ค. Mail ์ฑ„๋„์ด ์ผœ์ ธ ์žˆ์œผ๋ฉด kMail ์ฃผ์†Œ๋กœ ์ด๋ฏธ ์ด๋ฉ”์ผ์ด ๋ฐœ์†ก๋์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
2622CPUUSAGEgiipLogDate gt 600์ดˆ๊ณผ(๋นจ๊ฐ•)lssn=2622 ์„œ๋ฒ„์˜ CPUUSAGE ๋ฆฌํฌํŠธ๊ฐ€ 600์ดˆ(10๋ถ„) ์ด์ƒ ๋Š๊น€ํ•ด๋‹น ์„œ๋ฒ„์˜ ์—์ด์ „ํŠธ(giipAgent) ํ”„๋กœ์„ธ์Šคยท์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์‚ด์•„์žˆ๋Š”์ง€ ํ™•์ธ.
(์ž„์˜)(์ž„์˜)(์•„๋ฌด ์กฐ๊ฑด)๋ฐ์ดํ„ฐ ์—†์Œ(ํšŒ์ƒ‰)์ตœ๊ทผ 2์ผ๊ฐ„ ์ด ํ‚ค+ํŒฉํ„ฐ ๋ฆฌํฌํŠธ๊ฐ€ ์ „ํ˜€ ์—†์Œ์—์ด์ „ํŠธ ์„ค์น˜ยท๋„คํŠธ์›Œํฌยท์‹œํฌ๋ฆฟํ‚ค ๋ฌธ์ œ๋ถ€ํ„ฐ ์ ๊ฒ€. ํŠธ๋ฆฌ๊ฑฐ ์ •์˜ ์ž์ฒด๊ฐ€ ์˜ค๋ž˜๋œ ์˜คํƒ€(ํŒฉํ„ฐ๋ช… ๋ถˆ์ผ์น˜)์ผ ์ˆ˜๋„ ์žˆ์Œ.
(์ž„์˜)(๋น„์–ด์žˆ์Œ)์กฐ๊ฑด์ด ๋ถˆ์™„์ „ํ•˜๊ฒŒ ๋ณด์ž„๋น„ํ™œ์„ฑ(ํšŒ์ƒ‰, ํ๋ฆผ, ๊ธฐ๋ณธ ์ˆจ๊น€)ํŒฉํ„ฐ๊ฐ€ ์—†์–ด ์˜๊ตฌ ๋งค์นญ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ฃฝ์€ ์ •์˜์‹ค์ œ ๊ฐ์‹œ๊ฐ€ ํ•„์š”ํ•˜๋ฉด kfactor๋ฅผ ์ฑ„์›Œ ์žฌ์„ค์ •ํ•˜๊ณ , ํ•„์š”์—†์œผ๋ฉด DB์—์„œ ์‚ญ์ œ.

๐Ÿ› ๏ธ ์ƒํƒœ ์ ๊ฒ€ ๋ฐฉ๋ฒ•

  1. ํ™”๋ฉด์— ๋“ค์–ด์˜ค๋ฉด ์ƒ๋‹จ ์š”์•ฝ ์นด๋“œ๋กœ ์˜ค๋ฅ˜(Error) ๊ฐœ์ˆ˜๋ฅผ ๋จผ์ € ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ชฉ๋ก ๋ทฐ์—์„œ ์ƒํƒœ ๋ฐฐ์ง€๊ฐ€ ERROR์ด๊ฑฐ๋‚˜ UNKNOWN(๋ฆฌํฌํŠธ ์—†์Œ)์ธ ํ–‰์„ ์ฐพ์Šต๋‹ˆ๋‹ค.
  3. ํ•ด๋‹น ํ–‰์„ ํด๋ฆญํ•ด ํŽผ์ณ Last Execution / Telemetry / ํ•˜์œ„ ์ž‘์—…์„ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค โ€” ๋งˆ์ง€๋ง‰ ์‹คํ–‰ ์‹œ๊ฐ์ด ์˜ค๋ž˜๋๊ฑฐ๋‚˜ ์‹คํŒจ ์ง€ํ‘œ๊ฐ€ ๋†’์œผ๋ฉด ๋น„๊ฐ€๋™ ํ›„๋ณด์ž…๋‹ˆ๋‹ค.
  4. ์ƒˆ๋กœ๊ณ ์นจ ๋ฒ„ํŠผ์œผ๋กœ ์ตœ์‹  ๋ฆฌํฌํŠธ๋ฅผ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์™€ ์ผ์‹œ์  ์ง€์—ฐ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  5. ํŠธ๋ฆฌ๊ฑฐ ๋ทฐ๋กœ ๋„˜์–ด๊ฐ€ ์˜ˆ์ • ์ฃผ๊ธฐ๋ฅผ ๋„˜๊ธด(์ดˆ๊ณผ) ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ์žˆ๋Š”์ง€ ๊ต์ฐจ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ์ฐธ๊ณ 

  • ์ƒํƒœ ๊ฐ’ ์˜๋ฏธ: RUNNING=์‹คํ–‰ ์ค‘, IDLE=์ •์ƒ ๋Œ€๊ธฐ(์š”์•ฝ์˜ "์ •์ƒ"์— ์ง‘๊ณ„), ERROR=์‹คํŒจ, UNKNOWN=์ตœ๊ทผ ๋ฆฌํฌํŠธ ์—†์Œ(์—์ด์ „ํŠธ๊ฐ€ tKVS์— ์ƒํƒœ๋ฅผ ์˜ฌ๋ฆฌ์ง€ ์•Š์€ ์ƒํƒœ).
  • UNKNOWN์ด ๋งŽ์€ ๊ฒฝ์šฐ๋Š” ์„œ๋น„์Šค๊ฐ€ ์ฃฝ์—ˆ๋‹ค๊ธฐ๋ณด๋‹ค ํ•ด๋‹น ์—์ด์ „ํŠธ/์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ๋ฅผ ๋ฆฌํฌํŠธํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํƒœ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ์—์ด์ „ํŠธ ๊ฐ€๋™ ์—ฌ๋ถ€๋ถ€ํ„ฐ ํ™•์ธํ•˜์„ธ์š”.
  • ์ž๋™ ๊ฐฑ์‹ : ๋ชฉ๋ก 30์ดˆ, ํ”Œ๋กœ์šฐยทํŠธ๋ฆฌ๊ฑฐ 60์ดˆ ์ฃผ๊ธฐ๋กœ ์ž๋™ ์ƒˆ๋กœ๊ณ ์นจ๋˜๋ฏ€๋กœ ๊ฐ’์ด ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ”๋€” ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ ‘๊ทผ ๊ถŒํ•œ์€ prop ๋ชจ๋“œ๋กœ ํŽ˜์ด์ง€์— minLevel={70}์ด ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด ์žˆ์–ด ํ•ญ์ƒ uLevel >= 70์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(๋ฉ”๋‰ด ์„ค์ • ๊ฐ’๊ณผ ๋ฌด๊ด€).

API ์ฐธ์กฐ

์ด ํŽ˜์ด์ง€๋Š” ๋””์ŠคํŒจ์น˜ ์ปค๋งจ๋“œ(fetchAzureCommand ๊ฒฝ์œ )๋กœ ๋ฐฑ์—”๋“œ์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋„ API ๊ฐ€์ด๋“œ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ํ•ต์‹ฌ์„ ์—ฌ๊ธฐ์— ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.

์ƒํƒœ ํด๋ง(tKVS)

์ปค๋งจ๋“œ์šฉ๋„๋ฐฑ์—”๋“œ SP
ApiServiceMonitorGetStatus๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ ์Šคํฌ๋ฆฝํŠธ์˜ tKVS ์ƒํƒœ(RUNNING/IDLE/ERROR) ์กฐํšŒ(30์ดˆ ํด๋ง)pApiApiServiceMonitorGetStatusbyAK
ApiServiceMonitorGetFlowํ”Œ๋กœ์šฐ ๋ทฐ์˜ ๋…ธ๋“œ/์—ฃ์ง€ ์กฐํšŒ(ํ”Œ๋กœ์šฐ์šฉ SP)
ApiServiceMonitorGetTriggerStatusํŠธ๋ฆฌ๊ฑฐ ๋ทฐ์˜ ํŠธ๋ฆฌ๊ฑฐ๋ณ„ ์‹คํ–‰ ํ˜„ํ™ฉ ์กฐํšŒpApiApiServiceMonitorGetTriggerStatusbyAK
ApiServiceMonitorDelete๋ชฉ๋ก ๋ทฐ์˜ ์„œ๋น„์Šค ์ƒํƒœ ๋ ˆ์ฝ”๋“œ 1๊ฑด์„ ksn ๊ธฐ์ค€์œผ๋กœ ์‚ญ์ œ(ํœด์ง€ํ†ต ๋ฒ„ํŠผ, ์‚ญ์ œ ํ™•์ธ ๋ชจ๋‹ฌ ํ•„์ˆ˜). ์•ˆ์ „์žฅ์น˜: ํ•ด๋‹น ํ–‰์˜ kFactor ๊ฐ€ ์„œ๋น„์Šค ๋ชจ๋‹ˆํ„ฐ factor ์ผ ๋•Œ๋งŒ ์‚ญ์ œํ•˜๊ณ , ์•„๋‹ˆ๋ฉด 403 ๋ฐ˜ํ™˜. ์š”์ฒญ ๋ณธ๋ฌธ { ksn }. (giip #1214)pApiApiServiceMonitorDeletebyAK

๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ ์Šคํฌ๋ฆฝํŠธ CRUD(giip #1307, tServiceMonitorScript)

"ํ–‰ ์ž์ฒด๊ฐ€ ํ™”๋ฉด์— ๋œจ๋Š”์ง€"๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ชฉ๋ก. ๊ณผ๊ฑฐ์—๋Š” useServiceStatus.ts์˜ CRON_SCRIPTS ๋ฐฐ์—ด์— ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด ์žˆ์—ˆ์œผ๋‚˜, ์ด ํ…Œ์ด๋ธ”+API๋กœ ์ด๊ด€๋˜์–ด ๋ฐฐํฌ ์—†์ด UI์—์„œ CRUD๊ฐ€ ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค.

์ปค๋งจ๋“œ์šฉ๋„๋ฐฑ์—”๋“œ SP
ApiServiceMonitorScriptList๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ ์Šคํฌ๋ฆฝํŠธ ๋ชฉ๋ก ์กฐํšŒ(enabled=1, sortOrder ์ˆœ). ์š”์ฒญ ๋ณธ๋ฌธ์€ ๋น„์›Œ๋„ ๋จ({}).pApiApiServiceMonitorScriptListbyAK
ApiServiceMonitorScriptAdd์‹ ๊ทœ ์Šคํฌ๋ฆฝํŠธ ๋“ฑ๋ก("์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€" ๋ชจ๋‹ฌ). ์š”์ฒญ ๋ณธ๋ฌธ { scriptName(ํ•„์ˆ˜), category?, azureFunction?, migrationStatus? }. ๊ณผ๊ฑฐ ์ œ๊ฑฐ๋œ ๋™์ผ ์ด๋ฆ„์ด ์žˆ์œผ๋ฉด ์žฌํ™œ์„ฑํ™”(200), ์‹ ๊ทœ๋ฉด 201, ์ด๋ฏธ ํ™œ์„ฑ ์ƒํƒœ๋ฉด 409.pApiApiServiceMonitorScriptAddbyAK
ApiServiceMonitorScriptDelete๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ์—์„œ ์ œ๊ฑฐ(์ฃผํ™ฉ ์•„์ด์ฝ˜). tKVS๋Š” ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  tServiceMonitorScript.enabled๋งŒ ๋ˆ๋‹ค โ€” UNKNOWN(ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ ๋ฏธ๋ณด๊ณ ) ํ–‰๋„ ์ œ๊ฑฐ ๊ฐ€๋Šฅ. ์š”์ฒญ ๋ณธ๋ฌธ { scriptId } ๋˜๋Š” { scriptName }.pApiApiServiceMonitorScriptDeletebyAK
  • ์‘๋‹ต์€ ๊ฒฐ๊ณผ์…‹ ๋ฐฐ์—ด ํ˜•ํƒœ์ด๋ฉฐ(์˜ˆ: [๋ฐ์ดํ„ฐ, ์ƒํƒœ]), ํด๋ผ์ด์–ธํŠธ๋Š” ์ฒซ ๋ฒˆ์งธ(๋ฐ์ดํ„ฐ) ๋ฐฐ์—ด์„ ์ฝ์Šต๋‹ˆ๋‹ค.
  • ์ƒํƒœ ํ•„๋“œ RstVal = 200(List/Delete/์žฌ๋“ฑ๋ก) ๋˜๋Š” 201(Add ์‹ ๊ทœ)์€ ์ •์ƒ, 409๋Š” ์ด๋ฏธ ๋ชจ๋‹ˆํ„ฐ๋ง ์ค‘, 401์€ ์„ธ์…˜ ๋งŒ๋ฃŒ/๋ฏธ์ธ์ฆ(์žฌ๋กœ๊ทธ์ธ ํ•„์š”)์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.
  • ์„ฑ์—ญ(giipfaw run.ps1) ๋ฌด์ˆ˜์ •: giipApi๊ฐ€ ๋ช…๋ น๋ช…โ†’SP ์ด๋ฆ„์œผ๋กœ ์ผ๋ฐ˜ ๋ผ์šฐํŒ…ํ•˜๋ฏ€๋กœ giipdb์— SP๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด giipfaw ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†์ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค(giip-1214์™€ ๋™์ผ ํŒจํ„ด).

๋ฌธ์ œ ํ•ด๊ฒฐ

์ฆ์ƒ์›์ธํ•ด๊ฒฐ
์ ‘์† ์ฆ‰์‹œ ํ™ˆ์œผ๋กœ ํŠ•๊น€uLevel์ด 70 ๋ฏธ๋งŒ๊ด€๋ฆฌ์ž ๊ณ„์ •(๋ ˆ๋ฒจ 70+)์œผ๋กœ ๋กœ๊ทธ์ธํ•˜์„ธ์š”.
"์„ธ์…˜ ๋งŒ๋ฃŒ" / 401 ์˜ค๋ฅ˜์ธ์ฆ ํ† ํฐ ๋งŒ๋ฃŒ ๋˜๋Š” ์—†์Œ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•œ ๋’ค ์ƒˆ๋กœ๊ณ ์นจ์„ ๋ˆ„๋ฅด์„ธ์š”.
ํ‘œ์˜ ๋Œ€๋ถ€๋ถ„์ด UNKNOWN์—์ด์ „ํŠธ/์Šคํฌ๋ฆฝํŠธ๊ฐ€ tKVS์— ์ƒํƒœ๋ฅผ ๋ฆฌํฌํŠธํ•˜์ง€ ์•Š์Œํ•ด๋‹น ์—์ด์ „ํŠธ ๊ฐ€๋™ ์—ฌ๋ถ€์™€ ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ ๋ฆฌํฌํŠธ ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
ํšŒ์ƒ‰ ํ๋ฆฐ "๋น„ํ™œ์„ฑ" ํ–‰์ด ๋งŽ์ด ๋ณด์ž„kfactor๊ฐ€ ๋น„์–ด ์žˆ์–ด tKVS์™€ ์˜๊ตฌํžˆ ๋งค์นญ๋  ์ˆ˜ ์—†๋Š” ์ฃฝ์€ ํŠธ๋ฆฌ๊ฑฐ ์ •์˜(์ •์ƒ์ ์ธ ํ˜„์ƒ, ์‹ค์ œ ์ด์ƒ ์•„๋‹˜)๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆจ๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š” ์‹œ ์ƒ๋‹จ์˜ "๋น„ํ™œ์„ฑ ํŠธ๋ฆฌ๊ฑฐ ํ‘œ์‹œ"๋กœ ํ™•์ธํ•œ ๋’ค, DB์—์„œ kfactor๋ฅผ ์ฑ„์šฐ๊ฑฐ๋‚˜ ์‚ญ์ œํ•ด ์ •๋ฆฌํ•˜์„ธ์š”(giip #2098).
"์ดˆ๊ณผ(๋นจ๊ฐ•)" ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ์žˆ๋Š”๋ฐ ๋ฉ”์ผ์ด ์•ˆ ์˜ดkMailAct๊ฐ€ ๊บผ์ ธ ์žˆ๊ฑฐ๋‚˜, kMail๊ณผ usn ๊ธฐ๋ณธ ์ˆ˜์‹ ์ฒ˜(tKVSTriggerDefaultMail) ๋ชจ๋‘ ๋น„์–ด ์žˆ๊ฑฐ๋‚˜, ๋ฐฐ์น˜(KVSCheckSchdTimer)๊ฐ€ ์•„์ง ์ด ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ํ‰๊ฐ€ํ•˜์ง€ ๋ชปํ–ˆ์„ ์ˆ˜ ์žˆ์Œ๋จผ์ € "๋งˆ์ง€๋ง‰ ์ฒดํฌ" ์‹œ๊ฐ์ด ์ตœ๊ทผ์ธ์ง€ ํ™•์ธ(๋ฐฐ์น˜ ๊ฐ€๋™ ์—ฌ๋ถ€), "์•Œ๋ฆผ ์ฑ„๋„"์— Mail์ด ํ‘œ์‹œ๋˜๋Š”์ง€ ํ™•์ธ. ๊ทธ๋ž˜๋„้‚ฎไปถ์ด ์•ˆ ์˜ค๋ฉด kMail ์ฃผ์†Œ(ํŠธ๋ฆฌ๊ฑฐ ํ–‰)์™€ tKVSTriggerDefaultMail(ํ•ด๋‹น usn) ๋ชจ๋‘ DB์—์„œ ํ™•์ธํ•˜์„ธ์š”. kMail์ด ๋น„์–ด ์žˆ์–ด๋„ usn ๊ธฐ๋ณธ ์ˆ˜์‹ ์ฒ˜๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ์ฃผ์†Œ๋กœ ํด๋ฐฑ ๋ฐœ์†ก๋ฉ๋‹ˆ๋‹ค(giip #2412).
"์•Œ๋ฆผ ์ฑ„๋„"์— SMS/Slack์ด ํ‘œ์‹œ๋˜๋Š”๋ฐ ์•Œ๋ฆผ์ด ์•ˆ ์˜ดSMS๋Š” ๋ฐœ์†ก ๊ฒŒ์ดํŠธ์›จ์ด๊ฐ€ ์•„์ง ์—ฐ๋™๋˜์ง€ ์•Š์•˜๊ณ , Slack์€ ํŠธ๋ฆฌ๊ฑฐ๋ณ„ ์›นํ›…์ด ์‹ค์ œ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ๋งŒ ๋™์ž‘(2026-09-07 ๊ธฐ์ค€ ์„ค์ •๋œ ํŠธ๋ฆฌ๊ฑฐ 0๊ฑด)ํ˜„์žฌ๋Š” Mail ์ฑ„๋„๋งŒ ์‹ค์ œ๋กœ ๋ฐœ์†ก๋ฉ๋‹ˆ๋‹ค. SMS/Slack์ด ๊ผญ ํ•„์š”ํ•˜๋ฉด giip ์ด์Šˆ๋กœ ๊ฒŒ์ดํŠธ์›จ์ด/์›นํ›… ์—ฐ๋™์„ ์š”์ฒญํ•˜์„ธ์š”.
๊ฐ’์ด ๊ณ„์† ๋ฐ”๋€œ30์ดˆ/60์ดˆ ์ž๋™ ์ƒˆ๋กœ๊ณ ์นจ ๋™์ž‘์ •์ƒ์ž…๋‹ˆ๋‹ค. ํŠน์ • ์‹œ์ ์„ ๊ณ ์ •ํ•ด ๋ณด๋ ค๋ฉด ๊ฐ’์„ ์บก์ฒ˜ํ•ด ๋‘์„ธ์š”.
์ƒ๋‹จ ๊ฐ€์ด๋“œ ๋ฒ„ํŠผ(๐Ÿ“–)์ด ์•ˆ ๋ณด์ž„๊ฐ€์ด๋“œ ๋งคํ•‘ ๋ˆ„๋ฝ(๊ตฌ๋ฒ„์ „ ๋ฐฐํฌ)์ด ๊ฐ€์ด๋“œ๊ฐ€ ๋ฐฐํฌยท์ธ๋ฑ์‹ฑ๋˜๋ฉด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
UNKNOWN ํ–‰์ด ์•ˆ ์ง€์›Œ์งํœด์ง€ํ†ต(๋นจ๊ฐ•) ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €๋Š”๋ฐ, ๊ทธ๊ฑด tKVS ๋ ˆ์ฝ”๋“œ ์‚ญ์ œ๋ผ ์• ์ดˆ์— UNKNOWN ํ–‰(ksn ์—†์Œ)์—” ์•ˆ ๋ณด์ž„์ฃผํ™ฉ์ƒ‰ "๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ์—์„œ ์ œ๊ฑฐ" ์•„์ด์ฝ˜์„ ์‚ฌ์šฉํ•˜์„ธ์š”(giip #1307).
"์Šคํฌ๋ฆฝํŠธ ์ถ”๊ฐ€" ํ›„์—๋„ ์•ˆ ๋ณด์ž„๊ฐ™์€ ์ด๋ฆ„์ด ์ด๋ฏธ ํ™œ์„ฑ ์ƒํƒœ๋กœ ๋“ฑ๋ก๋˜์–ด ์žˆ์–ด 409 ์‘๋‹ต(์ถ”๊ฐ€ ์‹คํŒจ)๋ชฉ๋ก์—์„œ ๋™์ผ ์ด๋ฆ„์„ ์ฐพ์•„ ์ด๋ฏธ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

๋ฒ„์ „: 1.2 ์ตœ์ข… ์ˆ˜์ •: 2026-09-07 (giip #2098: ํŠธ๋ฆฌ๊ฑฐ ๋ทฐ UI ๊ฐœ์„ (์ฃฝ์€ ํŠธ๋ฆฌ๊ฑฐ ์ˆจ๊น€/์•Œ๋ฆผ ์ฑ„๋„ ์ƒํƒœ ๋ช…์‹œ) + ์•Œ๋ฆผ ๋ฐฐ์น˜ ๋ถ€ํ™œ ๋ฐ˜์˜) ์†Œ์Šค ํŒŒ์ผ: giipv3/public/help/service-monitor.ko.md