1️⃣ Kubernetes에서 로그와 모니터링이 중요한 이유?
Kubernetes 환경에서는 컨테이너가 동적으로 생성되고 삭제되므로,
전통적인 서버 로그 관리 방식이 적용되지 않습니다.
Kubernetes 운영 환경에서 안정성을 유지하려면 어떻게 해야 할까요?
✅ 로그 수집을 통해 애플리케이션 상태 모니터링
✅ 클러스터 리소스 사용량을 지속적으로 추적하여 장애 예방
✅ 문제가 발생했을 때 신속하게 원인을 분석할 수 있도록 로그 관리 강화
2️⃣ Kubernetes에서 로그와 모니터링이 필요한 주요 대상
📌 로그와 모니터링이 필요한 주요 리소스
대상설명주요 도구
컨테이너 로그 | 애플리케이션의 실행 상태와 에러 로그 | Loki, Fluentd, Promtail |
Pod 로그 | Kubernetes Pod에서 실행되는 모든 로그 | kubectl logs |
Kubernetes 이벤트 | 스케줄링, 네트워크 장애, 리소스 할당 문제 감지 | Prometheus, Alertmanager |
클러스터 메트릭 | CPU, 메모리, 네트워크 사용량 추적 | Prometheus, Grafana |
✅ 이 모든 데이터를 효과적으로 수집하고 분석해야 Kubernetes를 안정적으로 운영할 수 있습니다!
3️⃣ Kubernetes에서 로그 수집하기 (Loki + Promtail + Grafana)
📌 Kubernetes에서 로그를 효과적으로 관리하려면 중앙 집중식 로그 수집 시스템이 필요합니다.
✅ Loki + Promtail + Grafana를 활용하면 로그를 효율적으로 수집하고 시각화할 수 있습니다!
📌 로그 수집 시스템 구조
애플리케이션 로그 → Promtail(Log Agent) → Loki(Log 저장소) → Grafana(시각화)
✅ Step 1: Loki 및 Promtail 설치 (Helm 사용)
📌 Loki + Promtail을 Helm Chart로 배포
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm install loki grafana/loki-stack --set promtail.enabled=true
📌 배포 확인
kubectl get pods -n default
✅ Loki와 Promtail이 정상적으로 실행되는지 확인!
✅ Step 2: Grafana에서 Loki 로그 데이터 시각화
📌 Grafana에서 Loki를 데이터 소스로 추가
1. Grafana 로그인 (http://<Grafana-IP>:3000)
2. “Configuration” → “Data Sources” → “Add data source”
3. “Loki” 선택 후 http://loki.default.svc.cluster.local:3100 입력
4. “Save & Test” 클릭
📌 로그 조회
1. “Explore” 메뉴로 이동
2. “Loki” 데이터 소스 선택
3. {job="kubernetes-pods"} 입력 후 “Run Query”
✅ 이제 모든 Pod의 로그를 중앙에서 실시간으로 조회 가능! 🚀
4️⃣ Kubernetes 모니터링 (Prometheus + Grafana)
📌 Kubernetes 클러스터와 애플리케이션 상태를 실시간으로 모니터링하려면 Prometheus를 활용해야 합니다.
✅ Prometheus + Grafana를 활용하면 클러스터 메트릭을 시각적으로 모니터링 가능!
📌 모니터링 시스템 구조
Kubernetes 클러스터 → Prometheus(데이터 수집) → Grafana(시각화) → Alertmanager(알림)
✅ Step 1: Prometheus 및 Grafana 설치 (Helm 사용)
📌 Prometheus + Grafana 배포
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack
📌 배포 확인
kubectl get pods -n default
✅ Prometheus & Grafana가 정상적으로 실행되는지 확인!
✅ Step 2: Grafana에서 Prometheus 데이터 시각화
📌 Grafana에서 Prometheus를 데이터 소스로 추가
1. Grafana 로그인 (http://<Grafana-IP>:3000)
2. “Configuration” → “Data Sources” → “Add data source”
3. “Prometheus” 선택 후 http://prometheus-server.default.svc.cluster.local 입력
4. “Save & Test” 클릭
📌 모니터링 대시보드 추가
1. “Create” → “Import” 선택
2. 다음 ID를 입력하여 대시보드 추가
• Kubernetes 클러스터 상태 → 3119
• Kubernetes 노드 리소스 사용량 → 1860
• Pod & 컨테이너 리소스 사용량 → 7637
3. “Load” 클릭 후 데이터 소스 선택
4. “Import” 클릭
✅ 이제 Kubernetes 클러스터 상태를 한눈에 모니터링 가능!
5️⃣ Kubernetes 이벤트 & 알림 설정 (Alertmanager 사용)
📌 Alertmanager를 활용하면 특정 이벤트 발생 시 이메일, Slack 등으로 알림을 받을 수 있습니다.
📌 Alertmanager 기본 설정 (alert-rules.yaml)
groups:
- name: example
rules:
- alert: HighPodCPU
expr: avg by (pod) (rate(container_cpu_usage_seconds_total[5m])) > 0.8
for: 1m
labels:
severity: warning
annotations:
summary: "High CPU usage detected"
📌 적용 명령어
kubectl apply -f alert-rules.yaml
✅ CPU 사용량이 80%를 넘으면 Alertmanager가 경고 메시지를 보냄!
6️⃣ Kubernetes 로그 & 모니터링 운영 전략
📌 효율적인 운영을 위해 로그 & 모니터링을 체계적으로 구성해야 합니다.
대상도구설명
로그 수집 | Promtail, Fluentd | Pod & 컨테이너 로그 수집 |
로그 저장 | Loki | 중앙 집중식 로그 저장 |
로그 분석 | Grafana | 실시간 로그 분석 |
메트릭 수집 | Prometheus | 클러스터 리소스 사용량 모니터링 |
알림 설정 | Alertmanager | 이벤트 발생 시 이메일/Slack 알림 |
✅ 올바른 로그 & 모니터링 설정을 하면 Kubernetes 운영이 훨씬 쉬워집니다! 🚀
📌 결론: Kubernetes 로그 & 모니터링을 자동화하면 운영이 쉬워진다!
✔ Loki + Promtail을 사용하면 로그를 중앙에서 쉽게 관리 가능
✔ Prometheus + Grafana를 사용하면 실시간 클러스터 모니터링 가능
✔ Alertmanager를 사용하면 문제 발생 시 즉시 알림 받을 수 있음
🔥 이제 Kubernetes 운영 환경을 더욱 안정적으로 유지할 수 있습니다!
'Kubernetes > Kubernetes Basics' 카테고리의 다른 글
📌 Kubernetes CI/CD 최적화: GitOps 운영 방식 이해하기 (0) | 2025.03.03 |
---|---|
📌 Kubernetes 배포 전략: Canary & Blue-Green 배포 이해하기 (0) | 2025.03.03 |
📌 Kubernetes 비용 절감 & 리소스 최적화 전략 (0) | 2025.03.03 |
📌 Kubernetes 보안 강화하기: RBAC, 네트워크 정책, 이미지 스캐닝 (0) | 2025.03.03 |
📌 Kubernetes 멀티 테넌시 환경 구축하기 (0) | 2025.03.03 |