์š”์•ฝ

SUMMARY

SigNoz์—์„œ ๊ฐ์ง€ํ•œ ์ด์ƒ์„ Teams ์›นํ›…์œผ๋กœ ๋ฐ›๋„๋ก ์•Œ๋žŒ์„ ๊ตฌ์„ฑํ–ˆ๋‹ค. ์žก์•„๋‘” ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ์„ธ ๊ฐ€์ง€ โ€” ํŒŒ๋“œ๊ฐ€ ๋ฐ˜๋ณต ์žฌ์‹œ์ž‘(CrashLoopBackOff)ํ•  ๋•Œ, CPUยท๋ฉ”๋ชจ๋ฆฌยทGPU๊ฐ€ ์ž„๊ณ„์น˜๋ฅผ ๋„˜์„ ๋•Œ(๊ฒฝ๊ณ /์œ„ํ—˜ 2๋‹จ), ๊ทธ๋ฆฌ๊ณ  ๊ด€์ธก ์‹œ์Šคํ…œ ์ž์ฒด(otel-collectorยทSigNoz)๊ฐ€ ์ฃฝ์—ˆ์„ ๋•Œ๋‹ค. ๋งˆ์ง€๋ง‰ ํ•˜๋‚˜๊ฐ€ ํ•ต์‹ฌ์ธ๋ฐ, ๊ด€์ธก์ด ๋ฉˆ์ถ”๋ฉด ๋‹ค๋ฅธ ์•Œ๋žŒ๋„ ์•ˆ ์˜ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์•Œ๋žŒ์„ ์งค ๋•Œ ์ œ์ผ ์‹ ๊ฒฝ ์“ด ๊ฑด โ€œ์•Œ๋žŒ์ด ์•ˆ ์˜ค๋Š” ๊ฒŒ ์ •์ƒ์ธ์ง€, ๊ด€์ธก์ด ์ฃฝ์–ด์„œ ์•ˆ ์˜ค๋Š” ๊ฑด์ง€โ€๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.

1. ์ „๋‹ฌ ์ฑ„๋„: Teams ์›นํ›…

์•Œ๋žŒ์€ Teams ์›นํ›…์œผ๋กœ ๋ณด๋‚ธ๋‹ค. SigNoz์˜ ์•Œ๋ฆผ ์ฑ„๋„(Alert Channel)์— Teams์˜ incoming webhook URL์„ ๋“ฑ๋กํ•˜๋ฉด, ํŠธ๋ฆฌ๊ฑฐ๋œ ์•Œ๋žŒ์ด ๊ทธ ์ฑ„๋„๋กœ ์นด๋“œ ๋ฉ”์‹œ์ง€๋กœ ์˜จ๋‹ค. ์šด์˜ ์ธ์›์ด ์ด๋ฏธ Teams๋ฅผ ์“ฐ๊ณ  ์žˆ์–ด์„œ ๋ณ„๋„ ์•Œ๋ฆผ ๋„๊ตฌ๋ฅผ ์ƒˆ๋กœ ๋ถ™์ด์ง€ ์•Š๊ณ  ๋ถ™์˜€๋‹ค.

2. ์•Œ๋žŒ ์‹œ๋‚˜๋ฆฌ์˜ค

2-1. ํŒŒ๋“œ CrashLoopBackOff

ํŒŒ๋“œ๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์žฌ์‹œ์ž‘ํ•˜๋ฉด ์•Œ๋žŒ์„ ๋ณด๋‚ธ๋‹ค. SigNoz์—์„œ k8s.pod.status.phase๊ฐ€ Failed๋กœ ๋–จ์–ด์ง€๊ฑฐ๋‚˜ restart count๊ฐ€ ์ž„๊ณ„์น˜๋ฅผ ๋„˜์œผ๋ฉด ํŠธ๋ฆฌ๊ฑฐํ•œ๋‹ค. ํ•œ ๋ฒˆ ์ฃฝ๋Š” ๊ฑด ํ”ํ•˜๋‹ˆ ์ผ์ • ์‹œ๊ฐ„ ์ฐฝ์—์„œ ์žฌ์‹œ์ž‘ ํšŸ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์žก์•„, ์ผ์‹œ์  ์žฌ๊ธฐ๋™์— ๊ณผ๋ฏผ ๋ฐ˜์‘ํ•˜์ง€ ์•Š๊ฒŒ ํ–ˆ๋‹ค.

2-2. ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ ์ž„๊ณ„์น˜ ์ดˆ๊ณผ

CPUยท๋ฉ”๋ชจ๋ฆฌยทGPU ์‚ฌ์šฉ๋Ÿ‰์ด ์ž„๊ณ„์น˜๋ฅผ ๋„˜์œผ๋ฉด ์•Œ๋žŒ์„ ๋ณด๋‚ธ๋‹ค. ๊ฒฝ๊ณ (warning)์™€ ์œ„ํ—˜(critical) 2๋‹จ์œผ๋กœ ๋‚˜๋ˆ , ์—ฌ์œ ๊ฐ€ ์ค„์–ด๋“œ๋Š” ๋‹จ๊ณ„์—์„  ๊ฒฝ๊ณ ๋งŒ, ์‹ค์ œ๋กœ ๋„˜์น˜๋ฉด ์œ„ํ—˜ ์•Œ๋žŒ์„ ๋„์šด๋‹ค. ๊ทธ๋ž˜์•ผ โ€œ์ด๋ฏธ ํ„ฐ์ง„ ๋’คโ€๊ฐ€ ์•„๋‹ˆ๋ผ โ€œํ„ฐ์ง€๊ธฐ ์ „โ€์— ์†๋Œˆ ์ˆ˜ ์žˆ๋‹ค.

  • CPU โ€” ํŒŒ๋“œ request ๋Œ€๋น„ ์‚ฌ์šฉ๋ฅ 
  • ๋ฉ”๋ชจ๋ฆฌ โ€” ํŒŒ๋“œ limit ๋Œ€๋น„ ์‚ฌ์šฉ๋ฅ 
  • GPU โ€” GPU ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋ฅ (nvidia ์ง€ํ‘œ ๊ธฐ์ค€)

2-3. ๋กœ๊ทธยท๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘ ๋ถˆ๊ฐ€

otel-collector๊ฐ€ ์ˆ˜์ง‘์„ ๋ฉˆ์ถ”๊ฑฐ๋‚˜ SigNoz ์ž์ฒด๊ฐ€ unhealthy๊ฐ€ ๋˜๋ฉด ์•Œ๋žŒ์„ ๋ณด๋‚ธ๋‹ค. ์ด๊ฑด ๊ด€์ธก ์‹œ์Šคํ…œ์ด ์ฃฝ์€ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•œ ๊ฒƒ์ด๋‹ค. ๊ด€์ธก์ด ๋ฉˆ์ถ”๋ฉด ์œ„ ๋‘ ์•Œ๋žŒ๋„ ๊ฐ™์ด ์นจ๋ฌตํ•˜๊ธฐ ๋•Œ๋ฌธ์—, โ€œ์•Œ๋žŒ์ด ์•ˆ ์˜จ๋‹ค = ํ‰์˜จํ•˜๋‹คโ€๊ฐ€ ๊ฑฐ์ง“์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ˆ˜์ง‘ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ƒ์กด ์ž์ฒด๋ฅผ ๋ณ„๋„ ์•Œ๋žŒ์œผ๋กœ ๊ฐ์‹œํ•œ๋‹ค.

NOTE

otel-collector๋Š” DaemonSet์œผ๋กœ ๋…ธ๋“œ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ๋–  ์žˆ๋‹ค(Otel pipeline ์ฐธ๊ณ ). collector ํŒŒ๋“œ๊ฐ€ unhealthy๊ฐ€ ๋˜๋ฉด ๊ทธ ๋…ธ๋“œ์˜ ๋ฉ”ํŠธ๋ฆญ๋งŒ ๋Š๊ธฐ๊ณ  ๋‹ค๋ฅธ ๋…ธ๋“œ๋Š” ์ •์ƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ˆ˜์ง‘ ๋ถˆ๊ฐ€ ์•Œ๋žŒ์€ โ€œ๋…ธ๋“œ ํ•˜๋‚˜์˜ collector ๋ฌธ์ œโ€์ธ์ง€ โ€œSigNoz ๊ฒŒ์ดํŠธ์›จ์ดยท๋ฐฑ์—”๋“œ ์ „์ฒด ๋ฌธ์ œโ€์ธ์ง€ ๊ตฌ๋ถ„ํ•ด์„œ ์žก๋Š” ๊ฒŒ ์ข‹๋‹ค. ์ „์ž๋Š” ๋…ธ๋“œ ๋‹จ์œ„ ์กฐ์น˜, ํ›„์ž๋Š” ๊ด€์ธก ์Šคํƒ ์ „์ฒด ์žฅ์• ๋‹ค.

์ฐธ๊ณ