์„œ๋น„์Šคํ˜• ๋ชจ๋‹ˆํ„ฐ๋ง: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆํ˜• ์‹œ์Šคํ…œ

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

์ด ํฌ์ŠคํŒ…์€ ์ œ๊ฐ€ ์ €ํฌ์™€ ๋‚˜๋ˆˆ ๋Œ€ํ™”๋ฅผ ๋…น์ทจํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์„น์…˜๋“ค RIT++์—์„œ. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ฑฐ๊ธฐ์—์„œ ๋ณด๊ณ ์„œ์˜ ํ…์ŠคํŠธ ๋ฒ„์ „์„ ๋งŒ๋“ค์–ด๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปจํผ๋Ÿฐ์Šค์— ์ฐธ์„ํ•˜์…จ๊ฑฐ๋‚˜ ์˜์ƒ์„ ์‹œ์ฒญํ•˜์…จ๋‹ค๋ฉด ์ƒˆ๋กœ์šด ์ ์€ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ•˜์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค - ๊ณ ์–‘์ด์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ทธ๋Ÿฌํ•œ ์‹œ์Šคํ…œ์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ๋Š”์ง€, ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ป๊ฒŒ ์—…๋ฐ์ดํŠธํ•  ๊ณ„ํš์ธ์ง€ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šคํ˜• ๋ชจ๋‹ˆํ„ฐ๋ง: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆํ˜• ์‹œ์Šคํ…œ

๊ณผ๊ฑฐ : ๊ณ„ํš๊ณผ ๊ณ„ํš

ํ˜„์žฌ์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์€ ์–ด๋–ป๊ฒŒ ํƒ„์ƒํ•˜๊ฒŒ ๋˜์—ˆ๋‚˜์š”? ์ด ์งˆ๋ฌธ์— ๋‹ตํ•˜๋ ค๋ฉด 2015๋…„์œผ๋กœ ๋Œ์•„๊ฐ€์•ผ ํ•œ๋‹ค. ๋‹น์‹œ์˜ ๋ชจ์Šต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šคํ˜• ๋ชจ๋‹ˆํ„ฐ๋ง: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆํ˜• ์‹œ์Šคํ…œ

๋ชจ๋‹ˆํ„ฐ๋ง์„ ๋‹ด๋‹นํ•˜๋Š” ๋…ธ๋“œ๋Š” ์•ฝ 24๊ฐœ์˜€์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ๋“  ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ , ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹ค์–‘ํ•œ ํฌ๋ผ์šด, ์Šคํฌ๋ฆฝํŠธ, ๋ฐ๋ชฌ์˜ ์ „์ฒด ํŒฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋” ๋‚˜์•„๊ฐˆ์ˆ˜๋ก ๊ทธ๋Ÿฌํ•œ ์‹œ์Šคํ…œ์˜ ์‹คํ–‰ ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์•„์งˆ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กญ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๋Š” ์œ ์ง€ํ•˜๊ณ  ๊ฐœ๋ฐœํ•  ๋ชจ๋‹ˆํ„ฐ๋ง ์š”์†Œ์™€ ํ๊ธฐํ•  ๋ชจ๋‹ˆํ„ฐ๋ง ์š”์†Œ๋ฅผ ์„ ํƒํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. 19๊ฐœ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ํ‘์—ฐ๊ณผ ์• ๊ทธ๋ฆฌ๊ฒŒ์ดํ„ฐ, ๋Œ€์‹œ๋ณด๋“œ ์—ญํ• ์„ ํ•˜๋Š” ๊ทธ๋ผํŒŒ๋‚˜๋งŒ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ์€ ์–ด๋–ค ๋ชจ์Šต์ผ๊นŒ์š”? ์ด์™€ ๊ฐ™์ด:

์„œ๋น„์Šคํ˜• ๋ชจ๋‹ˆํ„ฐ๋ง: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆํ˜• ์‹œ์Šคํ…œ

์šฐ๋ฆฌ๋Š” ๋ฉ”ํŠธ๋ฆญ ์ €์žฅ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋น ๋ฅธ SSD ๋“œ๋ผ์ด๋ธŒ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํ‘์—ฐ์ด๋ฉฐ ๋ฉ”ํŠธ๋ฆญ์— ๋Œ€ํ•œ ํŠน์ • ์ง‘๊ณ„์ž์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ - ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ํ‘œ์‹œํ•˜๋Š” Grafana์™€ ๊ฒฝ๊ณ ๋ฅผ ์œ„ํ•œ Moira์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ์ด์ƒ ์ง•ํ›„๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

ํ‘œ์ค€: ๋ชจ๋‹ˆํ„ฐ๋ง 2.0

2015๋…„ ๊ณ„ํš์€ ์ด๋ ‡์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ธํ”„๋ผ์™€ ์„œ๋น„์Šค ์ž์ฒด๋ฟ ์•„๋‹ˆ๋ผ ์ด๋ฅผ ์œ„ํ•œ ๋ฌธ์„œ๋„ ์ค€๋น„ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง 2.0์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ธฐ์—… ํ‘œ์ค€์„ ์Šค์Šค๋กœ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ์€ ๋ฌด์—‡์ด์—ˆ๋‚˜์š”?

  • ์ง€์†์ ์ธ ๊ฐ€์šฉ์„ฑ;
  • ๋ฉ”ํŠธ๋ฆญ ์ €์žฅ ๊ฐ„๊ฒฉ = 10์ดˆ;
  • ์ธก์ •ํ•ญ๋ชฉ ๋ฐ ๋Œ€์‹œ๋ณด๋“œ์˜ ๊ตฌ์กฐํ™”๋œ ์ €์žฅ
  • SLA > 99,99%
  • UDP(!)๋ฅผ ํ†ตํ•œ ์ด๋ฒคํŠธ ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘.

๋ฉ”ํŠธ๋ฆญ์„ ์ƒ์„ฑํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ๊ณผ ์ด๋ฒคํŠธ์˜ ํ๋ฆ„์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— UDP๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ๋ฒˆ์— ๋‹ค ํ‘์—ฐ์— ์“ฐ๋ฉด ์ €์žฅ๊ณต๊ฐ„์ด ๋ฌด๋„ˆ์ง€๊ฑฐ๋“ ์š”. ๋˜ํ•œ ๋ชจ๋“  ์ง€ํ‘œ์— ๋Œ€ํ•ด ์ฒซ ๋ฒˆ์งธ ์ˆ˜์ค€ ์ ‘๋‘์‚ฌ๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šคํ˜• ๋ชจ๋‹ˆํ„ฐ๋ง: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆํ˜• ์‹œ์Šคํ…œ

๊ฐ ์ ‘๋‘์‚ฌ์—๋Š” ๋ช‡ ๊ฐ€์ง€ ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„, ๋„คํŠธ์›Œํฌ, ์ปจํ…Œ์ด๋„ˆ, ๋ฆฌ์†Œ์Šค, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ์— ๋Œ€ํ•œ ์ธก์ •ํ•ญ๋ชฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช…ํ™•ํ•˜๊ณ  ์—„๊ฒฉํ•œ ์œ ํ˜•์˜ ํ•„ํ„ฐ๋ง์ด ๊ตฌํ˜„๋˜์–ด ์ฒซ ๋ฒˆ์งธ ์ˆ˜์ค€ ์ธก์ •ํ•ญ๋ชฉ์„ ํ—ˆ์šฉํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ 2015๋…„์— ์ด ์‹œ์Šคํ…œ์„ ๊ณ„ํšํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ์—๋Š” ๋ฌด์—‡์ด ์žˆ๋‚˜์š”?

ํ˜„์žฌ: ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ƒํ˜ธ ์ž‘์šฉ ๋‹ค์ด์–ด๊ทธ๋žจ

์šฐ์„ , ์šฐ๋ฆฌ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์ฆ‰ PHP ์ฝ”๋“œ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ์ฆ‰ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ UDP๋ฅผ ํ†ตํ•ด Brubeck ์ง‘๊ณ„์ž(statsd, C๋กœ ์žฌ์ž‘์„ฑ๋จ)์— ๋ฉ”ํŠธ๋ฆญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ํ•ฉ์„ฑ ํ…Œ์ŠคํŠธ์—์„œ ๊ฐ€์žฅ ๋น ๋ฅธ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ ์ง‘๊ณ„๋œ ์ธก์ •ํ•ญ๋ชฉ์„ TCP๋ฅผ ํ†ตํ•ด Graphite๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

ํƒ€์ด๋จธ๋ผ๋Š” ์ธก์ •ํ•ญ๋ชฉ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งค์šฐ ํŽธ๋ฆฌํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๊ฐ ์‚ฌ์šฉ์ž ์—ฐ๊ฒฐ์— ๋Œ€ํ•ด ์‘๋‹ต ์‹œ๊ฐ„์ด ํฌํ•จ๋œ ์ง€ํ‘œ๋ฅผ Brubeck์— ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋ฐฑ๋งŒ ๊ฐœ์˜ ์‘๋‹ต์ด ๋“ค์–ด์™”์ง€๋งŒ ์ง‘๊ณ„์ž๋Š” 10๊ฐœ์˜ ์ธก์ •ํ•ญ๋ชฉ๋งŒ ๋ฐ˜ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜จ ์‚ฌ๋žŒ ์ˆ˜, ์ตœ๋Œ€, ์ตœ์†Œ ๋ฐ ํ‰๊ท  ์‘๋‹ต ์‹œ๊ฐ„, ์ค‘์•™๊ฐ’ ๋ฐ 4 ๋ฐฑ๋ถ„์œ„์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฐ์ดํ„ฐ๊ฐ€ Graphite๋กœ ์ „์†ก๋˜๊ณ  ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ํ•˜๋“œ์›จ์–ด, ์†Œํ”„ํŠธ์›จ์–ด, ์‹œ์Šคํ…œ ์ธก์ •ํ•ญ๋ชฉ ๋ฐ ๊ธฐ์กด Munin ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ธก์ •ํ•ญ๋ชฉ ์ง‘๊ณ„ ๊ธฐ๋Šฅ๋„ ์žˆ์Šต๋‹ˆ๋‹ค(2015๋…„๊นŒ์ง€ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค). ์šฐ๋ฆฌ๋Š” C ๋ฐ๋ชฌ CollectD๋ฅผ ํ†ตํ•ด ์ด ๋ชจ๋“  ๊ฒƒ์„ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค(์ด๊ฒƒ์€ ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ ์„ค์น˜๋œ ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ํด๋งํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ตฌ์„ฑ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์“ธ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค). ๊ทธ๊ฒƒ์„ ํ†ตํ•ด Graphite์— ๋ฐ์ดํ„ฐ๋ฅผ ์”๋‹ˆ๋‹ค. ๋˜ํ•œ Python ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž ์ •์˜ ์†”๋ฃจ์…˜์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CollectD๋Š” ๋กœ์ปฌ ๋˜๋Š” ์›๊ฒฉ ํ˜ธ์ŠคํŠธ(Curl ๊ฐ€์ •)์—์„œ ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ Graphite๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ˆ˜์ง‘ํ•œ ๋ชจ๋“  ์ธก์ • ํ•ญ๋ชฉ์„ Carbon-c-relay๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ C๋กœ ์ˆ˜์ •๋œ Graphite์˜ Carbon Relay ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ง‘๊ณ„์ž๋กœ๋ถ€ํ„ฐ ๋ณด๋‚ด๋Š” ๋ชจ๋“  ์ธก์ •ํ•ญ๋ชฉ์„ ์ˆ˜์ง‘ํ•˜์—ฌ ๋…ธ๋“œ๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ๋ผ์šฐํ„ฐ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ผ์šฐํŒ… ๋‹จ๊ณ„์—์„œ๋Š” ๋ฉ”ํŠธ๋ฆญ์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ฒซ์งธ, ์•ž์„œ ๋ณด์—ฌ๋“œ๋ฆฐ ์ ‘๋‘์‚ฌ ์ฒด๊ณ„์™€ ์ผ์น˜ํ•ด์•ผ ํ•˜๋ฉฐ, ๋‘˜์งธ, ํ‘์—ฐ์— ์œ ํšจํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋–จ์–ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ Carbon-c-relay๋Š” ์ธก์ •ํ•ญ๋ชฉ์„ Graphite ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Go๋กœ ๋‹ค์‹œ ์ž‘์„ฑ๋œ Carbon-cache๋ฅผ ๋ฉ”ํŠธ๋ฆญ์˜ ์ฃผ์š” ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Go-carbon์€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์œผ๋กœ ์ธํ•ด Carbon-cache๋ณด๋‹ค ์„ฑ๋Šฅ์ด ํ›จ์”ฌ ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ์†์‚ญ์ž„ ํŒจํ‚ค์ง€(ํ‘œ์ค€, Python์œผ๋กœ ์ž‘์„ฑ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ๋””์Šคํฌ์— ์”๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ธฐ ์œ„ํ•ด Graphite API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ Graphite WEB๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฆ…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”?

๊ทธ๋“ค์€ ๊ทธ๋ผํŒŒ๋‚˜๋กœ ๊ฐ‘๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ‘์—ฐ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์š” ์†Œ์Šค๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Grafana๋ฅผ ์ง€ํ‘œ ํ‘œ์‹œ ๋ฐ ๋Œ€์‹œ๋ณด๋“œ ๊ตฌ์ถ•์„ ์œ„ํ•œ ์›น ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์ž์‹ ๋งŒ์˜ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ž‘์„ฑํ•œ ์ธก์ •ํ•ญ๋ชฉ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. Grafana ์™ธ์—๋„ SLAM๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ‘์—ฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ SLA๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” Python ์•…๋งˆ์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ๋งํ–ˆ๋“ฏ์ด ์šฐ๋ฆฌ์—๊ฒŒ๋Š” ์ˆ˜์‹ญ ๊ฐœ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—๋Š” ๊ณ ์œ ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. SLAM์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์„œ๋กœ ์ด๋™ํ•˜์—ฌ Graphite์˜ ๋‚ด์šฉ๊ณผ ๋น„๊ตํ•˜๊ณ  ์š”๊ตฌ ์‚ฌํ•ญ์ด ์„œ๋น„์Šค ๊ฐ€์šฉ์„ฑ๊ณผ ์–ผ๋งˆ๋‚˜ ์ž˜ ์ผ์น˜ํ•˜๋Š”์ง€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

๋” ๋‚˜์•„๊ฐ€ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ . ๊ฐ•๋ ฅํ•œ ์‹œ์Šคํ…œ์ธ Moira๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํ›„๋“œ ์•„๋ž˜์— ์ž์ฒด ๊ทธ๋ž˜ํŒŒ์ดํŠธ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค. Python๊ณผ Go๋กœ ์ž‘์„ฑ๋œ SKB "Kontur" ์ง์›์ด ๊ฐœ๋ฐœํ•œ ์™„์ „ ์˜คํ”ˆ ์†Œ์Šค์ž…๋‹ˆ๋‹ค. Moira๋Š” ํ‘์—ฐ์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ํ๋ฆ„์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ์ค‘๋‹จ๋˜๋”๋ผ๋„ ์•Œ๋ฆผ์€ ๊ณ„์† ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” Kubernetes์— Moira๋ฅผ ๋ฐฐํฌํ–ˆ๋Š”๋ฐ, Redis ์„œ๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ๋Š” ๋‚ด๊ฒฐํ•จ์„ฑ ์‹œ์Šคํ…œ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”ํŠธ๋ฆญ ์ŠคํŠธ๋ฆผ์„ ํŠธ๋ฆฌ๊ฑฐ ๋ชฉ๋ก๊ณผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์–ธ๊ธ‰๋œ ๋‚ด์šฉ์ด ์—†์œผ๋ฉด ๋ฉ”ํŠธ๋ฆญ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ถ„๋‹น ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ์˜ ์ธก์ •ํ•ญ๋ชฉ์„ ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ธฐ์—… ์‹œ์Šคํ…œ์˜ ๊ฐ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ์กด(๋˜๋Š” ์ƒˆ๋กœ ์ƒ์„ฑ๋œ) ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์Šค์Šค๋กœ ์•Œ๋ฆผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ์—… LDAP๋ฅผ ์—ฐ๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. Moira์—๋Š” Graphite๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋จผ์ € ํ•ด๋‹น ์ค„์„ ๊ฐ€์ ธ์™€ Grafana์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๊ทธ๋ž˜ํ”„์— ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋™์ผํ•œ ์ค„์„ ์„ ํƒํ•˜์—ฌ Moira์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•œ๊ณ„๋ฅผ ๋‘๊ณ  ๋งค๋‹ฌ๊ณ  ์ถœ๋ ฅ ์‹œ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ํŠน์ • ์ง€์‹์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Moira๋Š” SMS, ์ด๋ฉ”์ผ, Jira, Slack ๋“ฑ์„ ํ†ตํ•ด ๊ฒฝ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋…€์—๊ฒŒ ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ •์˜ ์Šคํฌ๋ฆฝํŠธ ๋˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๊ตฌ๋…ํ•˜๋ฉด ์ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ด ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๋Œ€ํ•œ JSON์„ stdin์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ์ด๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด JSON์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์€ ๊ท€ํ•˜์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์›ํ•œ๋‹ค๋ฉด Telegram์œผ๋กœ ๋ณด๋‚ด๊ณ , ์›ํ•œ๋‹ค๋ฉด Jira์—์„œ ์ž‘์—…์„ ์—ด๊ณ  ๋ฌด์—‡์ด๋“  ํ•˜์„ธ์š”.

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ๊ฒฝ๊ณ ๋ฅผ ์œ„ํ•ด ์ž์ฒด ๊ฐœ๋ฐœํ•œ Imagotag๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋งค์žฅ์˜ ์ „์ž ๊ฐ€๊ฒฉํ‘œ์— ์‚ฌ์šฉ๋˜๋Š” ํŒจ๋„์„ ์šฐ๋ฆฌ์˜ ํ•„์š”์— ๋งž๊ฒŒ ์กฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. Moira์—์„œ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ˜„์žฌ ์ƒํƒœ์™€ ๋ฐœ์ƒ ์‹œ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ผ๋ถ€ ๊ฐœ๋ฐœ ๋‹ด๋‹น์ž๋Š” ์ด ํŒจ๋„์„ ์„ ํ˜ธํ•˜์—ฌ Slack ๋ฐ ์ด๋ฉ”์ผ ์•Œ๋ฆผ์„ ํฌ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šคํ˜• ๋ชจ๋‹ˆํ„ฐ๋ง: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆํ˜• ์‹œ์Šคํ…œ

๊ธ€์Ž„, ์šฐ๋ฆฌ๋Š” ์ง„๋ณด์ ์ธ ํšŒ์‚ฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด ์‹œ์Šคํ…œ์—์„œ Kubernetes๋„ ๋ชจ๋‹ˆํ„ฐ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์— ์„ค์น˜ํ•œ Heapster๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์— ํฌํ•จ์‹œ์ผฐ๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ Graphite๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šคํ˜• ๋ชจ๋‹ˆํ„ฐ๋ง: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆํ˜• ์‹œ์Šคํ…œ

๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌ์„ฑ ์š”์†Œ

๋‹ค์Œ์€ ์ด ์ž‘์—…์— ์‚ฌ์šฉํ•œ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ๋งํฌ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค ๋ชจ๋‘๋Š” ์˜คํ”ˆ ์†Œ์Šค์ž…๋‹ˆ๋‹ค.

์„๋ฌต:

์นด๋ณธ-C-๋ฆด๋ ˆ์ด:

github.com/grobian/carbon-c-relay

๋ธŒ๋ฃจ๋ฒก:

github.com/github/brubeck

์ˆ˜์ง‘๋œ ํ•ญ๋ชฉ:

Collectd.org

๋ชจ์ด๋ผ :

github.com/moira-alert

๊ทธ๋ผํŒŒ๋‚˜:

grafana.com

ํž™์Šคํ„ฐ:

github.com/kubernetes/heapster

ํ†ต๊ณ„

๋‹ค์Œ์€ ์‹œ์Šคํ…œ์ด ์šฐ๋ฆฌ์—๊ฒŒ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ˆ˜์น˜์ž…๋‹ˆ๋‹ค.

์• ๊ทธ๋ฆฌ๊ฒŒ์ดํ„ฐ(๋ธŒ๋คผ๋ฒก)

์ง€ํ‘œ ์ˆ˜: ~300/์ดˆ
์ง€ํ‘œ๋ฅผ Graphite๋กœ ๋ณด๋‚ด๋Š” ๊ฐ„๊ฒฉ: 30์ดˆ
์„œ๋ฒ„ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰: ~ 6% CPU(์™„์ „ํ•œ ์„œ๋ฒ„์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Œ) ~ 1GB RAM; ~3Mbps LAN

ํ‘์—ฐ(๊ณ ์นด๋ณธ)

์ง€ํ‘œ ์ˆ˜: ~ 1/๋ถ„
์ง€ํ‘œ ์—…๋ฐ์ดํŠธ ๊ฐ„๊ฒฉ: 30์ดˆ
์ธก์ •ํ•ญ๋ชฉ ์ €์žฅ ๋ฐฉ์‹: 30์ดˆ 35์ผ, 5๋ถ„ 90์ผ, 10๋ถ„ 365์ผ(์žฅ๊ธฐ๊ฐ„ ๋™์•ˆ ์„œ๋น„์Šค์— ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Œ)
์„œ๋ฒ„ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰: ~10% CPU; ~ 20Gb RAM; ~30Mbps LAN

์œ ์—ฐ์„ฑ

Avito๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ์„œ๋น„์Šค์˜ ์œ ์—ฐ์„ฑ์„ ๋งค์šฐ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” ์‹ค์ œ๋กœ ์™œ ์ด๋ ‡๊ฒŒ ๋˜์—ˆ๋Š”๊ฐ€? ์ฒซ์งธ, ํ•ด๋‹น ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๊ตฌ์„ฑ ์š”์†Œ ์ž์ฒด์™€ ํ•ด๋‹น ๋ฒ„์ „ ๋ชจ๋‘ ์ƒํ˜ธ ๊ตํ™˜์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋‘˜์งธ, ์ง€์› ๊ฐ€๋Šฅ์„ฑ์ž…๋‹ˆ๋‹ค. ์ „์ฒด ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค์ด๋ฏ€๋กœ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ํŽธ์ง‘ํ•˜๊ณ , ๋ณ€๊ฒฝํ•˜๊ณ , ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ๋กœ Go ๋ฐ Python๊ณผ ๊ฐ™์€ ๋งค์šฐ ์ผ๋ฐ˜์ ์ธ ์Šคํƒ์ด ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์‹ค์ œ ๋ฌธ์ œ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. Graphite์˜ ๋ฉ”ํŠธ๋ฆญ์€ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„ = ์ธก์ •ํ•ญ๋ชฉ ์ด๋ฆ„. ๊ทธ๋ฆฌ๊ณ  ๊ฑฐ๊ธฐ๋กœ ๊ฐ€๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. Linux์˜ ํŒŒ์ผ ์ด๋ฆ„์€ 255์ž๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  (โ€œ๋‚ด๋ถ€ ๊ณ ๊ฐโ€์œผ๋กœ์„œ) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€์„œ ์ง์›์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์šฐ๋ฆฌ์—๊ฒŒ ์ด๋ ‡๊ฒŒ ๋งํ•ฉ๋‹ˆ๋‹ค. โ€œ์šฐ๋ฆฌ๋Š” SQL ์ฟผ๋ฆฌ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  255์ž๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐ๊ฐ 8MB์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ Grafana์— ํ‘œ์‹œํ•˜๊ณ , ์ด ์š”์ฒญ์— ๋Œ€ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ™•์ธํ•˜๊ณ , ๋” ๋‚˜์•„๊ฐ€ ๊ทธ๋Ÿฌํ•œ ์š”์ฒญ์˜ ์ƒ๋‹จ์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด์—ฌ์ฃผ๋ฉด ์ •๋ง ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”. ๊ทธ๋“ค์—๊ฒŒ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์€ ์ •๋ง ๋ฉ‹์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.โ€

์„œ๋น„์Šคํ˜• ๋ชจ๋‹ˆํ„ฐ๋ง: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆํ˜• ์‹œ์Šคํ…œ
์˜ˆ์ œ SQL ์ฟผ๋ฆฌ๋Š” ์‚ฌ์ดํŠธ postgrespro.ru

์šฐ๋ฆฌ๋Š” Redis ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•˜๊ณ  Postgres๋กœ ์ด๋™ํ•˜์—ฌ ๊ฑฐ๊ธฐ์—์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ Graphite๋กœ ๋ฉ”ํŠธ๋ฆญ์„ ๋ณด๋‚ด๋Š” Collectd ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ธก์ •ํ•ญ๋ชฉ ์ด๋ฆ„์„ ํ•ด์‹œ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๋™์ผํ•œ ํ•ด์‹œ๋ฅผ Redis์— ํ‚ค๋กœ ๋ณด๋‚ด๊ณ  ์ „์ฒด SQL ์ฟผ๋ฆฌ๋ฅผ ๊ฐ’์œผ๋กœ ๋™์‹œ์— ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ•ด์•ผ ํ•  ์ผ์€ Grafana๊ฐ€ Redis๋กœ ์ด๋™ํ•˜์—ฌ ์ด ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Graphite API๋ฅผ ๊ณต๊ฐœํ•˜๋Š” ์ด์œ ๋Š”... ์ด๋Š” ๋ชจ๋“  ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌ์„ฑ ์š”์†Œ์™€ ํ‘์—ฐ์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ์ธํ„ฐํŽ˜์ด์Šค์ด๋ฉฐ ์—ฌ๊ธฐ์— aliasByHash()๋ผ๋Š” ์ƒˆ ํ•จ์ˆ˜๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. Grafana์—์„œ ๋ฉ”ํŠธ๋ฆญ ์ด๋ฆ„์„ ๊ฐ€์ ธ์™€ Redis์— ๋Œ€ํ•œ ์š”์ฒญ์—์„œ ํ‚ค๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‘๋‹ต์„ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” "SQL ์ฟผ๋ฆฌ"์ธ ํ‚ค ๊ฐ’์„ ์–ป์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์ด๋ก ์ ์œผ๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์—†๋Š” SQL ์ฟผ๋ฆฌ๋ฅผ Grafana์— ํ†ต๊ณ„(ํ˜ธ์ถœ, ํ–‰, total_time ๋“ฑ)์™€ ํ•จ๊ป˜ ํ‘œ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ

๊ฐ€์šฉ์„ฑ ๋‹น์‚ฌ์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ์„œ๋น„์Šค๋Š” ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ฝ”๋“œ์—์„œ ์—ฐ์ค‘๋ฌดํœด 24์‹œ๊ฐ„ ์ด์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์Šคํ† ๋ฆฌ์ง€ ์‹œ์„ค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์„œ๋น„์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ธ์–ด๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ฒฐ์ •๋„ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์†Œ์ผ“์„ ์—ฌ๋Š” ๋ฐฉ๋ฒ•, ๊ฑฐ๊ธฐ์— ๋ฉ”ํŠธ๋ฆญ์„ ๋„ฃ๊ณ  ์†Œ์ผ“์„ ๋‹ซ๋Š” ๋ฐฉ๋ฒ•๋งŒ ์•Œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์‹ ๋ขฐ์„ฑ. ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋‚ด๊ฒฐํ•จ์„ฑ์ด ์žˆ์œผ๋ฉฐ ๋ถ€ํ•˜๋ฅผ ์ž˜ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ง„์ž… ๋ฌธํ„ฑ์ด ๋‚ฎ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Grafana์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ์ฟผ๋ฆฌ๋ฅผ ๋ฐฐ์šธ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ด๊ณ  Graphite์— ๋ฉ”ํŠธ๋ฆญ์„ ๋ณด๋‚ด๋Š” ์†Œ์ผ“์„ ์ž…๋ ฅํ•˜๊ณ  ๋‹ซ์€ ๋‹ค์Œ Grafana๋ฅผ ์—ด๊ณ  ๊ฑฐ๊ธฐ์„œ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์ƒ์„ฑํ•œ ๋‹ค์Œ ๋ฉ”ํŠธ๋ฆญ์˜ ๋™์ž‘์„ ์‚ดํŽด๋ณด๊ณ  Moira๋ฅผ ํ†ตํ•ด ์•Œ๋ฆผ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

๋…๋ฆฝ. DevOps ์—”์ง€๋‹ˆ์–ด์˜ ๋„์›€ ์—†์ด ์ด ๋ชจ๋“  ์ž‘์—…์„ ์ง์ ‘ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ”๋กœ ์ง€๊ธˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๊ตฌ์—๊ฒŒ๋„ ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๋ผ๊ณ  ์š”์ฒญํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์•„๋ž˜์— ๋‚˜์—ด๋œ ๋ชจ๋“  ๊ฒƒ์€ ๋‹จ์ง€ ์ถ”์ƒ์ ์ธ ์ƒ๊ฐ์ด ์•„๋‹ˆ๋ผ ์ ์–ด๋„ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๊ฐ€ ์ทจํ•ด์ง„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. ์ด์ƒ ํƒ์ง€๊ธฐ. ์šฐ๋ฆฌ๋Š” Graphite ์Šคํ† ๋ฆฌ์ง€๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ์ง€ํ‘œ๋ฅผ ํ™•์ธํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋ณด๊ณ  ์‹ถ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ์žˆ๊ณ , ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ. ์šฐ๋ฆฌ๋Š” ๋งŽ์€ ์„œ๋น„์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ์ง€์†์ ์œผ๋กœ ๋ฌธ์„œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์šฐ๋ฆฌ๊ฐ€ ํ˜„์žฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด์žฅํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ฐœ๋ฐœํ•œ ์‚ฌ๋žŒ, ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์–ธ์–ด, SLA ์š”๊ตฌ ์‚ฌํ•ญ, ์•Œ๋ฆผ์„ ๋ณด๋‚ด์•ผ ํ•˜๋Š” ์œ„์น˜ ๋ฐ ๋Œ€์ƒ์ด ๋ช…์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•  ๋•Œ ๋ชจ๋“  ์—”ํ„ฐํ‹ฐ ๋ฐ์ดํ„ฐ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‘ ๊ฐœ์˜ ๋งํฌ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ํŠธ๋ฆฌ๊ฑฐ์— ๋Œ€ํ•œ ๋งํฌ์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Grafana์˜ ๋Œ€์‹œ๋ณด๋“œ์— ๋Œ€ํ•œ ๋งํฌ์ž…๋‹ˆ๋‹ค.
  3. ๋ชจ๋“  ๊ฐ€์ •์—์„œ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํŠธ๋ž˜ํ”ฝ์ด ์–ด๋””์— ์žˆ๋Š”์ง€, ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€, ํŠธ๋ž˜ํ”ฝ์ด ์–ด๋””์— ์žˆ๋Š”์ง€, ์•ฝ์ ์ด ์–ด๋””์— ์žˆ๋Š”์ง€ ํ•ญ์ƒ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜์—ฌ ์„œ๋น„์Šค๊ฐ€ ์ค‘๋‹จ๋˜๋Š” ๊ฒฝ์šฐ ๊ด€๋ฆฌ์ž์˜ ํ†ตํ™”๊ฐ€ ์•„๋‹Œ ์•Œ๋ฆผ์„ ํ†ตํ•ด ์ด์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ๋˜๋ฉฐ ์ฆ‰์‹œ ์ตœ์‹  ๋กœ๊ทธ๋ฅผ ์—ด์–ด ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ฌ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ๊ณ ์„ฑ๋Šฅ. ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š” ์ง€์†์ ์œผ๋กœ ์„ฑ์žฅํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํ˜„์žฌ ๋ถ„๋‹น ์•ฝ 2๊ฐœ์˜ ์ธก์ •๊ฐ’์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 000๋…„ ์ „ ์ด ์ˆ˜์น˜๋Š” 000์ด์—ˆ๊ณ  ์„ฑ์žฅ์ด ๊ณ„์†๋˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋Š” ์ผ์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด Graphite(์†์‚ญ์ž„)๊ฐ€ ๋””์Šคํฌ ํ•˜์œ„ ์‹œ์Šคํ…œ์— ๊ณผ๋„ํ•œ ๋ถ€ํ•˜๋ฅผ ์ฃผ๊ธฐ ์‹œ์ž‘ํ•  ๊ฒƒ์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ๋งํ–ˆ๋“ฏ์ด ์ด ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์€ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ƒํ˜ธ ๊ตํ™˜ ๊ฐ€๋Šฅ์„ฑ์œผ๋กœ ์ธํ•ด ๋งค์šฐ ๋ณดํŽธ์ ์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ Graphite๋ฅผ ์œ„ํ•œ ์ธํ”„๋ผ๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ณ  ์ง€์†์ ์œผ๋กœ ํ™•์žฅํ•˜๊ณ  ์žˆ์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ํด๋ฆญ ํ•˜์šฐ์Šค ์ธก์ •ํ•ญ๋ชฉ์˜ ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์ „ํ™˜์€ ๊ฑฐ์˜ ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉฐ ๊ณง ์ด ์ž‘์—…์ด ์–ด๋–ป๊ฒŒ ์ˆ˜ํ–‰๋˜์—ˆ๋Š”์ง€ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์–ด๋ ค์›€์ด ์žˆ์—ˆ๊ณ  ์–ด๋–ป๊ฒŒ ๊ทน๋ณตํ–ˆ๋Š”์ง€, ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰๋˜์—ˆ๋Š”์ง€, ๋ฐ”์ธ๋”ฉ์œผ๋กœ ์„ ํƒํ•œ ๊ตฌ์„ฑ ์š”์†Œ์™€ ํ•ด๋‹น ๊ตฌ์„ฑ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ด€์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ฃผ์ œ์— ๋Œ€ํ•ด ์งˆ๋ฌธ์„ ํ•˜์‹œ๋ฉด ์—ฌ๊ธฐ๋‚˜ ๋‹ค์Œ ๊ฒŒ์‹œ๋ฌผ์—์„œ ๋‹ต๋ณ€ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋ˆ„๊ตฐ๊ฐ€ ๋น„์Šทํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•œ ๊ฒฝํ—˜์ด ์žˆ๊ฑฐ๋‚˜ ๋น„์Šทํ•œ ์ƒํ™ฉ์—์„œ Clickhouse๋กœ ์ „ํ™˜ํ•œ ๊ฒฝํ—˜์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Œ“๊ธ€๋กœ ๊ณต์œ ํ•ด ์ฃผ์„ธ์š”.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€