Kubernetes 환경에서 애플리케이션의 성능과 상태를 모니터링하는 것은 매우 중요합니다. 이를 위해 많은 기업들이 Prometheus와 Grafana를 통합하여 사용하는데, 이 두 도구는 각각 강력한 모니터링 및 시각화 기능을 제공합니다. 이번 글에서는 Prometheus와 Grafana를 Kubernetes와 통합하여 모니터링을 설정하는 방법을 알아보겠습니다.
Prometheus 설치
Prometheus는 오픈 소스 모니터링 도구로, Kubernetes 클러스터의 메트릭을 수집하고 저장합니다. Helm을 사용하여 Prometheus를 설치하는 것이 매우 간편합니다. 먼저 Helm을 설치하고, 다음 명령어를 실행하여 Prometheus를 설치합니다.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/prometheus
설치가 완료되면, Prometheus가 Kubernetes 클러스터에서 실행되고 있는지 확인하기 위해 다음 명령어를 입력합니다.
kubectl get pods -n default -l app=prometheus
이 명령어를 통해 Prometheus 관련 파드들이 정상적으로 실행되고 있는지 확인할 수 있습니다.
Grafana 설치
Grafana는 메트릭 데이터를 시각화하는 데 매우 유용한 도구입니다. Helm을 이용해 Grafana를 설치할 수 있습니다.
helm install grafana grafana/grafana
Grafana가 설치되면, 다음 명령어로 Grafana 서비스의 노출된 IP 주소를 확인할 수 있습니다.
kubectl get svc -n default -l app=grafana
이 IP 주소를 웹 브라우저에 입력하면 Grafana 대시보드에 접근할 수 있습니다. 기본 로그인 정보는 사용자 이름이 admin, 비밀번호가 prom-operator입니다.
Prometheus와 Grafana 통합
이제 Grafana 대시보드에서 Prometheus를 데이터 소스로 설정해야 합니다. Grafana에 로그인 후 다음 단계를 따릅니다.
- 왼쪽 사이드바에서 "Configuration" 아이콘을 클릭한 후 "Data Sources"를 선택합니다.
- "Add data source" 버튼을 클릭하고, "Prometheus"를 선택합니다.
- URL 필드에 Prometheus의 서비스 주소를 입력합니다. 기본적으로
http://prometheus-server.default.svc.cluster.local:80입니다. - "Save & Test" 버튼을 클릭하여 설정을 확인합니다.
- "Dashboards"에서 "New Dashboard"를 클릭합니다.
- "Add new panel" 버튼을 클릭합니다.
- "Query" 탭에서 사용할 Prometheus 메트릭을 선택합니다. 예를 들어, CPU 사용량을 모니터링하려면 다음 쿼리를 입력할 수 있습니다.
- 다양한 시각화 유형을 선택하고, "Apply" 버튼을 클릭하여 대시보드에 추가합니다.
- 대시보드 패널을 선택하고, "Alert" 탭을 클릭합니다.
- "Create Alert" 버튼을 클릭하여 알림 규칙을 설정합니다.
- 알림 조건을 정의하고, 알림을 받을 채널을 설정합니다.
여기까지 완료되면 Grafana에서 Prometheus 메트릭을 사용할 준비가 완료됩니다.
대시보드 설정
Grafana에서 데이터를 시각화하려면 대시보드를 설정해야 합니다. 새로운 대시보드를 만들고, 패널을 추가하여 Prometheus에서 수집된 메트릭을 선택합니다.
sum(rate(container_cpu_usage_seconds_total[5m])) by (pod)
이 과정을 반복하여 원하는 메트릭에 대해 여러 패널을 추가할 수 있습니다.
알림 설정
Grafana와 Prometheus의 통합을 통해 알림을 설정할 수 있습니다. 이를 통해 특정 조건이 만족될 때 이메일이나 슬랙으로 알림을 받을 수 있습니다. Grafana 대시보드에서 알림을 설정하려면 다음 단계를 따릅니다.
알림 설정은 시스템의 상태를 지속적으로 모니터링하고 즉각적으로 대응할 수 있도록 도와줍니다.
마무리
Kubernetes 환경에서 Prometheus와 Grafana를 통합하여 애플리케이션의 성능과 상태를 효과적으로 모니터링할 수 있습니다. Prometheus는 메트릭 수집과 저장을 담당하며, Grafana는 이를 시각화하여 사용자가 쉽게 이해할 수 있도록 도와줍니다. 이러한 도구들을 적절히 활용하면 클라우드 네이티브 환경에서의 운영 효율성을 크게 향상시킬 수 있습니다. 모니터링을 통해 얻은 인사이트는 시스템 안정성과 성능 향상에 큰 기여를 할 것입니다.