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 erläutert und einige grundlegende Anleitungen zur Auswahl der richtigen Lösung für Ihre Umgebung gegeben.

Optionen für GKE On-Prem

Für Ihre GKE On-Prem-Cluster stehen mehrere Logging- und Monitoring-Optionen zur Verfügung:

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

Cloud Logging und Cloud Monitoring

Die Operations-Suite von Google Cloud ist die integrierte Beobachtbarkeitslösung für Google Cloud. Sie bietet eine vollständig verwaltete Logging-Lösung, Messwerterfassung, Monitoring, Dashboards und Benachrichtigungen. Cloud Monitoring überwacht GKE On-Prem-Cluster ähnlich wie cloudbasierte GKE-Cluster.

Die clusterinternen Agents können für den Umfang des Monitoring und Logging sowie für die Ebene der erfassten Messwerte konfiguriert werden:

  • Der Umfang des Logging und Monitoring kann nur auf Systemkomponenten (Standardeinstellung) oder auf Systemkomponenten und Anwendungen festgelegt werden
  • Die Ebene der erfassten Messwerte kann für einen optimierten Satz von Messwerten oder für vollständige Messwerte konfiguriert werden

Weitere Informationen finden Sie unter Stackdriver-Agents für Anthos-Cluster auf VMware konfigurieren.

Logging und Monitoring sind die ideale Lösung für Kunden, die eine einzige, einfach zu konfigurierende und leistungsstarke cloudbasierte Beobachtbarkeitslösung benötigen. Wir empfehlen die Verwendung von Logging und Monitoring, wenn Sie Arbeitslasten nur in GKE On-Prem oder Arbeitslasten in GKE und GKE On-Prem ausführen. Für Anwendungen mit Komponenten, die in GKE On-Prem und in herkömmlichen lokalen Infrastrukturen ausgeführt werden, sind andere Lösungen für eine End-to-End-Ansicht dieser Anwendungen zu empfehlen.

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 können in jedem Administrator- und Nutzercluster aktiviert werden. 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 in Zusammenarbeit mit mehreren Logging- und Monitoring-Drittanbietern dafür gesorgt, dass 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 Logging und Monitoring für GKE On-Prem

Logging und Messwert-Agents 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 auf dem Cluster bereitgestellten Stackdriver-Agents.

  • Benutzerdefinierte Stackdriver-Ressource. Eine Ressource, die automatisch im Rahmen des GKE On-Prem-Installationsvorgangs 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 Log Aggregator die Logeinträge im Umfang von bis zu 200 GB und versucht, sie 24 Stunden lang nochmals zu senden. Wenn der Puffer voll ist oder Log Aggregator die Logging API länger als 24 Stunden nicht erreichen kann, werden Logs gelöscht.

  • Stackdriver Log Forwarder (stackdriver-log-forwarder-*). Ein Fluentbit DaemonSet, das Logs von jeder Maschine an 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 Modul, das Metadaten für Kubernetes-Ressourcen wie Pods, Deployments, Knoten usw. an die Stackdriver Resource Metadata API sendet. Anhand dieser Daten können Sie Messwertabfragen anreichern und Abfragen nach Deployment-Name, Knotenname oder auch Kubernetes-Dienstname ausführen.

Mit dem folgenden Befehl rufen Sie alle von Stackdriver installierten Agents auf:

  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-Agenten erfassen abhängig von Ihren Einstellungen und Konfigurationen Daten zu Systemkomponenten, um Probleme mit Ihren GKE On-Prem-Clustern zu warten und zu beheben.

Nur Systemkomponenten (Standardbereich)

Bei der Installation erfassen Stackdriver-Agents Logs und Messwerte, einschließlich Leistungsdetails (z. B. CPU- und Speicherauslastung) und ähnliche Metadaten für von Google bereitgestellte Systemkomponenten. Dazu gehören alle Arbeitslasten im Administratorcluster und in Nutzerclustern Arbeitslasten in den Namespaces kube-system, gke-system, gke-connect, istio-system und config-management-system. Die Stackdriver-Agents können wie in den folgenden Abschnitten beschrieben konfiguriert oder deaktiviert werden.

Der Umfang der erfassten Logs und Messwerte kann auch um Anwendungen erweitert werden. Anleitungen zum Aktivieren von Anwendungs-Logging und -Monitoring finden Sie unter Logging und Monitoring für Nutzeranwendungen aktivieren.

Optimierte Messwerte (Standardmesswerte)

Standardmäßig erfassen die im Cluster ausgeführten Messwert-Agents einen optimierten Satz von Container- und Kubelet-Messwerten und melden ihn an die Operations-Suite von Google Cloud (ehemals Stackdriver). Es sind weniger Ressourcen erforderlich, um diese optimierten Messwerte zu erfassen, was die Gesamtleistung und die Skalierbarkeit verbessert. Dies ist besonders für Messwerte auf Containerebene wichtig, da die Anzahl der zu überwachenden Objekte sehr groß ist.

Setzen Sie das Feld optimizedMetrics in Ihrer benutzerdefinierten Stackdriver-Ressource auf false, um optimierte Messwerte zu deaktivieren (nicht empfohlen). Weitere Informationen zum Ändern Ihrer benutzerdefinierten Stackdriver-Ressource finden Sie unter Stackdriver-Komponentenressourcen konfigurieren. Alle Messwerte, einschließlich der standardmäßig ausgeschlossenen Messwerte, finden Sie unter Anthos-Messwerte.

Stackdriver deaktiviert

Stackdriver-Agents können vollständig deaktiviert werden. Dazu löschen Sie die benutzerdefinierte Stackdriver-Ressource. Bevor Sie Stackdriver deaktivieren, sollten Sie sich auf der Supportseite informieren, 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 in das bei der Installation angegebene Google Cloud-Projekt repliziert. Dazu wird ein Dienstkonto verwendet, das berechtigt ist, Daten in das Projekt zu schreiben. Stackdriver-Agents können jederzeit wie oben beschrieben deaktiviert werden. Von Stackdriver-Agents erfasste Daten lassen sich wie alle anderen Messwert- und Logdaten verwalten und löschen, wie in der Cloud Monitoring-Dokumentation erläutert.

Konfigurationsanforderungen für Logging und Monitoring

Wenn Sie Logging und Monitoring mit einem Cluster verwenden möchten, müssen Sie das Google Cloud-Projekt konfigurieren, mit dem Sie Logs und Messwerte aufrufen möchten. Dieses Google Cloud-Projekt wird als Logging-Monitoring-Projekt bezeichnet.

  1. Aktivieren Sie die folgenden APIs in Ihrem Logging-Monitoring-Projekt:

  2. Weisen Sie Ihrem Logging-Monitoring-Dienstkonto in Ihrem Logging-Monitoring-Projekt die folgenden IAM-Rollen zu.

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer
    • monitoring.dashboardEditor

Preise

Für die Systemlogs und -messwerte von Anthos fallen keine Gebühren an.

In einem GKE On-Prem-Cluster enthalten die Systemlogs und -messwerte von Anthos Folgendes:

  • Logs und Messwerte aus allen Komponenten in einem Administratorcluster
  • Logs und Messwerte aus Komponenten in diesen Namespaces in einem Nutzercluster:kube-system .gke-system .gke-connect ,knative-serving .istio-system ,monitoring-system .config-management-system ,gatekeeper-system .cnrm-system

Weitere Informationen finden Sie unter Preise für die Operations-Suite von Google Cloud.

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 standardmäßig mit deaktivierten Modulen Prometheus und Grafana erstellt. Informationen zum Aktivieren finden Sie im Installationshandbuch.

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 Administratorsteuerungsebene 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, alle übertragenen Messwertdaten und alle Monitoring-APIs werden über 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.

Nächste Schritte