Distributed System์ ๊ฐ์์ฑ ํ๋ณด๋ฅผ ์ํ Three Pillars ๊ธฐ๋ฐ Observability ์ํคํ ์ฒ ์ค๊ณ
Day 28 โ ๐ญ Monitoring & Observability Part One
AI ์์ฝ
Context
Monolithic ๊ตฌ์กฐ์์ Microservices ๋ฐ Kubernetes ๊ธฐ๋ฐ์ ๋ถ์ฐ ํ๊ฒฝ์ผ๋ก ์ ํ๋จ์ ๋ฐ๋ผ ์์ฒญ ๊ฒฝ๋ก์ ๋ณต์ก์ฑ ์ฆ๊ฐ. ๋จ์ Monitoring๋ง์ผ๋ก๋ ํน์ ์๋น์ค์ ์ฅ์ ์์ธ ํ์ ๋ฐ Root Cause Analysis ์ํ์ ํ๊ณ ๋ ธ์ถ.
Technical Solution
- Metrics, Logs, Traces์ Three Pillars๋ฅผ ํตํฉํ์ฌ ์์คํ ๋ด๋ถ ์ํ๋ฅผ ์ถ๋ก ํ๋ Observability ์ฒด๊ณ ๊ตฌ์ถ
- Prometheus์ Pull-Based Collection ๋ฐฉ์์ ํตํ ์ธํ๋ผ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ Metric์ ํจ์จ์ ์์ง
- Time-Series Database ๊ตฌ์กฐ๋ฅผ ํ์ฉํ Timestamp ๊ธฐ๋ฐ์ ์์น ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ฟผ๋ฆฌ ์ต์ ํ
- Exporters๋ฅผ ํตํ ์ด๊ธฐ์ข ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ OS ๋ ๋ฒจ์ Metric ํ์คํ ๋ฐ ์์ง ๊ฒฝ๋ก ๋จ์ผํ
- Grafana Dashboard๋ฅผ ํตํ Prometheus ๋ฐ์ดํฐ์ ์๊ฐํ ๋ฐ ์ค์๊ฐ ์์คํ ์ํ ๋ชจ๋ํฐ๋ง ๊ตฌํ
- ๋จ์ ์๊ณ์น ๊ธฐ๋ฐ ์๋์ ์ง์ํ๊ณ 'CPU > 90% for 10 minutes'์ ๊ฐ์ Actionable Alert ์ค์ ์ผ๋ก ์คํ์ง ๊ฐ์
์ค์ฒ ํฌ์ธํธ
- Prometheus + Grafana ์กฐํฉ์ผ๋ก ๊ฐ๋ฒผ์ด Metric ์์ง ์ฒด๊ณ๋ฅผ ์ฐ์ ๊ตฌ์ถํ ๊ฒ - ๋จ์ผ ์งํ๊ฐ ์๋ Metrics, Logs, Traces์ ์๊ด๊ด๊ณ๋ฅผ ๋ถ์ํ์ฌ ์ฅ์ ํด๊ฒฐ ์๊ฐ์ ๋จ์ถํ ๊ฒ - Dev, QA, Prod ํ๊ฒฝ๋ณ๋ก ๋ ๋ฆฝ์ ์ธ Monitoring ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ฌ ํ๊ฒฝ ๊ฐ ๊ฐ์ญ์ ์ ๊ฑฐํ ๊ฒ - ๋จ์ CPU/MEM ์์น ํ์ธ์ ๋์ด ์์ฒญ์ ํ๋ฆ์ ์ถ์ ํ๋ Distributed Tracing ๋์ ์ ๊ฒํ ํ ๊ฒ