In diesem Dokument wird beschrieben, wie Sie Ihre Google Kubernetes Engine-Bereitstellung so konfigurieren, dass Sie Google Cloud Managed Service for Prometheus verwenden können, um Messwerte von Istio zu erfassen. Dieses Dokument enthält Anleitungen für folgende Aufgaben:
- Istio einrichten, um Messwerte zu melden
- Eine PodMonitoring-Ressource für Managed Service for Prometheus konfigurieren, um die exportierten Messwerte zu erfassen.
- Auf ein Dashboard in Cloud Monitoring zugreifen, um die Messwerte zu prüfen.
- Benachrichtigungsregeln konfigurieren, um die Messwerte zu beobachten.
Diese Anleitung gilt nur, wenn Sie die verwaltete Sammlung mit Managed Service for Prometheus verwenden. Wenn Sie eine selbst bereitgestellte Sammlung verwenden, finden Sie Installationsinformationen im Quell-Repository für Istio.
Diese Anleitung dient als Beispiel und sollte in den meisten Kubernetes-Umgebungen funktionieren. Wenn Sie aufgrund von restriktiven Sicherheits- oder Organisationsrichtlinien Probleme beim Installieren einer Anwendung oder eines Exporters haben, empfehlen wir Ihnen, die Open Source-Dokumentation für Support zu nutzen.
Weitere Informationen zu Istio finden Sie unter Istio.
Vorbereitung
Zum Erfassen von Messwerten aus Istio mithilfe von Managed Service for Prometheus und einer verwalteten Sammlung muss Ihre Bereitstellung die folgenden Anforderungen erfüllen:
- Ihr Cluster muss Google Kubernetes Engine Version 1.21.4-gke.300 oder höher ausführen.
- Sie müssen Managed Service for Prometheus mit aktivierter verwalteter Sammlung ausführen. Weitere Informationen finden Sie unter Erste Schritte mit verwalteter Sammlung.
Istio stellt automatisch Messwerte im Prometheus-Format bereit. Sie müssen es nicht separat installieren. Mit den folgenden Prüfungen können Sie prüfen, ob der Istio-Proxy als Sidecar eingefügt wurde und ob sowohl Istiod, die Steuerungsebene von Istio als auch der Istio-Proxy Messwerte an die erwarteten Endpunkte ausgeben.
Wenn Sie feststellen möchten, ob der Istio-Proxy als Sidecar-Datei eingefügt wird, führen Sie den folgenden Befehl aus, der die in den Pods der Anwendung ausgeführten Container auflistet:
kubectl get pod -l app=APPLICATION_NAME -n NAMESPACE_NAME -o jsonpath='{.items[0].spec.containers[*].name}'
Wenn Sie sehen, dass die Pods den Sidecar-Container
istio
enthalten, wurde der Exporter eingefügt. Wenn der Sidecar nicht eingefügt wird, folgen Sie der Anleitung unter Istio: Sidecar installieren.Führen Sie den folgenden Befehl aus, um zu prüfen, ob Messwerte vom Istio-Proxy ausgegeben werden. Dieser prüft den Endpunkt
/stats/prometheus
desistio
im angegebenen Pod:kubectl exec POD_NAME -n NAMESPACE_NAME -c istio-proxy -- curl -sS 'localhost:15090/stats/prometheus'
Wenn die Prometheus-Rohmesswerte
istio_*
undenvoy_*
angezeigt werden, werden die Messwerte korrekt ausgegeben.Führen Sie den folgenden Befehl aus, um zu prüfen, ob Messwerte auf Istiod ähnlich ausgegeben werden. Damit wird der Endpunkt
/metrics
von Istiod auf einem der Pods im Deploymentistiod
geprüft:kubectl exec -n istio-system deployment/istiod -- curl -sS 'localhost:15014/metrics'
PodMonitoring-Ressource definieren
Für die Zielerkennung benötigt der Managed Service for Prometheus Operator eine PodMonitoring-Ressource, die dem Istio-Exporter im selben Namespace entspricht.
Sie können die folgende PodMonitoring-Konfiguration verwenden:
Istio erfordert zwei separate PodMonitoring-Ressourcen: Eine, die Istiod überwacht, und eine weitere, die die Istio Proxy-Sidecars sowie die Gateways für eingehenden und ausgehenden Traffic überwacht. Wenn Sie Istio-Proxy-Messwerte in allen Namespaces im Cluster gleichzeitig überwachen möchten, wenden Sie das PodMonitoringistio-proxy
auf jeden Namespace an oder richten Sie eine Ressource ClusterPodMonitoring einer PodMonitoring-Ressource pro Namespace ein.
Wenn Sie die von Istio bereitgestellten Grafana-Dashboards verwenden möchten, müssen Sie zusätzlich zu den in diesem Dokument beschriebenen PodMonitoring-Ressourcen auch Kubelet und cAdvisor-Extraktion konfigurieren.
Führen Sie den folgenden Befehl aus, um Konfigurationsänderungen aus einer lokalen Datei anzuwenden:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Sie können Ihre Konfigurationen auch mit Terraform verwalten.
Regeln und Benachrichtigungen definieren
Sie können die folgende Rules
-Konfiguration verwenden, um Benachrichtigungen für Redis-Messwerte zu definieren:
Führen Sie den folgenden Befehl aus, um Konfigurationsänderungen aus einer lokalen Datei anzuwenden:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Sie können Ihre Konfigurationen auch mit Terraform verwalten.
Weitere Informationen zum Anwenden von Regeln auf Ihren Cluster finden Sie unter Verwaltete Regelauswertung und Benachrichtigungen.
DieseRules
-Konfiguration wurde von den Istio-Regeln angepasst, die von Tolle Prometheus-Benachrichtigungen bereitgestellt wurden.
Sie können die Schwellenwerte für Benachrichtigungen an Ihre Anwendung anpassen.
Konfiguration prüfen
Mit dem Metrics Explorer können Sie prüfen, ob der Istio-Exporter richtig konfiguriert ist. Es kann ein oder zwei Minuten dauern, bis Cloud Monitoring Ihre Messwerte aufgenommen hat.
So prüfen Sie, ob die Messwerte aufgenommen wurden:
-
Rufen Sie in der Google Cloud Console die Seite leaderboard Metrics Explorer auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Klicken Sie in der Symbolleiste des Bereichs "Query Builder" auf die Schaltfläche code MQL oder code PromQL.
- Prüfen Sie, ob PromQL in der Ein-/Aus-Schaltfläche PromQL ausgewählt ist. Die Sprachschaltfläche befindet sich in derselben Symbolleiste, mit der Sie Ihre Abfrage formatieren können.
- Geben Sie die folgende Abfrage ein und führen Sie sie aus:
sum(istio_build{cluster="CLUSTER_NAME"}) by (component)
Dashboards ansehen
Die Cloud Monitoring-Integration beinhaltet das Dashboard Istio Envoy Prometheus – Übersicht. Dashboards werden automatisch mitkonfiguriert, wenn Sie die Integration konfigurieren. Sie können auch eine statische Vorschau von Dashboards aufrufen, ohne die Integration zu installieren.
So rufen Sie ein installiertes Dashboard auf:
-
Rufen Sie in der Google Cloud Console die Seite Dashboards auf.
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Wählen Sie den Tab Dashboard-Liste aus.
- Wählen Sie die Kategorie Integrationen aus.
- Klicken Sie auf den Namen des Dashboards, z. B. Istio Envoy Prometheus – Übersicht.
So rufen Sie eine statische Vorschau des Dashboards auf:
-
Öffnen Sie in der Google Cloud Console die Seite Einbindungen:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.
- Klicken Sie auf den Filter für die Deployment-Plattform Kubernetes Engine.
- Suchen Sie nach der Istio-Integration und klicken Sie auf Details ansehen.
- Wählen Sie den Tab Dashboards aus.
Fehlerbehebung
Informationen zur Fehlerbehebung bei Problemen mit der Messwertaufnahme finden Sie unter Probleme mit der Erfassung über Exporter unter Fehlerbehebung bei Problemen mit der Aufnahme.