
서비스를 운영할때 단순히 서비스가 동작중인지 확인하는것을 넘어, 문제가 발생했을때 왜 해당 문제가 발생했는지 파악해 빠르게 대응하는것은 중요하다.
이때 핵심이 되는 개념이 바로 모니터링(Monitoring)과 옵저버빌리티(Observability) 이다.
모니터링(Monitoring)
모니터링이란 무엇이 언제 잘못되었는지 확인하는 도구이다. (What 과 When)
정의
모니터링은 시스템에서 발생하는 다양한 지표를 수집하고 감시해서 이상 징후를 빠르게 탐지하고 알림을 전송하는 프로세스이다.
예시
- 갑작스러운 트래픽 증가 시, CPU와 RAM 등의 리소스 부족으로 인해 장애를 사전에 감지한다
- 장애 발생 시, 이를 빠르게 인지하여 평균 탐지 시간(MTTD)과 복구시간(MTTR)을 최소화한다.
주요 목적
- 가용성 확인(Availability): 서비스의 정상 동작 여부, 다운타임 여부 실시간 확인
- 성능 추적(Performance): CPU, Memory, Disk IO DB Connection 등 주요 매트릭 수집
- 장애 탐지 및 알림: 특정 임게값 초과 시 알림 전송
구성 요소
- 데이터 수집기
- Push 방식 : 각 서비스가 직접 서버에 데이터를 보내는 방식
- Pull 방식 : 서버가 주기적으로 타겟으로 부터 데이터 수집
- 매트릭 저장소
- 시계열 데이터를 저장 (ex. Prometheus, InfluxDB)
- 시각화 도구
- 대시보드로 시각화 (ex. Grafana, Kibana)
- 알림 시스템
- 이상 탐지 시 알림 전송
장점 및 한계
- 장점: 오픈소스 도구로 빠르게 구축 가능하다, 짧은 시간 내 시각화 환경까지 구축 가능하다.
- 단점: 단순히 “이상이 있다”는 것 까지만 파악 가능하다. 근본 원인을 파악하는것은 어렵다. 특히 MSA 환경에서는 서비스 간 호출 흐름을 추적하기 어렵다.
옵저버빌리티(Observability)
앞서 모니터링의 단점(한계)으로 원인 파악 및 흐름 추적이 어렵다고 언급했었다. 옵저버비리티는 왜 그리고 어떻게 문제가 발생헀는지 분석하는 방식이다. (Why와 How)
정의
옵저버빌리티는 단순한 지표 수집을 넘어, 시스템 내부 상태를 이해하고 문제의 근본 원인을 분석한다.
모니터링과의 차이
| 항목 | 모니터링 | 옵저버빌리티 |
| 목적 | 문제가 있는지 탐지 | 문제가 왜 발생했는지 분석 |
| 방식 | 사전 정의된 임계값 기준 | 전반적인 흐름과 원인 분석 |
| 데이터 | 주로 Metric | Metric + Log + Trace |
모니터링은 문제가 있는지 탐지하고 옵저버빌리티는 왜 문제가 발생했는지 분석한다.
목표
옵저버빌리티의 목표는 아래와 같다.
- 장애의 근본적인 원인 분석
- 전체 시스템의 병목 구간 최적화
- MTTD, MTTR 단축
- 사용자 행동 분석과 비즈니스 인사이트 도출(흐름 추적이 가능하기 때문)
장점 및 단점
- 장점
- 서비스 간 호출 흐름 추적이 가능해 분산 시스템에서 유리하다.
- 예측, 유지보수, 자동 장애 탐지 기능을 통해 AI/ML과의 통합이 유리하다.
- Metric + Log + Trace를 통한 심층 분석이 가능하다.
- 단점
- 초기 구축이 복잡하다. (다양한 에이전트, 네트워크 연동 필요)
- 저장소, 분석 리소스 등 데이터 양 많다.
로그(Log), 메트릭(Metric), 트레이스(Trace) 란?
로그, 메트릭, 트레이스는 옵저버벌리티의 핵심 데이터이다.
| 항목 | 설명 | 예시 도구 |
| Metric | 수치 기반 시계열 데이터 | Prometheus, Thanos |
| Log | 텍스트 기반 이벤트 기록 | ELK, Loki |
| Trace | 서비스 간 호출 흐름 추적 | OpenTelemetry, Jaeger, Zipkin |
- Metric: CPU, Memory, Disk I/O, 트래픽 등 수치형 성능 지표
- Log: 예외 및 에러 메시지를 포함한 실행 흐름
- Trace: 요청별 고유 ID 기반으로 서비스 간 연쇄 호출 흐름 분석
모니터링 vs 옵저버빌리티 간단 요약
모니터링과 옵저버빌리티는 비슷해보이지만 문제 발생 원인 파악 유무 라는 큰 차이점이 있다.
| 구분 | 사용하는 데이터 | 대표 도구 |
| 모니터링 | Metric 중심 | Prometheus, Grafana |
| 옵저버빌리티 | Metric + Log + Trace | OpenTelemetry, Jaeger, ELK, Loki |
결론
모니터링은 빠르고 간단하며 문제 탐지에 특화되어 있고,
옵저버빌리티는 복잡한 시스템에서 문제의 근본 원인 분석에 특화되어 있다.
서로 상호보완적이며, 시스템 규모와 복잡도에 따라 적절히 병행하여 활용하는 것이 중요하다.
'DevOps > Monitoring, Observability' 카테고리의 다른 글
| #2 Loki와 Promtail을 이용해 Grafana에서 로그 데이터 시각화하기 (0) | 2025.10.13 |
|---|---|
| #1 Prometheus + Grafana 모니터링 구축하기 (1) | 2025.08.31 |
댓글