Kubernetes/Kubernetes Basics

📌 Kubernetes 모니터링과 로깅: 운영 환경을 안정적으로 유지하기

ygtoken 2025. 3. 3. 07:23
728x90

 

1️⃣ Kubernetes에서 모니터링과 로깅이 중요한 이유?

 

운영 중인 Kubernetes 애플리케이션이 정상적으로 동작하는지 확인하려면 모니터링과 로깅이 필수입니다.

하지만 Kubernetes 환경에서는 Pod가 동적으로 생성되고 삭제되므로 기존 서버 기반의 모니터링 방식은 적용하기 어렵습니다.

 

모니터링: 클러스터, 노드, Pod, 애플리케이션의 상태를 실시간으로 확인

로깅: 애플리케이션과 시스템에서 발생하는 이벤트를 기록하여 문제 해결

 

Kubernetes에서는 Prometheus + Grafana를 사용하여 모니터링하고,

Loki + Promtail을 활용하여 로깅을 수집할 수 있습니다.

 

이제 Kubernetes에서 모니터링과 로깅을 설정하는 방법을 살펴보겠습니다!

 


 

2️⃣ Kubernetes 모니터링 구성 (Prometheus + Grafana)

 

📌 Prometheus와 Grafana는 Kubernetes 모니터링의 대표적인 솔루션입니다.

 

Prometheus: Kubernetes에서 메트릭(metric) 데이터를 수집

Grafana: Prometheus에서 수집한 데이터를 시각화

 

📌 Prometheus + Grafana 아키텍처

Kubernetes Cluster
   ⬇
Prometheus (메트릭 수집)
   ⬇
Grafana (대시보드 시각화)

 


 

3️⃣ Prometheus 설치하기

 

Helm을 사용하여 Prometheus를 간단하게 설치할 수 있습니다.

 

📌 Prometheus Helm Chart 설치

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가 정상적으로 실행되었는지 확인!

 


 

4️⃣ Grafana 설치 및 대시보드 설정

 

📌 Grafana는 Prometheus 데이터를 시각화하는 도구입니다.

 

📌 Grafana 기본 설정 조회

kubectl get secret prometheus-grafana -o jsonpath="{.data.admin-password}" | base64 --decode

 

📌 Grafana 접속

http://<Node IP>:3000

📌 로그인 정보

사용자명: admin

비밀번호: 위 base64 --decode로 조회한 값

 

📌 Prometheus 데이터 소스 추가

1. Grafana에 로그인

2. “Configuration” → “Data Sources” → “Add data source”

3. Prometheus 선택 후, http://prometheus-server.default.svc.cluster.local 입력

4. “Save & Test” 클릭

 

✅ 이제 Grafana에서 Kubernetes 메트릭을 시각화할 수 있습니다!

 


 

5️⃣ Kubernetes 로깅 구성 (Loki + Promtail)

 

📌 Loki는 Kubernetes의 대표적인 로깅 솔루션이며, Promtail을 사용하여 로그를 수집합니다.

 

Loki: Kubernetes 로그 데이터를 저장

Promtail: 각 Pod에서 로그를 수집하여 Loki로 전달

Grafana: Loki의 로그 데이터를 조회하고 시각화

 

📌 Loki + Promtail 아키텍처

Kubernetes Cluster
   ⬇
Promtail (로그 수집)
   ⬇
Loki (로그 저장)
   ⬇
Grafana (로그 시각화)

 


 

6️⃣ Loki 및 Promtail 설치하기

 

📌 Helm을 사용하여 Loki 및 Promtail을 간단하게 설치할 수 있습니다.

 

📌 Loki 및 Promtail 설치

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm install loki grafana/loki-stack

📌 설치 확인

kubectl get pods -n default

✅ Loki와 Promtail이 정상적으로 실행되는지 확인!

 


 

7️⃣ Grafana에서 로그 조회하기

 

📌 Grafana에 Loki를 데이터 소스로 추가해야 합니다.

 

📌 Loki 데이터 소스 추가

1. Grafana에 로그인

2. “Configuration” → “Data Sources” → “Add data source”

3. Loki 선택 후, http://loki.default.svc.cluster.local:3100 입력

4. “Save & Test” 클릭

 

📌 로그 조회 예제

1. Grafana에서 “Explore” 선택

2. 데이터 소스를 “Loki”로 변경

3. {job="kubernetes-pods"} 입력 후 “Run Query”

 

✅ Kubernetes Pod의 로그를 실시간으로 조회 가능!

 


 

8️⃣ Kubernetes 모니터링 및 로깅 대시보드 활용

 

Grafana에는 Prometheus 및 Loki 데이터를 활용할 수 있는 대시보드 템플릿이 많습니다.

 

📌 Kubernetes 모니터링 대시보드 ID

Kubernetes 클러스터 모니터링: 3119

Kubernetes 노드 상태: 1860

Pod & 컨테이너 로그 조회: 7637

 

📌 대시보드 가져오기

1. Grafana에서 “Create” → “Import” 선택

2. 위 ID 입력 후 “Load” 클릭

3. 데이터 소스를 Prometheus 또는 Loki로 설정 후 “Import”

 

✅ 이제 Kubernetes의 리소스 상태와 로그를 한눈에 확인할 수 있습니다!

 


 

📌 결론: Kubernetes 모니터링과 로깅을 활용하면 운영이 쉬워진다!

기능사용 도구

메트릭 수집 Prometheus
대시보드 시각화 Grafana
로그 저장 Loki
로그 수집 Promtail

🔥 Prometheus + Grafana를 사용하면 Kubernetes 클러스터와 애플리케이션 상태를 실시간으로 모니터링 가능!

🔥 Loki + Promtail을 사용하면 애플리케이션의 로그를 수집하고 분석할 수 있음!

 

 

728x90