Prometheus와 Grafana로 Managed Cloud 모니터링하기
Prometheus와 Grafana로 Managed Cloud 모니터링하기 (ops-monitoring-managed-cloud-prometheus)
Qdrant Managed Cloud에서 돌아가는 데이터베이스의 상태를 직접 모니터링하고 싶을 때가 있어요. 이 튜토리얼에서는 Prometheus와 Grafana를 설정해서 Qdrant Managed Cloud의 데이터베이스를 모니터링하는 과정을 처음부터 끝까지 안내해 드릴게요.
출처: Qdrant 공식문서
사전 준비 (Prerequisites)
이 튜토리얼은 모니터링 스택을 배포할 Kubernetes 클러스터가 이미 실행 중이고, Qdrant Managed Cloud에 데이터베이스가 만들어져 있다고 가정해요. 또한 클러스터와 상호작용할 수 있도록 kubectl과 helm이 설정돼 있어야 해요.
1단계: Prometheus와 Grafana 설치하기
아직 Prometheus와 Grafana를 설치하지 않았다면, kube-prometheus-stack Helm 차트를 이용해 Kubernetes 클러스터에 배포할 수 있어요.
스택을 설치하는 최소 예시는 다음과 같아요.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/kube-prometheus-stack --namespace monitoring --create-namespace
이 명령은 새 monitoring 네임스페이스에 Prometheus, Grafana, 그리고 필요한 모든 구성 요소를 설치해요.
2단계: Prometheus가 Qdrant 메트릭을 스크레이프하도록 구성하기
Qdrant를 모니터링하려면 Prometheus가 Qdrant 데이터베이스에서 메트릭을 스크레이프하도록 구성해야 해요. Kubernetes 클러스터에 ScrapeConfig 리소스를 만들어서 할 수 있어요. Qdrant 데이터베이스에 인증할 때 쓰는 API 키는 Kubernetes Secret에 저장해야 해요. 모니터링 목적에는 읽기 전용 API 키면 충분해요.
apiVersion: v1
kind: Secret
metadata:
name: qdrant-cluster-api-key
namespace: monitoring
labels:
app: qdrant-cluster
stringData:
apiKey: "a-read-only-api-key"
---
apiVersion: monitoring.coreos.com/v1alpha1
kind: ScrapeConfig
metadata:
name: qdrant-cluster
namespace: monitoring
labels:
app: qdrant-cluster
release: prometheus
spec:
metricsPath: /sys_metrics
scrapeInterval: 60s
scheme: HTTPS
authorization:
type: Bearer
credentials:
name: qdrant-cluster-api-key
key: apiKey
staticConfigs:
- labels:
job: prometheus
targets:
- your-cluster.europe-west3-0.gcp.cloud.qdrant.io:443
3단계: Grafana 접근하기
Prometheus가 Qdrant에서 메트릭을 스크레이프하도록 설정됐다면, Grafana에 접근해 메트릭을 시각화할 수 있어요.
다음 명령으로 Grafana의 admin 사용자 비밀번호를 얻어요.
kubectl --namespace monitoring get secrets prometheus-grafana -o jsonpath="{.data.admin-password}" | base64 -d ; echo
포트 포워딩으로 Grafana 대시보드에 접근해요.
export POD_NAME=$(kubectl --namespace monitoring get pod -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=prometheus" -oname)
kubectl --namespace monitoring port-forward $POD_NAME 3000
이제 웹 브라우저를 열고 http://localhost:3000으로 이동해요. 사용자 이름은 admin, 비밀번호는 아까 얻은 값을 입력하고 로그인하면 돼요.
4단계: Qdrant 대시보드 가져오기
Qdrant Cloud는 Qdrant GitHub 저장소에 예제 Grafana 대시보드를 제공해요. 여기에는 Qdrant 클러스터 모니터링을 시작하는 데 도움이 되는 내장 뷰와 그래프가 포함돼 있어요.
대시보드를 가져오려면:
- Grafana에서 "Dashboards"로 이동하고 "New" -> "Import"를 클릭해요.
- Qdrant GitHub 저장소에서 대시보드 JSON을 복사해서 붙여 넣어요.
- "Load"를 클릭한 다음 "Import"를 클릭해요.