이상적인 MSA 모니터링 아키텍처
마이크로서비스 아키텍처의 핵심 원칙을 고려하면, 각 서비스는 자율성을 가지고 자신의 메트릭과 로그를 독립적으로 관리해야 한다.
다음은 서비스의 자율성을 유지하면서 중앙화된 모니터링 및 로깅 기능을 제공할 수 있는 균형 잡힌 솔루션이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
🎯 각 마이크로서비스의 책임:
📁 backend_gateway/
├── services/metrics.py # ✅ 자신의 메트릭 노출 (/metrics)
├── services/logger.py # ✅ 자신의 로그 생성
└── ...
📁 backend_auth_route/
├── services/metrics.py # ✅ 자신의 메트릭 노출
├── services/logger.py # ✅ 자신의 로그 생성
└── ...
🎯 중앙 모니터링 인프라의 책임:
📁 backend_monitoring/
├── run_monitoring.py # ✅ 모니터링 스택 관리
└── monitoring/ # ✅ 수집, 저장, 시각화, 알림
├── prometheus.yml # 모든 서비스에서 메트릭 수집
├── grafana/ # 통합 대시보드
└── alertmanager.yml # 중앙화된 알림
1
2
3
4
5
6
7
8
9
10
11
12
🌐 클라이언트 요청
↓
🚪 Gateway (8002) ────┐
↓ │
🔀 Proxy 라우팅 │
↓ ↓ ↓ ↓ │ 📊 메트릭 수집
🔐 Auth 💰 Payment │ ↓
🔔 Notification │ 📈 Prometheus (9090)
🖼️ Image Generation ────┘ ↓
📊 Grafana (3000)
↓
🚨 AlertManager (9093)
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.