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에 데이터베이스가 만들어져 있다고 가정해요. 또한 클러스터와 상호작용할 수 있도록 kubectlhelm이 설정돼 있어야 해요.

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 클러스터 모니터링을 시작하는 데 도움이 되는 내장 뷰와 그래프가 포함돼 있어요.

대시보드를 가져오려면:

  1. Grafana에서 "Dashboards"로 이동하고 "New" -> "Import"를 클릭해요.
  2. Qdrant GitHub 저장소에서 대시보드 JSON을 복사해서 붙여 넣어요.
  3. "Load"를 클릭한 다음 "Import"를 클릭해요.

더 알아보기 (Learn more)