마이크로서비스 아키텍처(MSA)는 서비스가 작고 많기 때문에 시스템 전체의 상태를 실시간으로 모니터링하지 않으면 장애를 감지하기 어렵다.
전통적인 로그 기반 모니터링만으로는 서비스 간 호출, 응답 시간, 시스템 리소스 사용량을 효율적으로 파악할 수 없다.
이러한 문제를 해결하기 위해 가장 많이 사용되는 모니터링 도구가 바로 Prometheus와 Grafana이다.

✅ MSA에서 모니터링이 중요한 이유
- 서비스 수가 많아지며 장애의 원인 파악이 어려워진다.
- 각 서비스가 독립적으로 배포되므로 개별 성능 상태를 추적해야 한다.
- 부하 증가나 리소스 이상을 빠르게 파악하고 자동 대응해야 한다.
- 배포 이후 성능 하락, 트래픽 이상, 장애 조짐을 선제적으로 감지해야 한다.
즉, 수집 → 저장 → 시각화 → 알람의 전 과정을 자동화한 모니터링 체계가 필요하다.
🌐 Prometheus란?
Prometheus는 CNCF(Cloud Native Computing Foundation)의 대표적인 오픈소스 시계열 모니터링 시스템이다.
특히 Kubernetes와의 통합이 매우 뛰어나며, 서비스 메트릭 수집 및 알람 설정이 유연하다.
🔧 주요 특징
- Pull 방식의 메트릭 수집 (서비스가 메트릭을 노출 → Prometheus가 주기적으로 수집)
- 시계열 데이터 저장 및 쿼리 (PromQL)
- AlertManager를 통한 알림 전송
- 서비스 자체 또는 Sidecar 방식으로 Exporter 설치 가능
🛠️ Spring Boot에서의 적용 예시
- gradle
implementation 'io.micrometer:micrometer-registry-prometheus'
- yml
management:
endpoints:
web:
exposure:
include: prometheus
서비스가 /actuator/prometheus 엔드포인트로 메트릭을 노출한다.
📈 Grafana란?
Grafana는 Prometheus에서 수집한 시계열 데이터를 대시보드 형태로 시각화하는 도구이다.
직관적인 UI와 다양한 위젯을 통해 개발자와 운영자가 시스템 상태를 실시간으로 파악할 수 있도록 도와준다.
✅ 주요 기능
- 다양한 시계열 데이터 소스 연결 (Prometheus, Loki, Elasticsearch 등)
- 실시간 대시보드 구성
- 사용자별 권한 설정
- 알람 설정 및 슬랙, 이메일, SMS 등 연동
🧠 대시보드 구성 예시
| 항목 | 지표 예시 |
| 서비스 응답 시간 | http_server_requests_seconds_max |
| 에러율 | http_server_requests_seconds_count (5xx 응답 비율) |
| CPU, Memory 사용량 | node_exporter, cadvisor 메트릭 |
| DB 연결 수 | datasource_active_connections |
| 인스턴스 수 | up, instance count |
🔄 Prometheus + Grafana 통합 흐름

- Prometheus가 각 서비스에서 메트릭 수집
- Grafana가 Prometheus를 데이터 소스로 사용
- 실시간 차트, 알람, 히스토리 분석 제공
🔔 알람 설정 예시 (Prometheus AlertManager)
- yml
groups:
- name: instance_down
rules:
- alert: InstanceDown
expr: up == 0
for: 30s
labels:
severity: critical
annotations:
summary: "Instance {{ $labels.instance }} down"
이 설정은 서비스 인스턴스가 30초 동안 응답하지 않으면 경고를 발생시킨다.
🧠 실무 적용 팁
- 모든 마이크로서비스에 Micrometer + Prometheus Exporter를 포함시키는 것이 핵심이다.
- 메트릭은 반드시 표준화된 네이밍으로 관리해야 한다.
- 알람은 임계값 기반(Alert Rule)과 변화율 기반(Anomaly Detection)을 혼합해야 한다.
- 인프라 상태까지 모니터링하려면 Node Exporter, Kube-State-Metrics, cAdvisor 등을 함께 사용한다.
- 대시보드는 사용자(개발/운영/보안 등) 역할에 따라 나누어 구성하는 것이 효율적이다.
✅ 결론
MSA 환경에서 Prometheus와 Grafana는 가장 실전적인 모니터링 조합이다.
Prometheus는 강력한 메트릭 수집기이며, Grafana는 직관적인 시각화 도구이다.
이 두 가지를 함께 사용하면 서비스 상태를 실시간으로 파악하고, 장애를 조기에 감지하며, 운영 안정성을 확보할 수 있다.
모니터링 체계는 더 이상 옵션이 아니라, MSA 운영의 필수 인프라이다.
📌 참고한 공식 문서
'MSA' 카테고리의 다른 글
| [MSA] 실무에서 자주 겪는 성능 이슈와 해결법 (4) | 2025.07.24 |
|---|---|
| [MSA] 마이크로서비스 간 트랜잭션: Saga와 Eventual Consistency (5) | 2025.07.24 |
| [MSA] 계약 테스트와 통합 테스트 전략 비교 (3) | 2025.07.24 |
| [MSA] Sleuth, Zipkin으로 분산 추적 구현하기 (4) | 2025.07.24 |
| [MSA] MSA에서 CI/CD와 무중단 배포 전략 (3) | 2025.07.24 |
| [MSA] JWT와 OAuth2로 인증 처리하는 방법 (2) | 2025.07.24 |
| [MSA] Kafka vs RabbitMQ: 메시지 기반 아키텍처 완전정복 (2) | 2025.07.23 |
| [MSA] Spring Cloud Config와 Vault로 설정 통합 관리 (0) | 2025.07.23 |