Milvus
Zilliz
Home
  • Leitfaden für die Verwaltung
  • Home
  • Docs
  • Leitfaden für die Verwaltung

  • Überwachung, Warnungen und Protokolle

  • Überwachung

  • Bereitstellung von Überwachungsdiensten

Bereitstellen von Überwachungsdiensten auf Kubernetes

In diesem Thema wird beschrieben, wie Sie Prometheus verwenden, um Überwachungsdienste für einen Milvus-Cluster auf Kubernetes bereitzustellen.

Überwachen von Metriken mit Prometheus

Metriken sind Indikatoren, die Informationen über den Betriebsstatus Ihres Systems liefern. Mit Metriken können Sie beispielsweise nachvollziehen, wie viel Arbeitsspeicher oder CPU-Ressourcen von einem Datenknoten in Milvus verbraucht werden. Wenn Sie die Leistung und den Status der Komponenten in Ihrem Milvus-Cluster kennen, sind Sie gut informiert und können daher bessere Entscheidungen treffen und die Ressourcenzuweisung rechtzeitig anpassen.

Im Allgemeinen werden die Metriken in einer Zeitseriendatenbank (TSDB) wie Prometheus gespeichert und mit einem Zeitstempel versehen. Bei der Überwachung von Milvus-Diensten können Sie Prometheus verwenden, um Daten von Endpunkten zu beziehen, die von Exporteuren festgelegt wurden. Prometheus exportiert dann die Metriken der einzelnen Milvus-Komponenten unter http://<component-host>:9091/metrics.

Es kann jedoch sein, dass Sie mehrere Repliken für eine Komponente haben, was die manuelle Konfiguration von Prometheus zu kompliziert macht. Daher können Sie Prometheus Operator, eine Erweiterung für Kubernetes, für die automatisierte und effektive Verwaltung von Prometheus-Überwachungsinstanzen verwenden. Die Verwendung von Prometheus Operator erspart Ihnen das manuelle Hinzufügen von metrischen Zielen und Dienstanbietern.

Mit der benutzerdefinierten Ressourcendefinition (CRD) von ServiceMonitor können Sie deklarativ festlegen, wie eine dynamische Gruppe von Diensten überwacht wird. Sie ermöglicht auch die Auswahl der zu überwachenden Dienste mit der gewünschten Konfiguration unter Verwendung von Labels. Mit Prometheus Operator können Sie Konventionen einführen, die festlegen, wie Metriken dargestellt werden. Neue Dienste können automatisch gemäß der von Ihnen festgelegten Konvention erkannt werden, ohne dass eine manuelle Neukonfiguration erforderlich ist.

Die folgende Abbildung veranschaulicht den Prometheus-Workflow.

Prometheus_architecture Prometheus_Architektur

Voraussetzungen

Dieses Tutorial verwendet kube-prometheus, um Ihnen die Installation und manuelle Konfiguration jeder Überwachungs- und Alarmierungskomponente zu ersparen.

Kube-prometheus sammelt Kubernetes-Manifeste, Grafana-Dashboards und Prometheus-Regeln in Kombination mit Dokumentation und Skripten.

Bevor Sie Überwachungsdienste bereitstellen, müssen Sie einen Überwachungsstapel erstellen, indem Sie die Konfiguration im Verzeichnis kube-prometheus manifests verwenden.

$ git clone https://github.com/prometheus-operator/kube-prometheus.git
$ cd kube-prometheus
$ kubectl apply --server-side -f manifests/setup
$ kubectl wait \
        --for condition=Established \
        --all CustomResourceDefinition \
        --namespace=monitoring
$ kubectl apply -f manifests/
Die standardmäßige prometheus-k8s-Clusterrole kann die Metriken von milvus nicht erfassen und muss gepatcht werden:
kubectl patch clusterrole prometheus-k8s --type=json -p='[{"op": "add", "path": "/rules/-", "value": {"apiGroups": [""], "resources": ["pods", "services", "endpoints"], "verbs": ["get", "watch", "list"]}}]'

Um einen Stack zu löschen, führen Sie kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup aus.

Bereitstellen von Überwachungsdiensten auf Kubernetes

1. Zugriff auf die Dashboards

Leiten Sie den Prometheus-Dienst an den Port 9090 und den Grafana-Dienst an den Port 3000 weiter.

$ kubectl --namespace monitoring --address 0.0.0.0 port-forward svc/prometheus-k8s 9090
$ kubectl --namespace monitoring --address 0.0.0.0 port-forward svc/grafana 3000

2. Aktivieren Sie den ServiceMonitor

Der ServiceMonitor ist für Milvus Helm standardmäßig nicht aktiviert. Nach der Installation des Prometheus Operator im Kubernetes-Cluster können Sie ihn durch Hinzufügen des Parameters metrics.serviceMonitor.enabled=true aktivieren.

Mit Helm

Sie können den ServiceMonitor aktivieren, indem Sie den Parameter metrics.serviceMonitor.enabled=true wie folgt setzen, wenn Sie Milvus Helm chart installiert haben.

```
$ helm upgrade my-release milvus/milvus --set metrics.serviceMonitor.enabled=true --reuse-values
```

Wenn die Installation abgeschlossen ist, verwenden Sie kubectl, um die ServiceMonitor-Ressource zu überprüfen.

Mit Milvus Operator

Sie können den ServiceMonitor wie folgt aktivieren, wenn Sie Milvus mit dem Milvus Operator installiert haben.

  1. Führen Sie den folgenden Befehl aus, um die benutzerdefinierte MIlvus-Ressource zu bearbeiten. Der folgende Befehl geht davon aus, dass die benutzerdefinierte Ressource den Namen my-release trägt.

    $ kubectl edit milvus my-release
    
  2. Ändern Sie das Feld spec.components.disableMetric in false.

    ...
    spec:
      components:
        disableMetric: false # set to true to disable metrics
    ...
    
  3. Speichern Sie und beenden Sie den Editor.

  4. Warten Sie, bis der Operator die Änderungen abgeglichen hat. Sie können den Status der benutzerdefinierten Milvus-Ressource überprüfen, indem Sie den folgenden Befehl ausführen.

    $ kubectl get milvus my-release -o yaml
    

Das Feld status.components.metrics.serviceMonitor.enabled sollte true lauten.

3. Prüfen Sie die Metriken

Nachdem Sie den ServiceMonitor aktiviert haben, können Sie das Prometheus-Dashboard unter http://localhost:9090/ aufrufen.

Klicken Sie auf die Registerkarte Status und dann auf Targets. Sie sollten die Ziele der Milvus-Komponenten sehen.

Prometheus_targets Prometheus_Ziele

Klicken Sie auf die Registerkarte Graph und geben Sie den Ausdruck up{job="default/my-release"} in das Eingabefeld für den Ausdruck ein. Sie sollten die Metriken der Milvus-Komponenten sehen.

Prometheus_graph Prometheus_Grafik

4. Prüfen Sie den ServiceMonitor

$ kubectl get servicemonitor
NAME                           AGE
my-release-milvus              54s

Der nächste Schritt