Auf dieser Seite wird erläutert, wie Sie Cloud Logging verwenden, um Logs aus Google Kubernetes Engine-Clustern (GKE) zu sammeln und abzufragen.
Übersicht
Wenn Logging in Ihrem Cluster aktiviert ist, werden Ihre Logs in einem dedizierten, nichtflüchtigen Datenspeicher gespeichert. Ihr Google Cloud-Projekt enthält mehrere Logs, die für den GKE-Cluster relevant sind. Dazu gehören das Administratoraktivitätslog, das Datenzugriffslog und das Ereignislog.
Ein Log ist eine Sammlung von Logeinträgen und jeder Logeintrag gilt für einen bestimmten Ressourcentyp. Im Folgenden sehen Sie die Ressourcentypen, die für GKE-Cluster am relevantesten sind:
Ressourcentyp | Anzeigename |
---|---|
k8s_cluster | Kubernetes-Cluster |
gke_cluster | GKE-Clustervorgänge |
gke_container | GKE-Container |
gke_nodepool | GKE-Knotenpoolvorgänge |
Ausführliche Informationen zu Logeinträgen, die für die Ressourcentypen Kubernetes-Cluster und GKE-Clustervorgänge gelten, finden Sie unter Audit-Logging.
In GKE werden zwar eigene Logs gespeichert, doch die Speicherung dieser Logs ist nicht dauerhaft. GKE-Containerlogs werden zum Beispiel entfernt, wenn der jeweilige Host-Pod entfernt wird, wenn auf dem Laufwerk, auf dem sie gespeichert sind, nicht mehr genügend Speicherplatz vorhanden ist oder wenn sie durch neuere Logs ersetzt werden. Systemlogs werden regelmäßig entfernt, um Platz für neue Logs zu schaffen. Clusterereignisse werden nach einer Stunde entfernt.
GKE bietet einen knotenspezifischen Logging-Agent für Container- und Systemlogs. Dieser liest Containerlogs, fügt nützliche Metadaten hinzu und speichert sie anschließend. Der Logging-Agent sucht in den folgenden Quellen nach Containerlogs:
- Standardausgabe- und Standardfehlerlogs aus containerisierten Prozessen
kubelet
und Containerlaufzeitlogs- Logs für Systemkomponenten wie VM-Startskripts
Für Ereignisse nutzt GKE ein Deployment im Namespace kube-system
, das Ereignisse automatisch erfasst und an Logging sendet.
Logging ist mit dem JSON-Format kompatibel. Logs werden bis zu 30 Tage gespeichert.
Vorbereitung
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 Ihre standardmäßige Computing-Zone fest:
gcloud config set compute/zone [COMPUTE_ZONE]
- Wenn Sie mit regionalen Clustern arbeiten, legen Sie Ihre standardmäßige Computing-Region fest:
gcloud config set compute/region [COMPUTE_REGION]
- Aktualisieren Sie
gcloud
auf die neueste Version:gcloud components update
- Folgen Sie den Anweisungen in der Kurzanleitung für Cloud Logging.
Logging aktivieren
Sie können einen Cluster mit aktiviertem Logging erstellen oder Logging in einem vorhandenen Cluster aktivieren.
Cluster mit Logging erstellen
gcloud
Wenn Sie einen Cluster erstellen, wird automatisch das Flag --enable-cloud-logging
angegeben, das das Logging im Cluster aktiviert.
Wenn Sie dieses Standardverhalten deaktivieren möchten, geben Sie das Flag --no-enable-cloud-logging
an.
Console
Öffnen Sie in der Google Cloud Console die Seite Kubernetes Engine > Kubernetes-Cluster:
Klicken Sie auf Cluster erstellen.
Konfigurieren Sie den Cluster je nach Bedarf.
Klicken Sie auf Advanced options (Erweiterte Optionen). Aktivieren Sie im Abschnitt Additional features (Zusätzliche Funktionen) die Option Enable Stackdriver Logging service (Stackdriver Logging-Dienst aktivieren).
Klicken Sie auf Erstellen.
Logging für einen vorhandenen Cluster aktivieren
gcloud
Führen Sie den folgenden Befehl aus, um das Logging für einen vorhandenen Cluster zu aktivieren. Dabei steht [CLUSTER_NAME] für den Namen des Clusters.
gcloud container clusters update [CLUSTER_NAME] --logging-service logging.googleapis.com
Konsole
Öffnen Sie in der Google Cloud Console die Seite Kubernetes Engine > Kubernetes-Cluster:
Klicken Sie auf Bearbeitenedit.
Legen Sie den Wert im Drop-down-Menü Stackdriver Logging auf Enabled (Aktiviert) fest.
Klicken Sie auf Speichern.
Logs ansehen
Sie können Logs im Log-Explorer der Google Cloud Console aufrufen.
Weitere Informationen zum Anzeigen von Logs sowie zum Erstellen grundlegender und erweiterter Abfragen finden Sie unter Logs ansehen in der Logging-Dokumentation.
Beispielabfragen
Abfragelogs aus Pods mit dem Label
nginx-deployment
:resource.type="container" resource.labels.pod_id:"nginx-deployment-"
Abfragelogs im
prod
-Namespace mit dem SchweregradWARNING
oder höher:resource.type="container" resource.labels.namespace_id="prod" severity>WARNING
Weitere Informationen zu Schweregraden finden Sie unter
Log Severity
.Abfragelogs aus einem bestimmten Container,
my-container
, in einem bestimmten Pod,my-pod
, mit einer Textnutzlast:resource.type="container" resource.labels.container_name="my_container" resource.labels.pod_id="my_pod" textPayload:"abracadabra"
Beschränkungen
Mehrzeilige Einträge (Einträge mit Zeilenvorschubzeichen) werden möglicherweise nicht richtig verarbeitet. Fassen Sie Logs in einzeiligen JSON-Strings zusammen, um dieses Problem zu umgehen.
Logging deaktivieren
gcloud
Führen Sie den folgenden Befehl aus, um Legacy Logging und Monitoring für einen vorhandenen Cluster zu deaktivieren, wobei [CLUSTER_NAME]
der Name des Clusters ist.
gcloud beta container clusters update [CLUSTER_NAME] --logging-service none
Wenn Sie Cloud Operations for GKE in Ihrem Cluster ausführen, müssen Sie sowohl Monitoring als auch Logging deaktivieren. Dazu verwenden Sie gcloud beta
mit den folgenden Flags in Ihrem Cluster:
gcloud beta container clusters update [CLUSTER_NAME] --logging-service none --monitoring-service none
Console
Öffnen Sie in der Google Cloud Console die Seite Kubernetes Engine > Kubernetes-Cluster:
Klicken Sie auf Bearbeitenedit für den Cluster, den Sie ändern möchten.
Legen Sie den Wert im Drop-down-Menü Stackdriver Logging auf Disabled (Deaktiviert) fest.
Klicken Sie auf Speichern.
Nächste Schritte
- Weitere Informationen zu den Kosten der Operations Suite von Google Cloud erhalten Sie unter Preisgestaltung.
- Informationen zu Cloud Logging finden Sie in der Cloud Logging-Dokumentation.
- Weitere Informationen zu den Ressourcen und Diensten der Operations Suite von Google Cloud finden Sie unter Überwachte Ressourcen und Dienste.