Logging und Monitoring für GKE konfigurieren


Google Kubernetes Engine (GKE) bietet Einbindung in Cloud Logging und Cloud Monitoring, einschließlich Google Cloud Managed Service for Prometheus.

Durch diese Einbindung können Sie Ihre ausgeführten GKE-Cluster beobachten, Ihr System und Ihre Debug-Logs verwalten sowie die Leistung Ihres Systems mithilfe erweiterter Profilerstellungs- und Tracing-Funktionen analysieren.

Diese Einbindung bietet auch ein Dashboard zur Beobachtung Ihrer GKE-Cluster.

Hinweis: Sicherheitslogs, einschließlich grundlegender Audit-Logs, sind für GKE und die meisten anderen Google Cloud-Dienste auch dann verfügbar, wenn Cloud Logging für einen GKE-Cluster nicht aktiviert ist. Weitere Informationen finden Sie unter Cloud-Audit-Logs.

Auf dieser Seite wird Folgendes beschrieben:

  • Neuen Cluster erstellen und Cloud Logging, Cloud Monitoring und Google Cloud Managed Service for Prometheus konfigurieren

  • Zu erfassende Logs und Messwerte auswählen

  • Cloud Logging, Cloud Monitoring und Google Cloud Managed Service for Prometheus für einen Cluster deaktivieren.

Für GKE Autopilot-Cluster können Sie die Einbindung von Cloud Logging und Cloud Monitoring nicht deaktivieren.

Hinweise

Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:

  • Aktivieren Sie die Google Kubernetes Engine API.
  • Google Kubernetes Engine API aktivieren
  • Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit gcloud components update ab.
  • Sie müssen Inhaber des Projekts sein, das Ihren Cluster enthält.

  • Achten Sie darauf, dass die Cloud Logging API aktiviert ist. Sie können den Status der Cloud Logging API auf der zugehörigen Übersichtsseite prüfen.

Logs und Messwerte

Sie können auswählen, ob Sie Logs und Messwerte von Ihrem GKE-Cluster an Cloud Logging und Cloud Monitoring senden möchten. In den folgenden Abschnitten wird beschrieben, welche Logs und Messwerte verfügbar sind und welche Logs und Messwerte beim Erstellen des Clusters standardmäßig aktiviert sind.

Verfügbare Logs

Wenn Sie Logs an Cloud Logging senden, müssen Sie Systemlogs senden. Optional können Sie auch Logs aus zusätzlichen Quellen senden.

Weitere Informationen zu Cloud Logging-Preisen

In der folgenden Tabelle sind die unterstützten Werte für das Flag --logging der Befehle create und update aufgeführt.

Logquelle --logging-Wert Erfasste Logs
Keine NONE Keine an Cloud Logging gesendeten Logs; im Cluster ist kein Agent für die Logerfassung installiert. Dieser Wert wird für GKE Autopilot-Cluster nicht unterstützt.
System SYSTEM Erfasst Logs aus folgenden Quellen:
  • Alle Pods, die in den Namespaces kube-system, istio-system, knative-serving, gke-system und config-management-system ausgeführt werden.
  • Wichtige nicht containerbasierte Dienste, einschließlich docker/containerd-Laufzeit, kubelet, kubelet-monitor, node-problem-detector und kube-container-runtime-monitor.
  • Die Ausgabe serieller Ports des Knotens, wenn für serial-port-logging-enable der Metadaten der VM-Instanz der Wert "true" festgelegt ist.
Erfassen außerdem Kubernetes-Ereignisse.
Erstellung WORKLOAD Alle Logs, die von Nicht-System-Containern generiert werden, die auf Nutzerknoten ausgeführt werden.
API-Server API_SERVER Alle von kube-apiserver generierten Logs.
Planer SCHEDULER Alle von kube-scheduler generierten Logs.
Controller-Manager CONTROLLER_MANAGER Alle von kube-controller-manager generierten Logs.

Verfügbare Messwerte

Wenn Sie Messwerte an Cloud Monitoring senden, müssen dies Systemmesswerte sein. Sie können optional zusätzliche Messwerte enthalten.

Weitere Informationen zu den Preisen von Cloud Monitoring und den kostenlosen Messwerten

In der folgenden Tabelle sind die unterstützten Werte für das Flag --monitoring der Befehle create und update aufgeführt.

Quelle --monitoring-Wert Erfasste Messwerte
Keine NONE Keine an Cloud Monitoring gesendeten Messwerte; im Cluster ist kein Agent für die Messwerterfassung installiert. Dieser Wert wird für GKE Autopilot-Cluster nicht unterstützt.
System SYSTEM Messwerte aus wesentlichen Systemkomponenten, die für Kubernetes erforderlich sind. Sehen Sie sich eine vollständige Liste dieser Kubernetes-Messwerte an.
API-Server API_SERVER Messwerte aus kube-apiserver. Sehen Sie sich eine vollständige Liste von API-Servermesswerten an.
Planer SCHEDULER Messwerte aus kube-scheduler. Sehen Sie sich eine vollständige Liste von Planer-Messwerten an.
Controller-Manager CONTROLLER_MANAGER Messwerte aus kube-controller-manager. Sehen Sie sich eine vollständige Liste von Controller Manager-Messwerten an.
Nichtflüchtiges Volume (Speicher) STORAGE Speichermesswerte von kube-state-metrics. Enthält Messwerte für nichtflüchtiges Volume und Ansprüche auf nichtflüchtige Volumes. Sehen Sie sich eine vollständige Liste von Speichermesswerten an.
Pod POD Pod-Messwerte aus kube-state-metrics. Sehen Sie sich eine vollständige Liste von Pod-Messwerten an.
Bereitstellung DEPLOYMENT Bereitstellungsmesswerte aus kube-state-metrics. Sehen Sie sich eine vollständige Liste von Bereitstellungsmesswerten an.
StatefulSet STATEFULSET StatefulSet-Messwerte von kube-state-metrics. Sehen Sie sich eine vollständige Liste von StatefulSet-Messwerten an.
DaemonSet DAEMONSET DaemonSet-Messwerte aus kube-state-metrics. Sehen Sie sich eine vollständige Liste von DaemonSet-Messwerten an.
HorizonalPodAutoscaler HPA HPA-Messwerte von kube-state-metrics. Sehen Sie sich eine vollständige Liste von Horizon-PodAutoscaler-Messwerten an.

Darüber hinaus können Sie mithilfe von Google Cloud Managed Service for Prometheus Messwerte im Prometheus-Stil, die von einer beliebigen GKE-Arbeitslast bereitgestellt werden, erfassen. Damit können Sie Ihre Arbeitslasten mithilfe von Prometheus überwachen und melden, ohne Prometheus manuell im großen Maßstab verwalten und betreiben zu müssen.

Standardmäßig aktivierte Logs und Messwerte

Wenn Sie einen neuen GKE-Cluster in Google Cloud erstellen, werden bei der Clustererstellung standardmäßig einige Logs und Messwerte aktiviert.

  • Systemlogs und -messwerte sind für alle Clustertypen aktiviert und können nicht deaktiviert werden.
  • Arbeitslastlogs sind für alle Autopilot-Cluster aktiviert.
  • Für Projekte der GKE Enterprise-Version sind standardmäßig zusätzliche nützliche Logs und Messwerte aktiviert, wenn Sie sich beim Erstellen des Clusters in einer Flotte registrieren. Informationen zum Aktivieren dieser Logs und Messwerte nach dem Erstellen eines Clusters finden Sie unter Cluster ändern.

In den folgenden Tabellen weist ein Häkchen () darauf hin, welche Logs und Metriken standardmäßig aktiviert sind, wenn Sie einen neuen Cluster in einem Projekt mit aktiviertem GKE Enterprise erstellen und registrieren:

Mehr über Logs erfahren

Logname Autopilot Standard
System
Erstellung -
API-Server
Planer
Controller-Manager

Für die Logs der Steuerungsebene (API-Server, Planer und Controller-Manager) fallen Cloud Logging-Gebühren an.

Messwerte

Messwertname Autopilot Standard
System
API-Server
Planer
Controller-Manager
Nichtflüchtiges Volume (Speicher)
Pods
Bereitstellung
StatefulState
DaemonSet
HorizonalPodAutoscaler

Alle registrierten Cluster in einem Projekt, für das GKE Enterprise aktiviert ist, können Messwerte der Steuerelemente und Kube State Metrics ohne zusätzliche Kosten verwenden. Andernfalls fallen für diese Messwerte Cloud Monitoring-Gebühren an.

Sie können die Standardlogs und -messwerte während der Clustererstellung oder nach dem Erstellen des Clusters deaktivieren.

Monitoring und Logging für einen neuen Cluster konfigurieren

Die Anleitungen zur Clustererstellung in diesem Abschnitt beziehen sich nur auf die Optionen, die für Cloud Logging und Cloud Monitoring relevant sind. Eine vollständige Anleitung zum Erstellen eines GKE-Clusters finden Sie in der Dokumentation zum Erstellen eines Standard- oder Autopilot-Clusters.

Führen Sie die folgenden Schritte aus, um Logging und Monitoring beim Erstellen eines GKE-Clusters manuell zu konfigurieren:

Console

Für einen Autopilot-Cluster:

  1. Klicken Sie auf der Seite zur Erstellung von Autopilot-Clustern im Navigationsbereich auf Erweiterte Einstellungen.

    Autopilot-Cluster erstellen

  2. Wählen Sie in der Liste Vorgänge aus, welche Logs und Messwerte erfasst werden sollen.

    • Wählen Sie in der Liste Komponenten für Cloud Logging die Komponenten aus, aus denen Sie Logs erfassen möchten.

    • Wählen Sie in der Liste Komponenten für Cloud Monitoring die Komponenten aus, aus denen Sie Messwerte erfassen möchten.

    Autopilot-Cluster verwenden immer die Best Practices von Google für die Telemetrieerfassung. Das bedeutet, dass System- und Arbeitslast-Logging sowie System-Monitoring immer aktiviert sind.

  3. Klicken Sie auf Erstellen.

Für einen Standardcluster:

  1. Klicken Sie auf der Seite zur Standardclustererstellung im Navigationsbereich unter Cluster auf Features.

    Kubernetes-Cluster erstellen

  2. Wählen Sie in der Liste Vorgänge aus, welche Logs und Messwerte erfasst werden sollen.

    • Wählen Sie in der Liste Komponenten für Cloud Logging die Komponenten aus, aus denen Sie Logs erfassen möchten.

    • Wählen Sie in der Liste Komponenten für Cloud Monitoring die Komponenten aus, aus denen Sie Messwerte erfassen möchten.

    • Zum Deaktivieren von Cloud Logging (außer für Audit-Logs) entfernen Sie das Häkchen aus dem Kästchen Cloud Logging aktivieren.

    • Zum Deaktivieren von Cloud Monitoring entfernen Sie das Häkchen aus dem Kästchen Cloud Monitoring aktivieren.

    • Um Google Cloud Managed Service for Prometheus zu deaktivieren, entfernen Sie das Häkchen aus dem Kästchen Google Cloud Managed Service for Prometheus aktivieren.

gcloud

  1. Bei neuen Clustern sind Cloud Logging und Cloud Monitoring standardmäßig aktiviert. Führen Sie den folgenden Befehl aus, um den Cluster zu erstellen.

    gcloud container clusters create CLUSTER_NAME \
        --location=COMPUTE_LOCATION
    

    Ersetzen Sie Folgendes:

    1. Alternativ können Sie konfigurieren, welche Logs an Cloud Logging gesendet werden. Übergeben Sie dazu eine durch Kommas getrennte Liste von Werten an das Flag --logging des Befehls create. Übergeben Sie --logging=NONE, um keine Logs zu erfassen. Übergeben Sie --logging=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER, um System-, API-Server-, Scheduler- und Controller Manager-Logs zu erfassen. Übergeben Sie --logging=SYSTEM,WORKLOAD, um sowohl System- als auch Arbeitslastlogs zu erfassen. Beispiel:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --logging=SYSTEM,WORKLOAD
      
    2. Ebenso können Sie konfigurieren, welche Messwerte an Cloud Monitoring gesendet werden. Dazu übergeben Sie eine durch Kommas getrennte Liste von Werten an das Flag --monitoring. Übergeben Sie --monitoring=NONE, um keine Messwerte zu erfassen. Übergeben Sie --monitoring=SYSTEM, um Systemmesswerte zu erfassen. Übergeben Sie --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET, DAEMONSET,HPA, um alle Messwerte zu erfassen. Beispiel:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET,DAEMONSET,HPA
      
    3. Unabhängig davon können Sie Google Cloud Managed Service for Prometheus mit dem Flag --enable-managed-prometheus aktivieren. Beispiel:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --enable-managed-prometheus
      

      Das Flag --enable-managed-prometheus aktiviert den verwalteten Collector, der konfiguriert sein muss.

Terraform

  • Informationen zum Konfigurieren der Sammlung von Logs und Messwerten mit Terraform finden Sie in den Blöcken logging_config und monitoring_config in der Terraform-Registry für google_container_cluster. Für die Aktivierung Erfassung von Logs vom API-Server, Planer und Controller-Manager ist Version von Terraform Google Cloud Anbieter 4.44.0 oder höher erforderlich.

  • Allgemeine Informationen zur Verwendung von Google Cloud mit Terraform finden Sie unter Terraform mit Google Cloud.

Monitoring und Logging für einen vorhandenen Cluster konfigurieren

Im folgenden Abschnitt wird beschrieben, wie Sie die Cloud Logging- und Cloud Monitoring-Einbindung für einen vorhandenen GKE-Cluster ändern.

Hinweis: Das Ändern der Monitoring- und Logging-Unterstützung und das Ändern der Kubernetes-Version Ihres Clusters sind unterschiedliche Aktionen. Wenn Sie die Kubernetes-Version Ihres Clusters ändern, hat dies keine Auswirkungen auf die konfigurierte Unterstützung für Monitoring und Logging.

Welche Monitoring- und Logging-Unterstützung verwendet mein Cluster?

So rufen Sie die Einbindungseinstellungen von Cloud Logging und Cloud Monitoring für Ihren Cluster auf:

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Kubernetes Engine und dann Cluster aus:

    Zur Seite „Kubernetes-Cluster“

  2. Unter Details für Ihren Cluster finden Sie den Status für Cloud Logging, Cloud Monitoring und Managed Service for Prometheus.

Cluster ändern

So ändern Sie die Einbindungseinstellungen von Cloud Logging oder Cloud Monitoring für einen vorhandenen Cluster:

Console

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Kubernetes Engine und dann Cluster aus:

    Zur Seite „Kubernetes-Cluster“

  2. Klicken Sie auf den Namen Ihres Clusters.

  3. Wenn Sie ändern möchten, welche Logs an Cloud Logging gesendet werden, welche Messwerte an Cloud Monitoring gesendet werden oder ob Managed Service for Prometheus aktiviert ist, klicken Sie auf Bearbeiten neben Cloud Logging, Cloud Monitoring oder Managed Service for Prometheus.

  4. Klicken Sie auf Speichern.

gcloud

Die folgenden gcloud-Anleitungen beschreiben die Aktualisierung der Monitoring- und Logging-Unterstützung Ihres Clusters mit dem Befehl gcloud container clusters update. Achten Sie darauf, dass Sie den Befehl update und nicht den Befehl upgrade verwenden.

  • Konfigurieren Sie, welche Logs an Cloud Logging gesendet werden. Übergeben Sie dazu eine durch Kommas getrennte Liste von Werten an das Flag --logging des Befehls gcloud container clusters update. Sehen Sie sich eine vollständige Liste der verfügbaren Logquellen an. Zum Erfassen von System- und Arbeitslastlogs übergeben Sie beispielsweise --logging=SYSTEM,WORKLOAD. Übergeben Sie --logging=SYSTEM, um nur Systemlogs zu erfassen. Wenn Sie keine Logs erfassen möchten, übergeben Sie --logging=NONE:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --logging=NONE
    
  • Konfigurieren Sie, welche Messwerte an Cloud Monitoring gesendet werden. Übergeben Sie dazu eine durch Kommas getrennte Liste von Werten an das Flag --monitoring des Befehls gcloud container clusters update. Sehen Sie sich eine vollständige Liste der verfügbaren Messwertquellen an. Wenn Sie beispielsweise Systemmesswerte erfassen möchten, übergeben Sie --monitoring=SYSTEM. Wenn Sie keine Messwerte erfassen möchten, übergeben Sie --monitoring=NONE:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --monitoring=NONE
    
  • Konfigurieren Sie mithilfe des Flags --enable-managed-prometheus oder --disable-managed-prometheus, ob Google Cloud Managed Service for Prometheus aktiviert ist. Beispiel:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus
    

Terraform

  • Informationen zum Konfigurieren der Sammlung von Logs und Messwerten mit Terraform finden Sie in den Blöcken logging_config und monitoring_config in der Terraform-Registry für google_container_cluster. Für die Aktivierung Erfassung von Logs vom API-Server, Planer und Controller-Manager ist Version von Terraform Google Cloud Anbieter 4.44.0 oder höher erforderlich.

  • Allgemeine Informationen zur Verwendung von Google Cloud mit Terraform finden Sie unter Terraform mit Google Cloud.

Verworfene Konfigurationsparameter

Wenn Sie bisher die alten Konfigurationsparameter verwendet haben, um die Logging- und Monitoring-Unterstützung für Ihren GKE-Cluster zu konfigurieren, wurden diese Parameter verworfen. Die folgende Tabelle zeigt die entsprechenden Konfigurationsparameter, um die verworfenen Flags zu ersetzen.

Alte Konfiguration Alte create-Argumente Alte update-Argumente Neue create- und update-Argumente
Deaktiviert --no-enable-stackdriver-kubernetes --no-enable-stackdriver-kubernetes --logging=NONE
--monitoring=NONE
Nur Monitoring für System (Logging deaktiviert) --enable-stackdriver-kubernetes
--no-enable-cloud-logging
--logging-service=none
--monitoring-service=monitoring.googleapis.com/kubernetes
--logging=NONE
--monitoring=SYSTEM
Nur Logging für System und Arbeitslast (Monitoring deaktiviert) --enable-stackdriver-kubernetes
--no-enable-cloud-monitoring
--logging-service=logging.googleapis.com/kubernetes
--monitoring-service=none
--logging=SYSTEM,WORKLOAD
--monitoring=NONE
Logging und Monitoring nur für System (Beta) --enable-logging-monitoring-system-only --enable-logging-monitoring-system-only --logging=SYSTEM
--monitoring=SYSTEM
Logging und Monitoring für System und Arbeitslast --enable-stackdriver-kubernetes --enable-stackdriver-kubernetes --logging=SYSTEM,WORKLOAD
--monitoring=SYSTEM

Nächste Schritte

  • Erfahren Sie mehr über die Kosten für Cloud Logging, Cloud Monitoring und Managed Service for Prometheus auf der Seite Preise.