본문으로 건너뛰기

관찰 가능성 개요

Lumie 인프라는 메트릭, 로그, 트레이스를 통한 완전한 관찰 가능성을 제공하는 현대적인 모니터링 스택을 운영합니다.

아키텍처

데이터 수집 계층

  • OpenTelemetry Collector: 모든 텔레메트리 데이터의 중앙 수집점
  • Node Exporter: 노드 레벨 시스템 메트릭
  • Kube State Metrics: Kubernetes 리소스 상태 메트릭
  • Blackbox Exporter: 외부 서비스 상태 확인

저장 계층

  • Prometheus: 메트릭 시계열 데이터베이스
  • Loki: 로그 집계 및 저장
  • Tempo: 분산 트레이싱 데이터
  • Thanos: 통합 메트릭 쿼리 레이어 (현재 로컬 저장소 전용, MinIO 업로드 비활성화)

시각화 및 알림 계층

  • Grafana: 대시보드 및 시각화
  • Alertmanager: 알림 라우팅 및 관리
  • Karma: Alertmanager UI

주요 구성 요소

메트릭 스택

로그 스택

트레이싱 스택

네임스페이스 구조

네임스페이스구성 요소목적
prometheusPrometheus, Thanos Sidecar메트릭 수집 및 저장
grafanaGrafana시각화 대시보드
lokiLoki로그 집계
tempoTempo분산 트레이싱
alertmanagerAlertmanager, Karma알림 관리
thanosThanos Query메트릭 쿼리
opentelemetryOTel Collector텔레메트리 수집
node-exporterNode Exporter노드 메트릭
kube-state-metricsKube State MetricsK8s 상태 메트릭
blackbox-exporterBlackbox Exporter외부 모니터링
goldilocksGoldilocks리소스 권장사항
vpaVPA수직 파드 오토스케일링

접근 방법

Teleport를 통한 접근

모든 관찰 가능성 도구는 보안을 위해 Teleport를 통해서만 접근 가능합니다:

# Grafana 접근
tsh app login grafana
tsh app config grafana

# Prometheus 접근
tsh app login prometheus
tsh app config prometheus

# Alertmanager 접근
tsh app login alertmanager
tsh app config alertmanager

포트 포워딩 (개발용)

# Grafana
kubectl port-forward -n grafana svc/grafana 3000:80

# Prometheus
kubectl port-forward -n prometheus svc/prometheus-kube-prometheus-prometheus 9090:9090

# Alertmanager
kubectl port-forward -n alertmanager svc/alertmanager 9093:9093

데이터 보존 정책

메트릭

  • Prometheus: 3일 (로컬 저장)
  • Thanos: 쿼리 전용 (업로드 비활성화)

로그

  • Loki: 72시간 (emptyDir 사용)

트레이스

  • Tempo: 72시간 (emptyDir 사용)

리소스 최적화

VPA (Vertical Pod Autoscaler)

  • 모든 관찰 가능성 네임스페이스에서 활성화
  • Goldilocks를 통한 리소스 권장사항 제공

이미지 최적화

  • 모든 컨테이너 이미지는 내부 Zot 레지스트리 사용
  • 이미지 풀 시크릿 자동 관리

메모리 최적화

  • CPU 제한 없음 (안정성 우선)
  • 메모리 제한만 설정
  • 배치 처리를 통한 효율성 향상

보안 고려사항

네트워크 보안

  • 외부 인그레스 비활성화
  • Teleport를 통한 안전한 접근
  • 클러스터 내부 통신만 허용

인증 및 권한

  • Vault를 통한 시크릿 관리
  • RBAC 기반 권한 제어
  • 서비스 계정 분리

데이터 보호

  • TLS 암호화 (내부 통신)
  • 민감한 메트릭 필터링
  • 로그 스크러빙

모니터링 대상

인프라 메트릭

  • 노드 리소스 사용률
  • 네트워크 트래픽
  • 스토리지 사용량
  • Kubernetes 리소스 상태

애플리케이션 메트릭

  • HTTP 요청 메트릭
  • 데이터베이스 연결
  • 큐 깊이
  • 비즈니스 메트릭

외부 서비스 모니터링

  • joossameng.com
  • lumie-edu.com
  • lumie-infra.com
  • disciples-church.com

알림 정책

심각도 레벨

  • Critical: 즉시 대응 필요 (1시간 반복)
  • Warning: 모니터링 필요 (4시간 반복)

알림 채널

  • 이메일: bluemayne0213@icloud.com
  • SMTP: iCloud 메일 서버 사용

문제 해결

일반적인 문제

  1. 메트릭이 표시되지 않음: ServiceMonitor 라벨 확인
  2. 높은 메모리 사용량: 메트릭 카디널리티 확인
  3. 로그 누락: 파일로그 수집기 상태 확인
  4. 트레이스 누락: OTLP 엔드포인트 연결 확인

디버깅 명령어

# OpenTelemetry Collector 상태
kubectl get otelcol -n opentelemetry

# Prometheus 타겟 상태
kubectl exec -n prometheus prometheus-kube-prometheus-prometheus-0 -- \
promtool query instant 'up'

# Loki 상태
kubectl logs -n loki deployment/loki

다음 단계