07. 통합 모니터링 시스템 구축 (Final Project)

학습 목표: 지금까지 배운 모든 기술(Metric, Log, Variable, Alert)을 집대성하여, 서비스 장애를 한눈에 파악하고 원인을 추적할 수 있는 Full Stack Observability 대시보드를 완성합니다. 선수 지식: 04_실전_대시보드_제작_기초, 05_동적_대시보드와_변수_활용, 06_Loki_LogQL_심화_및_경보


🏛️ 1. 최종 프로젝트 설계

우리가 만들 최종 대시보드는 “3단 논법” 구조를 가집니다.

  1. Top (개요): “지금 문제가 있는가?” (RED Method - Rate, Errors, Duration)
    • 주요 서비스의 요청량, 에러율, 응답속도를 신호등(Stat/Gauge)으로 표시.
  2. Middle (상세 메트릭): “어디가 아픈가?” (Resource Usage)
    • CPU, Memory, Network 등 리소스 병목 지점을 시계열 그래프로 표시.
  3. Bottom (심층 분석): “왜 아픈가?” (Logs & Traces)
    • 문제가 발생한 시간대의 에러 로그 스트림 표시.

🏗️ 2. Row(행) 기능을 이용한 구조화

대시보드가 복잡해지면 Row를 사용하여 구획을 나눠야 합니다.

  1. 대시보드 상단 AddRow 클릭.
  2. 생성된 Row의 톱니바퀴(⚙️) 클릭 → Title: 🚦 Service Overview (RED Signals)
  3. 같은 방식으로 2개 더 생성:
    • 📈 Resource Utilization (CPU/Mem)
    • 🕵️ Root Cause Analysis (Logs)

이제 각 섹션에 맞는 패널을 만들어 드래그해서 집어넣습니다.


🚦 3. Top Section: 서비스 상태 (Service Overview)

목표: 사장이 봐도 “초록색이니 괜찮네” 하고 알 수 있게 만듭니다.

  1. 패널: Stat Panel
  2. 쿼리 (Prometheus):
    # 전체 HTTP 요청 성공률
    sum(rate(http_requests_total{status!~"5.."}[1m])) 
    / 
    sum(rate(http_requests_total[1m])) * 100
  3. Thresholds:
    • 99%: Green (정상)
    • 95%: Yellow (주의)
    • 0%: Red (심각)

📈 4. Middle Section: 리소스 상관관계 분석

목표: CPU가 튈 때 메모리도 튀는지, 네트워크도 튀는지 상관관계를 봅니다.

  1. CPU 패널 (Time Series)
  2. Memory 패널 (Time Series)
  3. Network I/O 패널 (Time Series, rate(container_network_...[1m]))

Tip: 모든 패널에 $node 또는 $pod 변수를 적용하여, 특정 범인(Node/Pod)을 필터링할 수 있게 합니다.


🕵️ 5. Bottom Section: 로그 연계 (Contextual Logging)

목표: 위 그래프에서 이상한 지점을 드래그(Zoom-in)했을 때, 바로 그 시간대의 로그를 봅니다.

  1. Logs 패널 추가.
  2. 쿼리 (Loki):
    {namespace="$namespace", pod=~"$pod"} |= "ERROR"
    • 기본적으로 ERROR만 필터링해서 보여주다가, 필요하면 쿼리를 수정해서 전체를 봅니다.

📝 6. Annotation: 배포 시점 표시하기

“갑자기 에러가 늘었는데, 아까 배포해서 그런가?” 그래프 위에 “배포(Deployment)” 시점을 세로선으로 표시해주면 인과관계를 파악하기 쉽습니다.

  1. Dashboard settingsAnnotations.
  2. New Annotation 클릭.
  3. Data source: Loki.
  4. Query:
    {namespace="default"} |= "Deployment completed"
    (배포 스크립트가 이런 로그를 남긴다고 가정)
  5. 이제 그래프 위에 배포가 일어난 시점에 마커가 찍힙니다!

📤 7. 대시보드 내보내기 (Export) 및 마무리

고생해서 만든 대시보드를 JSON 파일로 백업하거나, 다른 팀에게 공유합시다.

  1. 상단 Share 아이콘 클릭.
  2. Export 탭 → Export for sharing externally 체크.
  3. Save to file 클릭.

🎓 시리즈를 마치며

축하합니다! 🎉 이제 여러분은 단순한 ‘사용자’를 넘어, Kubernetes 클러스터와 애플리케이션의 상태를 투명하게 들여다보고 감시할 수 있는 모니터링 시스템 엔지니어가 되었습니다.

Grafana + Loki + Prometheus 조합은 클라우드 네이티브 환경의 표준입니다. 이 가이드에서 만든 대시보드를 바탕으로, 여러분의 회사와 프로젝트에 맞는 커스텀 모니터링 환경을 계속 발전시켜 나가시길 바랍니다.

수고하셨습니다!