Logging und Monitoring

GKE On-Prem bietet mehrere Optionen für das Cluster-Logging und -Monitoring, darunter cloudbasierte verwaltete Dienste, Open-Source-Tools und validierte Kompatibilität mit kommerziellen Lösungen von Drittanbietern. Auf dieser Seite werden diese Optionen beschrieben. Außerdem erhalten Sie grundlegende Informationen zur Auswahl der richtigen Lösung für Ihre Umgebung.

Übersicht

Sie haben mehrere Logging- und Monitoring-Optionen für Ihre GKE On-Prem-Cluster:

  • Cloud Logging und Cloud Monitoring, die von clusterinternen Agents aktiviert werden, die mit GKE On-Prem bereitgestellt wurden
  • Prometheus und Grafana, die standardmäßig in neuen Clustern aktiviert sind
  • Validierte Konfigurationen mit Lösungen von Drittanbietern

Cloud Logging und Monitoring

Stackdriver ist die integrierte Beobachtbarkeitslösung für Google Cloud. Es bietet eine vollständig verwaltete Logging-Lösung, Messwerterfassung, Monitoring, Dashboarding und Benachrichtigungen. Stackdriver beobachtet GKE On-Prem-Cluster ähnlich wie cloudbasierte GKE-Cluster.

Die Stackdriver-Agents können mit zwei verschiedenen Logging- und Monitoring-Ebenen konfiguriert werden:

  • Nur Systemkomponenten (Standard).
  • Stackdriver deaktiviert. Vor der Deaktivierung können Sie auf der Supportseite sehen, wie Stackdriver für Supportzwecke verwendet wird.

Stackdriver ist eine ideale Lösung für Kunden, die eine einzige, einfach zu konfigurierende, leistungsstarke cloudbasierte Beobachtbarkeitslösung wünschen. Stackdriver wird dringend empfohlen, wenn Arbeitslasten entweder nur in GKE On-Prem oder in GKE und GKE On-Prem ausgeführt werden. Für Anwendungen mit Komponenten, die in GKE On-Prem und einer herkömmlichen lokalen Infrastruktur ausgeführt werden, können Sie andere Lösungen für eine lückenlose Ansicht dieser Anwendungen in Betracht ziehen.

  • Im Abschnitt zu Stackdriver finden Sie Informationen zur Architektur, zur Konfiguration und zu den bei GKE On-Prem standardmäßig in Ihrem Google Cloud-Projekt replizierten Daten.
  • Weitere Informationen zu diesen Diensten finden Sie in den Abschnitten zu Cloud Logging und Cloud Monitoring.

Prometheus und Grafana

Prometheus und Grafana sind zwei beliebte Open-Source-Monitoring-Produkte:

  • Prometheus erfasst Anwendungs- und Systemmesswerte.
  • Alertmanager kümmert sich um das Senden von Benachrichtigungen über verschiedene Mechanismen.
  • Grafana ist ein Dashboard-Tool.

Prometheus und Grafana werden standardmäßig in jedem Administratorcluster und jedem Nutzercluster ausgeführt. Prometheus und Grafana werden für Anwendungsteams empfohlen, die bereits Erfahrung mit diesen Produkten haben, oder für operative Teams, die Anwendungsmesswerte im Cluster behalten möchten, sowie zur Behebung von Problemen, wenn die Netzwerkverbindung unterbrochen wird.

Drittanbieterlösungen

Google hat mit mehreren Logging- und Monitoring-Drittanbietern zusammengearbeitet, damit ihre Produkte mit GKE On-Prem kompatibel sind. Dazu gehören Datadog, Elastic und Splunk. Weitere validierte Drittanbieter werden in Zukunft hinzugefügt.

Die folgenden Lösungsleitfäden stehen für die Verwendung von Drittanbieterlösungen mit GKE On-Prem zur Verfügung:

Funktionsweise von Stackdriver für GKE On-Prem

Cloud Logging und Cloud Monitoring werden in jedem Cluster installiert und aktiviert, wenn Sie einen neuen Administrator- oder Nutzercluster erstellen.

Die Stackdriver-Agents enthalten mehrere Komponenten in jedem Cluster:

  • Stackdriver Operator (stackdriver-operator-*). Verwaltet den Lebenszyklus aller anderen im Cluster bereitgestellten Stackdriver-Agents.
  • Benutzerdefinierte Stackdriver-Ressource, die automatisch im Rahmen des GKE On-Prem-Installationsprozesses erstellt wird. Nutzer können die benutzerdefinierte Ressource jederzeit ändern, um Werte wie Projekt-ID, Clustername und Clusterstandort zu aktualisieren.
  • Stackdriver Log Aggregator (stackdriver-log-aggregator-*), ein Fluentd StatefulSet, das Logs an die Cloud Logging API sendet. Wenn Logs nicht gesendet werden können, puffert der Log Aggregator die Logeinträge bis zu 200 GB und versucht, sie bis zu 24 Stunden lang nochmals zu senden. Wenn der Zwischenspeicher voll ist oder Log Aggregator die Logging API länger als 24 Stunden nicht erreichen kann, werden die Logs verworfen.
  • Stackdriver Log Forwarder (stackdriver-log-forwarder-*), ein Fluentbit-DaemonSet, das Logs von jeder Maschine an den Stackdriver Log Aggregator weiterleitet.
  • Stackdriver Metrics Collector (stackdriver-prometheus-k8s-), ein Prometheus- und Stackdriver Prometheus-Sidecar-StatefulSet, das Prometheus-Messwerte an die Cloud Logging API sendet.
  • Stackdriver Metadata Collector (stackdriver-metadata-agent-), ein Deployment, das Metadaten für Kubernetes-Ressourcen wie Pods, Deployments und Knoten an die Stackdriver Resource Metadata API sendet. Mithilfe dieser Daten werden Messwertabfragen angereichert, sodass Sie Abfragen anhand des Deployment-Namens, Knotennamens oder sogar Kubernetes-Service-Namens durchführen können.

Mit dem folgenden Befehl können Sie alle von Stackdriver installierten Agents aufrufen:

  kubectl -n kube-system get pods | grep stackdriver

Die Ausgabe dieses Befehls sieht so aus:

stackdriver-log-aggregator-0                  1/1     Running   0   4h31m
stackdriver-log-aggregator-1                  1/1     Running   0   4h28m
stackdriver-log-forwarder-bpf8g               1/1     Running   0   4h31m
stackdriver-log-forwarder-cht4m               1/1     Running   0   4h31m
stackdriver-log-forwarder-fth5s               1/1     Running   0   4h31m
stackdriver-log-forwarder-kw4j2               1/1     Running   0   4h29m
stackdriver-metadata-agent-cluster-level...   1/1     Running   0   4h31m
stackdriver-operator-76ddb64d57-4tcj9         1/1     Running   0   4h37m
stackdriver-prometheus-k8s-0                  2/2     Running   0   4h31m

Stackdriver-Agents für GKE On-Prem konfigurieren

Die mit GKE On-Prem installierten Stackdriver-Agents erfassen Daten zu Systemkomponenten gemäß Ihren Einstellungen und Ihrer Konfiguration in einem der im Folgenden aufgeführten Modi. Damit können Sie Probleme in Ihren GKE On-Prem-Clustern erfassen und beheben.

Nur Systemkomponenten (Standardmodus)

Bei der Installation werden Stackdriver-Agents standardmäßig so konfiguriert, dass sie Logs und Messwerte erfassen, einschließlich Leistungsdetails (z. B. CPU- und Arbeitsspeicherauslastung) und ähnlicher Metadaten für von Google bereitgestellte Systemkomponenten, inklusive aller Arbeitslasten im Administrationscluster bzw. der Arbeitslasten in den Namespaces "kube-system", "gke-system", "gke-connect", "istio-system" und "config-management-system" für Nutzercluster.

Stackdriver deaktiviert

Stackdriver-Agents können vollständig deaktiviert werden, indem die benutzerdefinierte Stackdriver-Ressource gelöscht wird. Bevor Sie Stackdriver deaktivieren, lesen Sie auf der Supportseite, wie sich dies auf die SLAs des Google Cloud-Supports auswirkt.

So deaktivieren Sie Stackdriver für GKE On-Prem:

kubectl -n kube-system delete Stackdriver stackdriver

Stackdriver-Agents erfassen lokal gespeicherte Daten entsprechend Ihrer Speicher- und Aufbewahrungskonfiguration. Die Daten werden im bei der Installation angegebenen Google Cloud-Projekt repliziert, indem ein Dienstkonto verwendet wird, das berechtigt ist, Daten in das Projekt zu schreiben. Stackdriver-Agents können wie oben beschrieben jederzeit deaktiviert werden und von Stackdriver-Agents erfasste Daten können wie alle anderen Messwert- und Logdaten verwaltet und gelöscht werden, wie in der Stackdriver-Dokumentation beschrieben.

Konfigurationsanforderungen für Stackdriver

Es gibt mehrere Konfigurationsanforderungen, um Stackdriver mit GKE On-Prem zu aktivieren. Diese Schritte sind unter Installation vorbereiten und unten aufgeführt.

  1. Ein Cloud Logging-Arbeitsbereich muss innerhalb des Google Cloud-Projekts erstellt werden. Klicken Sie dazu auf Monitoring in der Google Cloud Console und folgen Sie dem Workflow.
  2. Sie müssen die folgenden Stackdriver APIs aktivieren:
    1. Stackdriver API
    2. Cloud Monitoring API
    3. Cloud Logging API
  3. Sie müssen dem Dienstkonto, das von den Stackdriver-Agents verwendet wird, die folgenden IAM-Rollen zuweisen:
    1. logging.logWriter
    2. monitoring.metricWriter
    3. stackdriver.resourceMetadata.writer

Preise

Anthos bietet zusätzliches kostenloses Cloud Logging-Kontingent oberhalb des kostenlosen Cloud Logging-Standardkontingents.

Wenn Sie weitere Informationen wünschen und mehr über Guthaben für Cloud Logging-Messwerte wissen möchten, wenden Sie sich an den Vertrieb.

Funktionsweise von Prometheus und Grafana für GKE On-Prem

Jeder GKE On-Prem-Cluster wird mit einer standardmäßig bereitgestellten Prometheus- und Grafana-Instanz erstellt.

Der Prometheus-Server wird in einer hochverfügbaren Konfiguration mit zwei Replikaten eingerichtet, die auf zwei separaten Knoten ausgeführt werden. Die Ressourcenanforderungen werden an Cluster mit bis zu fünf Knoten angepasst, von denen jeder bis zu 30 Pods verarbeiten kann, die benutzerdefinierte Messwerte bereitstellen. Prometheus hat ein dediziertes PersistentVolume mit vorab zugewiesenem Speicherplatz, um Daten für eine Aufbewahrungsdauer von vier Tagen unterzubringen, sowie einen zusätzlichen Sicherheitspuffer.

Die Administrator-Steuerungsebene und jeder Nutzercluster haben einen dedizierten Monitoring-Stack, den Sie unabhängig voneinander konfigurieren können. Jeder Administrator- und Nutzercluster umfasst einen Monitoring-Stack, der eine Reihe von Features bietet: Prometheus-Server für Monitoring, Grafana für Beobachtbarkeit und Prometheus Alertmanager für Benachrichtigungen.

Alle Monitoring-Endpunkte, übertragenen Messwertdaten und Monitoring APIs werden mithilfe von mTLS- und RBAC-Regeln mit Istio-Komponenten gesichert. Der Zugriff auf Monitoring-Daten ist Clusteradministratoren vorbehalten.

Von Prometheus erfasste Messwerte

Prometheus erfasst die folgenden Messwerte und Metadaten von der Administrator-Steuerungsebene und den Nutzerclustern:

  • Ressourcennutzung, z. B. CPU-Auslastung auf Pods und Knoten
  • Messwerte der Kubernetes-Steuerungsebene
  • Messwerte aus Add-ons und Kubernetes-Systemkomponenten, die auf Knoten ausgeführt werden, z. B. kubelet
  • Clusterstatus, z. B. Status von Pods in einem Deployment
  • Anwendungsmesswerte
  • Maschinenmesswerte wie Netzwerk, Entropie und Inodes

Monitoring mehrerer Cluster

Die im Administratorcluster installierte Prometheus- und Grafana-Instanz wurde speziell konfiguriert, um Einblicke in die gesamte GKE On-Prem-Instanz einschließlich des Administratorclusters und der einzelnen Nutzercluster zu ermöglichen. Dadurch haben Sie folgende Möglichkeiten:

  • Sie können ein Grafana-Dashboard verwenden, um auf Messwerte aus allen Nutzer- und Administratorclustern zuzugreifen.
  • Sie können Messwerte einzelner Nutzercluster in Grafana-Dashboards darstellen. Die Messwerte stehen für direkte Abfragen in vollständiger Auflösung zur Verfügung.
  • Sie können auf die Knoten- und Arbeitslastmesswerte von Nutzerclustern für aggregierte Abfragen, Dashboards und Benachrichtigungen zugreifen. Arbeitslastmesswerte sind auf Arbeitslasten beschränkt, die im kube-system-Namespace ausgeführt werden.
  • Sie haben die Möglichkeit, Benachrichtigungen für bestimmte Cluster zu konfigurieren.