Stackdriver Monitoring

Auf dieser Seite wird erläutert, wie Sie mit Stackdriver Monitoring Ihre Google Kubernetes Engine-Cluster (GKE) überwachen.

Übersicht

Verwenden Sie Monitoring, um in Ihren GKE-Clustern Signale zu überwachen und Vorgänge zu erstellen.

Stackdriver überwacht Systemmesswerte und benutzerdefinierte Messwerte. Systemmesswerte sind Messungen der Clusterinfrastruktur, z. B. CPU- und Speicherauslastung. Benutzerdefinierte Messwerte sind anwendungsspezifische Messwerte, die Sie selbst festlegen, z. B. die Anzahl der aktiven Nutzersitzungen oder die Anzahl der gerenderten Seiten.

Für Systemmesswerte erstellt Stackdriver ein Deployment, das in regelmäßigen Abständen eine Verbindung zu jedem Knoten herstellt und Messwerte zu den jeweiligen Pods und Containern erfasst. Im Anschluss werden diese Messwerte an Stackdriver gesendet.

Messwerte, die sich auf die Verwendung von Systemressourcen beziehen, werden aus den folgenden Quellen gesammelt:

  • CPU: container/cpu/usage_time
  • Arbeitsspeicher: container/memory/bytes_used, erfasst aus memory.usage_in_bytes in cgroup
  • Entfernbarer Speicher: container/memory/bytes_used, erfasst aus dem Feld total_inactive_file von memory.stat
  • Nicht entfernbarer Speicher: Berechnet aus memory.usage_in_bytes-memory.total_inactive_file
  • Laufwerk: container/disk/bytes_used

In der Stackdriver-Dokumentation sind in der Messwertliste noch andere Systemmesswerte aus GKE aufgeführt.

Informationen zum Einrichten von benutzerdefinierten Messwerten finden Sie im Abschnitt Benutzerdefinierte Messwerte verwenden oder in der Anleitung Deployments mit benutzerdefinierten Messwerten automatisch skalieren.

Hinweise

Führen Sie zur Vorbereitung auf diese Aufgabe folgende Schritte aus:

  • Achten Sie darauf, dass die Google Kubernetes Engine API aktiviert ist.
  • Google Kubernetes Engine API aktivieren
  • Prüfen Sie, ob das Cloud SDK installiert ist.
  • Legen Sie Ihre standardmäßige Projekt-ID fest:
    gcloud config set project [PROJECT_ID]
  • Wenn Sie mit zonalen Clustern arbeiten, legen Sie die Compute-Standardzone fest:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Wenn Sie mit regionalen Clustern arbeiten, legen Sie die Compute-Standardregion fest:
    gcloud config set compute/region [COMPUTE_REGION]
  • Aktualisieren Sie gcloud auf die neueste Version:
    gcloud components update
  • Prüfen Sie, ob Sie einen Stackdriver-Arbeitsbereich erstellt haben. Weitere Informationen finden Sie unter Arbeitsbereiche verwalten.

Monitoring aktivieren

Sie können einen Cluster mit aktiviertem Monitoring erstellen oder Monitoring in einem vorhandenen Cluster aktivieren.

Die Knotenpools Ihres Clusters (einschließlich des Standardknotenpools) müssen den erforderlichen GCP-Bereich https://www.googleapis.com/auth/monitoring haben, um mit Monitoring interagieren zu können. Wenn Sie einen neuen Cluster mit Monitoring erstellen, legt Kubernetes Engine diesen Bereich automatisch fest; vorhandene Cluster haben jedoch möglicherweise nicht die erforderlichen Berechtigungen.

Cluster mit Monitoring erstellen

gcloud

Wenn Sie einen Cluster erstellen, wird automatisch das Flag --enable-cloud-monitoring angegeben, welches das Monitoring im Cluster aktiviert.

Wenn Sie dieses Standardverhalten deaktivieren möchten, geben Sie das Flag --no-enable-cloud-monitoring an.

Konsole

  1. Rufen Sie in der GCP Console das Menü "Kubernetes Engine" auf.

    Menü "Kubernetes Engine" aufrufen

  2. Klicken Sie auf Cluster erstellen.

  3. Konfigurieren Sie den Cluster wie gewünscht.

  4. Klicken Sie auf Erweiterte Optionen. Prüfen Sie, ob die Option Stackdriver Monitoring-Dienst aktivieren ausgewählt ist.

  5. Klicken Sie auf Erstellen.

Monitoring für einen vorhandenen Cluster aktivieren

gcloud

Führen Sie den folgenden Befehl aus, um das Monitoring für einen vorhandenen Cluster zu aktivieren. Dabei steht [CLUSTER_NAME] für den Namen des Clusters.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service monitoring.googleapis.com

Wenn Sie Ihren Cluster ursprünglich ohne Monitoring erstellt haben, haben die Knotenpools des Clusters möglicherweise nicht den erforderlichen GCP-Bereich. Zur Umgehung dieses Problems können Sie einen neuen Knotenpool mit der gleichen Anzahl an Knoten und dem erforderlichen Bereich so erstellen:

gcloud container node-pools create adjust-scope \
    --cluster [CLUSTER_NAME] \
    --num-nodes [NUM_NODES] \
    --scopes https://www.googleapis.com/auth/monitoring

Nachdem Sie den neuen Knotenpool erstellt haben, können Sie Ihre vorhandenen Pods in den neuen Knotenpool mit dem korrekt definierten Bereich verschieben, um Monitoring zu verwenden. Weitere Informationen finden Sie im Artikel VM-Bereiche ohne Ausfallzeiten aktualisieren (nur auf Englisch verfügbar).

Konsole

Wenn Sie Ihren Cluster ursprünglich ohne Monitoring erstellt haben, haben die Knotenpools des Clusters möglicherweise nicht den erforderlichen GCP-Bereich. Im gcloud-Abschnitt vor diesem Abschnitt finden Sie eine Lösung zur Umgehung dieses Problems:

  1. Rufen Sie in der GCP Console das Menü "Kubernetes Engine" auf.

    Menü "Kubernetes Engine" aufrufen

  2. Klicken Sie auf die Schaltfläche "Bearbeiten" (Stiftsymbol) des Clusters.

  3. Wählen Sie im Drop-down-Menü Stackdriver Monitoring die Option "Aktiviert" aus.

  4. Klicken Sie auf Speichern.

Infrastrukturmesswerte erweitern

Zusätzlich zu den Anwendungsmesswerten können für die benutzerdefinierten Stackdriver-Messwerte auch Messwerte der Clusterinfrastruktur verwendet werden, die nicht in den Systemmesswerten enthalten sind, wie z. B. Laufwerk-E/A eines Containers. Sie können eigene Monitoring-Agents für die Infrastruktur erstellen, um diese Messwerte zu sammeln und mit Push an Stackdriver zu übertragen.

cAdvisor

Sie können Messwerte mit cAdvisor, dem in Kubernetes verwendeten Open-Source-Monitoring-Agent, sammeln, um Messwerte zu erhalten. Anschließend können Sie prometheus-to-sd verwenden, um diese Messwerte mit Push an Stackdriver zu übertragen.

Führen Sie die folgenden Schritte aus, um cAdvisor in Ihrem Cluster auszuführen:

  1. Klonen Sie cAdvisor:

    git clone https://github.com/google/cadvisor.git
    cd cadvisor
    
  2. Folgen Sie der Anleitung unter cAdvisor Kubernetes Daemonset, um kustomize zu installieren. Wenn Sie Cloud Shell verwenden, führen Sie den folgenden Befehl aus:

    go get github.com/kubernetes-sigs/kustomize
    
  3. Erstellen Sie den cAdvisor-Namespace und das DaemonSet mit dem Beispiel. Dabei werden alle Containermesswerte exportiert:

    kustomize build deploy/kubernetes/overlays/examples | kubectl apply -f -
    

    In Stackdriver sollten Sie nun Prometheus metrics (Prometheus-Messwerte) unter der Ressource gke_container sehen können.

  4. Folgen Sie der Anleitung unter cAdvisor Kubernetes Daemonset, um Änderungen an dem bereitgestellten Beispiel vorzunehmen, die Ihren Anforderungen entsprechen. Übernehmen Sie Ihre Änderungen mit dem folgenden Befehl:

    kustomize build deploy/kubernetes/overlays/<my_custom_patches> | kubectl apply -f -
    

Messwerte ansehen

Sie können Messwerte in der Stackdriver Monitoring-Konsole ansehen.

Clusterübersicht

Monitoring bietet ein Übersichtsmenü für GKE. In diesem Menü werden nützliche Informationen zu Clustern in hilfreichen Dashboards angezeigt.

So rufen Sie das Übersichtsmenü auf:

  1. Rufen Sie die Stackdriver Monitoring-Konsole auf:

    Menü "Monitoring" aufrufen

  2. Bewegen Sie den Mauszeiger auf Resources (Ressourcen) und wählen Sie Kubernetes Engine aus.

  3. Wählen Sie einen Cluster aus.

Das Übersichtsmenü enthält die folgenden Standard-Dashboards:

  • Incidents (Vorfälle): Verstöße gegen Benachrichtigungsrichtlinien.
  • Events (Ereignisse): Chronologische Liste von Anomalien, Vorfällen, Lebenszyklen, Tags, IAM-Richtlinien, Deployments, Notizen, Aktualisierungen des Cloudanbieters und Aktualisierungen der Nutzerverwaltung in den Cloudkonten.
  • CPU Usage (CPU-Auslastung): Zeigt die prozentuale CPU-Auslastung pro Cluster an.
  • Laufwerks-E/A: Zeigt die Ein-/Ausgaberaten der Laufwerke pro Cluster in KB/s an.
  • Network Traffic (Netzwerktraffic): Zeigt den Netzwerktraffic pro Cluster in KB/s an.
  • Pods: Liste der Pods und Knoten (VM-Instanzen in Compute Engine) in allen Namespaces. Durch die Auswahl eines Pods oder Knotens wird die Übersicht der jeweiligen Ressource geöffnet.

Weitere Informationen zum Ansehen von Messwerten finden Sie in der Monitoring-Dokumentation und auf der Seite Monitoring-Filter.

Dashboards

Sie können benutzerdefinierte Dashboards für GKE-Knoten und -Container erstellen.

So erstellen Sie ein Dashboard:

  1. Rufen Sie die Stackdriver Monitoring-Konsole auf:

    Menü "Monitoring" aufrufen

  2. Bewegen Sie den Mauszeiger auf Dashboards und wählen Sie Create Dashboard (Dashboard erstellen) aus.

  3. Zum Erstellen eines neuen Dashboards klicken Sie auf Add Chart (Diagramm hinzufügen).

  4. Geben Sie im Feld Title (Titel) einen Namen für das Dashboard ein.

  5. Suchen Sie im Feld Find resource type and metric (Nach Ressourcentyp und Messwert suchen) nach "instance" und/oder "container" und wählen Sie dann die gewünschten Messwerte aus.

  6. Geben Sie im Feld Metric Type (Messwerttyp) den gewünschten Messwert ein oder wählen Sie diesen über das AutoFill-Menü aus.

  7. Optional können Sie die Option Filter verwenden, um nach einem bestimmten Wert zu suchen, z. B. Anwendung, Name oder Version.

  8. Konfigurieren Sie weitere Optionen des Dashboards nach Bedarf. Klicken Sie abschließend auf Save (Speichern), um das Dashboard zu erstellen.

Messwert-Explorer

Mit Messwert-Explorer können Sie einen spezifischen Messwert zu Clustern auswählen und verschiedene Zusammenführungen durchführen.

Den Messwert-Explorer verwenden Sie so:

  1. Rufen Sie die Stackdriver Monitoring-Konsole auf:

    Menü "Monitoring" aufrufen

  2. Bewegen Sie den Mauszeiger auf Resources (Ressourcen) und wählen Sie Metrics Explorer (Messwert-Explorer) aus.

  3. Geben Sie im Suchmenü Find resource type and metric (Nach Ressourcentyp und Messwert suchen) für Resource type (Ressourcentyp) den Wert gke_container ein.

  4. Wählen Sie für Metric (Messwert) den gewünschten Messwert aus.

  5. Wahlweise können Sie das Menü Filter verwenden, um nach Ressource zu filtern.

  6. Verwenden Sie die Optionen zur Zusammenfassung, um eine gewünschte Zusammenfassung durchzuführen.

Best Practices

  • Benachrichtigungen: Sie können Benachrichtigungsrichtlinien festlegen, um über ungewöhnliche Ereignisse im Cluster informiert zu werden.

Monitoring deaktivieren

gcloud

Führen Sie den folgenden Befehl aus, um die Monitoring-Funktion für einen vorhandenen Cluster zu deaktivieren. Dabei steht [CLUSTER_NAME] für den Namen des Clusters.

gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service none

Konsole

  1. Rufen Sie in der GCP Console das Menü "Kubernetes Engine" auf.

    Menü "Kubernetes Engine" aufrufen

  2. Klicken Sie auf die Schaltfläche "Bearbeiten" (Stiftsymbol) des Clusters.

  3. Wählen Sie im Drop-down-Menü Stackdriver Monitoring die Option "Deaktiviert" aus.

  4. Klicken Sie auf Speichern.

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Stackdriver Monitoring