관찰 가능성 개요
Lumie 인프라는 메트릭, 로그, 트레이스를 통한 완전한 관찰 가능성을 제공하는 현대적인 모니터링 스택을 운영합니다.
아키텍처
데이터 수집 계층
- OpenTelemetry Collector: 모든 텔레메트리 데이터의 중앙 수집점
- Node Exporter: 노드 레벨 시스템 메트릭
- Kube State Metrics: Kubernetes 리소스 상태 메트릭
- Blackbox Exporter: 외부 서비스 상태 확인
저장 계층
- Prometheus: 메트릭 시계열 데이터베이스
- Loki: 로그 집계 및 저장
- Tempo: 분산 트레이싱 데이터
- Thanos: 통합 메트릭 쿼리 레이어 (현재 로컬 저장소 전용, MinIO 업로드 비활성화)
시각화 및 알림 계층
- Grafana: 대시보드 및 시각화
- Alertmanager: 알림 라우팅 및 관리
- Karma: Alertmanager UI
주요 구성 요소
메트릭 스택
로그 스택
트레이싱 스택
네임스페이스 구조
| 네임스페이스 | 구성 요소 | 목적 |
|---|---|---|
prometheus | Prometheus, Thanos Sidecar | 메트릭 수집 및 저장 |
grafana | Grafana | 시각화 대시보드 |
loki | Loki | 로그 집계 |
tempo | Tempo | 분산 트레이싱 |
alertmanager | Alertmanager, Karma | 알림 관리 |
thanos | Thanos Query | 메트릭 쿼리 |
opentelemetry | OTel Collector | 텔레메트리 수집 |
node-exporter | Node Exporter | 노드 메트릭 |
kube-state-metrics | Kube State Metrics | K8s 상태 메트릭 |
blackbox-exporter | Blackbox Exporter | 외부 모니터링 |
goldilocks | Goldilocks | 리소스 권장사항 |
vpa | VPA | 수직 파드 오토스케일링 |
접근 방법
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.comlumie-edu.comlumie-infra.comdisciples-church.com
알림 정책
심각도 레벨
- Critical: 즉시 대응 필요 (1시간 반복)
- Warning: 모니터링 필요 (4시간 반복)
알림 채널
- 이메일:
bluemayne0213@icloud.com - SMTP: iCloud 메일 서버 사용
문제 해결
일반적인 문제
- 메트릭이 표시되지 않음: ServiceMonitor 라벨 확인
- 높은 메모리 사용량: 메트릭 카디널리티 확인
- 로그 누락: 파일로그 수집기 상태 확인
- 트레이스 누락: 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