Cloud Logging

Auf dieser Seite wird erläutert, wie Sie Cloud Logging verwenden, um Logs aus Google Kubernetes Engine-Clustern (GKE) zu sammeln und abzufragen.

Überblick

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.
  • Aktivieren Sie Google Kubernetes Engine API
  • Prüfen Sie, ob das Cloud SDK installiert ist.
  • Geben Sie Ihre standardmäßige Projekt-ID an:
    gcloud config set project [PROJECT_ID]
  • Wenn Sie mit zonalen Clustern arbeiten, legen Sie die Standardzone für Compute Engine fest:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Wenn Sie mit regionalen Clustern arbeiten, legen Sie die Standardregion für Compute Engine fest:
    gcloud config set compute/region [COMPUTE_REGION]
  • Aktualisieren Sie gcloud auf die neueste Version:
    gcloud components update

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

  1. Öffnen Sie in der Cloud Console die Seite Kubernetes Engine > Kubernetes-Cluster:

    Zur Seite "Kubernetes-Cluster"

  2. Klicken Sie auf Cluster erstellen.

  3. Konfigurieren Sie den Cluster je nach Bedarf.

  4. 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).

  5. 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

Console

  1. Wechseln Sie in der Cloud Console zur Seite Kubernetes Engine > Kubernetes-Cluster:

    Zur Seite "Kubernetes-Cluster"

  2. Klicken Sie auf Bearbeiten.

  3. Legen Sie den Wert im Drop-down-Menü Stackdriver Logging auf Enabled (Aktiviert) fest.

  4. Klicken Sie auf Speichern.

Logs ansehen

Sie können Logs in der Stackdriver-Loganzeige der Google Cloud Console einsehen.

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 Schweregrad WARNING 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 Kubernetes Engine Operations in Ihrem Cluster ausführen, müssen Sie sowohl Monitoring als auch Logging deaktivieren. Dazu legen Sie mit gcloud beta die folgenden Flags im Cluster fest:

gcloud beta container clusters update [CLUSTER_NAME] --logging-service none --monitoring-service none

Console

  1. Öffnen Sie in der Cloud Console die Seite Kubernetes Engine > Kubernetes-Cluster:

    Zur Seite "Kubernetes-Cluster"

  2. Klicken Sie auf Bearbeiten für den Cluster, den Sie ändern möchten.

  3. Legen Sie den Wert im Drop-down-Menü Stackdriver Logging auf Disabled (Deaktiviert) fest.

  4. Klicken Sie auf Speichern.

Weitere Informationen