Prometheus로 하이브리드/프라이빗 클라우드 모니터링

Prometheus로 하이브리드/프라이빗 클라우드 모니터링 (ops-monitoring-hybrid-cloud-prometheus)

자체 호스팅(Self-hosted) 방식으로 Qdrant 하이브리드/프라이빗 클라우드를 운영하고 있다면, Prometheus와 Grafana로 메트릭을 수집하고 시각화할 수 있어요. 여기서는 Kubernetes 클러스터 위에 Prometheus + Grafana를 올리고, Qdrant 메트릭을 스크레이프(scrape)해서 대시보드로 보는 전체 과정을 단계별로 살펴볼게요.

출처: Qdrant 공식문서

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

이 명령은 Prometheus, Grafana, 그리고 필요한 모든 구성 요소를 새 monitoring 네임스페이스에 설치해 줍니다.

2단계: Qdrant 메트릭을 스크레이프하도록 Prometheus 구성

Qdrant를 모니터링하려면 Prometheus가 Qdrant 데이터베이스의 메트릭을 스크레이프하도록 설정해야 해요. 호스트 Kubernetes 클러스터에 ServiceMonitor 리소스를 만들어서 이 작업을 수행할 수 있습니다.

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: qdrant-cluster-exporter
  namespace: qdrant
  labels:
    release: prometheus
spec:
  endpoints:
    - honorLabels: true
      interval: 60s
      port: metrics
      scheme: http
      scrapeTimeout: 55s
      jobLabel: app.kubernetes.io/name
  namespaceSelector:
    matchNames:
      - qdrant
  selector:
    matchLabels:
      app.kubernetes.io/name

이 구성은 qdrant 네임스페이스 안에서 지정한 라벨에 해당하는 파드에서 metrics 포트를 60초 간격으로 스크레이프하도록 만들어요. honorLabels: truescrapeTimeout: 55s 같은 값은 메트릭 라벨과 타임아웃을 관리하는 데 중요한 역할을 하니, 필요에 맞게 조정하면 됩니다.

3단계: Grafana 접속

Prometheus가 Qdrant 메트릭을 스크레이프하도록 설정됐다면, 이제 Grafana에 접속해 메트릭을 시각화할 수 있어요.

Grafana의 admin 사용자 비밀번호를 얻으려면 다음 명령을 실행해 주세요.

kubectl --namespace monitoring get secrets prometheus-grafana -o jsonpath="{.data.admin-password}" | base64 -d; echo

4단계: Qdrant 대시보드 가져오기

Qdrant Cloud는 Qdrant GitHub 리포지토리에 예시 Grafana 대시보드를 제공해요. 여기에는 Qdrant 클러스터 모니터링을 시작하는 데 도움이 되는 기본 제공 뷰와 그래프가 포함되어 있죠.

대시보드를 가져오려면 해당 리포지토리의 안내에 따라 Grafana에 대시보드 JSON을 임포트하면 됩니다. 그러면 클러스터 상태, 메트릭, 그리고 각종 지표를 한눈에 볼 수 있어요.

더 알아보기 (Learn more)