Logging und Monitoring

Anthos GKE On-Prem (GKE On-Prem) umfasst mehrere Optionen für Cluster-Logging und -Monitoring, einschließlich cloudbasierter verwalteter Dienste, Open-Source-Tools und validierter 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 bereitgestellt.

Optionen für GKE On-Prem

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

  • Cloud Logging und Cloud Monitoring, die von In-Cluster-Agents aktiviert werden, die mit GKE On-Prem bereitgestellt werden.
  • Prometheus und Grafana sind standardmäßig deaktiviert.
  • 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. Es bietet eine vollständig verwaltete Logging-Lösung, Messwerterfassung, Monitoring, Dashboarding und Benachrichtigungen. Cloud Monitoring überwacht GKE On-Prem-Cluster ähnlich wie cloudbasierte GKE-Cluster.

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

  • Nur Systemkomponenten (Standard).
  • Logging und Monitoring sind deaktiviert. Lesen Sie vor der Deaktivierung auf der Supportseite, wie diese für Supportzwecke verwendet werden.

Logging und Monitoring sind die ideale Lösung für Kunden, die eine einzige, einfach zu konfigurierende und leistungsstarke Cloud-basierte Beobachtbarkeitslösung wünschen. Wir empfehlen Logging und Monitoring, wenn Sie Arbeitslasten nur in GKE On-Prem oder Arbeitslasten in GKE und GKE On-Prem ausführen. Bei Anwendungen mit Komponenten, die auf GKE On-Prem und herkömmlichen lokalen Infrastrukturen ausgeführt werden, können Sie andere Lösungen für eine End-to-End-Ansicht dieser Anwendungen in Betracht ziehen.

Prometheus und Grafana

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

  • Prometheus sammelt Anwendungs- und Systemmesswerte.

  • Alertmanager kümmert sich um das Senden von Warnungen mit mehreren verschiedenen Benachrichtigungsmechanismen.

  • Grafana ist ein Dashboard-Tool.

Prometheus und Grafana können auf jedem Administrator- und Nutzercluster aktiviert werden. Prometheus und Grafana werden für Anwendungsteams empfohlen, die bereits Erfahrung mit diesen Produkten haben, oder für Betriebsteams, die Anwendungsmesswerte im Cluster beibehalten möchten, und 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 bestätigte 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

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

  • Benutzerdefinierte Stackdriver-Ressource. Eine 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 Puffer voll ist oder der 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 den Stackdriver Log Aggregator weiterleitet.

  • Stackdriver-Messdaten-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-), eine Bereitstellung, die Metadaten für Kubernetes-Ressourcen wie Pods, Bereitstellungen, Knoten usw. an die Stackdriver Resource Metadata API sendet. Anhand dieser Daten können Sie Messwertabfragen anreichern, indem Sie Abfragen nach Bereitstellungsnamen, Knotennamen oder sogar Kubernetes-Dienstnamen durchführen.

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 installierten Stackdriver-Agents sammeln Daten zu Systemkomponenten gemäß Ihren Einstellungen und Ihrer Konfiguration in einem der folgenden Modi, um Probleme mit Ihren GKE On-Prem-Clustern aufrechtzuerhalten und zu 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 Speicherauslastung) und ähnlicher Metadaten für von Google bereitgestellte Systemkomponenten. Dazu gehören alle Arbeitslasten im Administratorcluster und für Nutzercluster Arbeitslasten in den Namespaces kube-system, gke-system, gke-connect, istio-system und config-management-system.

Stackdriver ist 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 stackdrivers 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, indem ein Dienstkonto verwendet wird, das berechtigt ist, Daten in das Projekt zu schreiben. Stackdriver-Agents können jederzeit wie oben beschrieben deaktiviert werden. Von Stackdriver-Agents erfasste Daten können wie alle anderen Messwert- und Logdaten verwaltet und gelöscht werden, wie in der Cloud Monitoring-Dokumentation beschrieben.

Konfigurationsanforderungen für Logging und Monitoring

Es gibt mehrere Konfigurationsanforderungen, um Cloud Logging und Cloud Monitoring mit GKE On-Prem zu aktivieren. Diese Schritte sind in der Übersicht über die GKE On-Prem-Installation und in der folgenden Liste enthalten:

  1. Im Cloudprojekt muss ein Cloud Monitoring-Arbeitsbereich erstellt werden. Klicken Sie dazu auf Monitoring in der Cloud Console und folgen Sie dem Workflow.
  2. Sie müssen die folgenden Stackdriver APIs aktivieren:

  3. Sie müssen dem Dienstkonto, das von den Stackdriver-Agents verwendet wird, die folgenden Cloud IAM-Rollen zuweisen:

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

Preis

Anthos bietet zusätzliches kostenloses Cloud Logging-Kontingent über dem Standard Kostenloses Cloud Logging-Kontingent.

Weitere Informationen und Informationen zum Guthaben für Cloud Logging-Messwerte erhalten Sie vom Vertrieb.

So funktionieren Prometheus und Grafana für GKE On-Prem

Jeder GKE On-Prem-Cluster wird standardmäßig mit Prometheus und Grafana erstellt. Sie können dem Installationshandbuch folgen, um sie zu aktivieren.

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 verfügt über ein dediziertes PersistentVolume mit vorab zugewiesenem Speicherplatz, um Daten für einen Aufbewahrungszeitraum von vier Tagen anzupassen, sowie einen zusätzlichen Sicherheitspuffer.

Die Administratorsteuerungsebene und jeder Nutzercluster haben einen dedizierten Monitoring-Stack, den Sie unabhängig voneinander konfigurieren können. Jeder Verwaltungs- und Nutzercluster umfasst einen Monitoring-Stack, der eine Reihe von Funktionen 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 nur Clusteradministratoren vorbehalten.

Von Prometheus erfasste Messwerte

Prometheus erfasst die folgenden Messwerte und Metadaten aus der Administratorsteuerungsebene und aus Nutzerclustern:

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

Monitoring mehrerer Cluster

Die auf dem 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:

  • Verwenden Sie ein Grafana-Dashboard, um auf Messwerte aus allen Nutzer- und Administratorclustern zuzugreifen.
  • Messwerte einzelner Nutzercluster in Grafana-Dashboards anzeigen Die Messwerte stehen für direkte Abfragen in voller Auflösung zur Verfügung.
  • Greifen Sie auf die Knoten- und Arbeitslastmesswerte von Nutzerclustern für aggregierte Abfragen, Dashboards und Benachrichtigungen zu. Arbeitslastmesswerte sind auf Arbeitslasten beschränkt, die im kube-system-Namespace ausgeführt werden.
  • Konfigurieren Sie Benachrichtigungen für bestimmte Cluster.

Nächste Schritte