단일 서버(Monolithic) 환경에서는 서버에 직접 접속해 로그 파일을 열어보면 그만이었지만, 언제든 죽고 재생성되는 K8s 환경에서는 불가능한 방식입니다. 이번 글에서는 클라우드 네이티브 환경의 필수 요소인 옵저버빌리티(Observability)와, 이를 고도화하는 AIOps 트렌드에 대해 다룹니다.
1. 모니터링(Monitoring)을 넘어 옵저버빌리티(Observability)로
단순한 '모니터링'과 '옵저버빌리티(관측성)'는 미묘하지만 큰 차이가 있습니다.
- 모니터링: 시스템이 "언제(When)" 망가졌는지, 즉 CPU 사용률이 90%를 넘었는지 등 미리 정의된 임계치를 감시합니다.
- 옵저버빌리티: 시스템이 "왜(Why)" 망가졌는지, 즉 분산된 마이크로서비스 환경에서 외부 요청이 내부의 어떤 서비스들을 거쳐갔고 어느 지점에서 지연이 발생했는지 내부 상태를 추론할 수 있게 해줍니다.
옵저버빌리티를 달성하기 위해서는 흔히 '3대 기둥(Three Pillars)'이라 불리는 데이터를 중앙 집중화해야 합니다.
- 메트릭(Metrics): CPU, 메모리, HTTP 요청 횟수 등 정량적인 수치 데이터
- 로그(Logs): 애플리케이션이 뿜어내는 텍스트 형태의 이벤트 기록
- 트레이스(Traces): 하나의 요청(Request)이 여러 마이크로서비스를 거쳐가는 전체 경로와 구간별 소요 시간 (분산 트레이싱)

2. K8s 생태계를 장악한 관제탑: LGTM 스택
이 3가지 데이터를 효율적으로 수집하고 저장하기 위해, 최근 클라우드 네이티브 생태계에서는 사실상의 표준(De facto standard)으로 LGTM 스택이 강력하게 자리 잡았습니다.
| 구성 요소 | 역할 | 설명 |
| Loki | Logs | K8s 환경에 최적화된 로그 집계 시스템. ELK(Elasticsearch)와 달리 메타데이터(Label)만 인덱싱하여 매우 가볍고 비용 효율적 |
| Grafana | Visualization | 수집된 모든 데이터를 하나의 화면에서 시각화해 주는 강력한 대시보드 |
| Tempo | Traces | 대규모 분산 트레이싱 백엔드. 서비스 간 호출 지연을 폭포수(Waterfall) 차트로 시각화 |
| Mimir | Metrics | Prometheus의 한계(장기 보관 및 스케일링)를 극복한 대용량 시계열 데이터베이스 |
3. 파편화된 데이터 수집의 통일: OpenTelemetry (OTel)
LGTM 백엔드가 훌륭해도, Spring Boot 앱에서 메트릭, 로그, 트레이스를 각각 다른 에이전트(Agent)를 통해 수집한다면 운영 오버헤드가 극심해집니다. 이를 해결하기 위해 등장한 CNCF의 핵심 프로젝트가 바로 OpenTelemetry(OTel)입니다.
[Spring Boot (Pod)] ──(OTel SDK)──▶ [OTel Collector]
│
├──▶ 메트릭 ──▶ [Mimir]
├──▶ 로 그 ──▶ [Loki]
└──▶ 트레이스 ──▶ [Tempo]
OTel은 특정 벤더에 종속되지 않는 표준화된 데이터 수집 파이프라인을 제공합니다. 개발자는 애플리케이션 코드에 OTel 라이브러리만 연동해 두면, 인프라 담당자는 OTel Collector를 통해 데이터를 가공하고 원하는 백엔드(LGTM, Datadog 등)로 언제든 유연하게 보낼 수 있습니다.

4. 옵저버빌리티의 종착지: AIOps와 자동화된 대응
데이터를 잘 모았다고 끝이 아닙니다. K8s 클러스터 규모가 커지면 수집되는 데이터량은 인간이 눈으로 분석할 수 없는 수준(Alert Fatigue, 알람 피로)에 이릅니다.
여기서 최근 주목받는 AIOps (Artificial Intelligence for IT Operations) 개념이 등장합니다.
- 이상 탐지 (Anomaly Detection): "CPU 80% 이상일 때 알람" 같은 고정된 규칙이 아니라, 머신러닝 모델이 평소 서비스의 트래픽 패턴을 학습하여 "수요일 오후 2시 치고는 결제 실패율이 비정상적으로 높다"는 것을 스스로 감지합니다.
- 근본 원인 분석 (Root Cause Analysis, RCA): 장애가 발생하면 AI가 OTel을 통해 수집된 트레이스와 로그를 결합 분석하여 "DB 쿼리 락(Lock)이 원인이다"라고 짚어줍니다.
- 자동화된 롤아웃 조치 (Zero-Touch Rollout Fixes): GitOps 플랫폼과 연동하여, 새 버전 배포 후 에러율이 상승하는 것이 감지되면 AI가 개입해 즉시 이전 안전한 버전으로 자동 롤백을 수행합니다.