Cloud Logging für Python einrichten

Sie können Logs von Python-Anwendungen mit dem standardmäßigen Logging-Handler von Python oder direkt über die Cloud Logging API-Clientbibliothek für Python in Cloud Logging schreiben. Wenn Sie den standardmäßigen Python-Logging-Handler verwenden, müssen Sie einen Cloud Logging-Handler an den Python-Root-Handler anhängen. Dieses Dokument veranschaulicht diesen Ansatz.

Hinweise

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Cloud Logging API aktivieren.

    Aktivieren Sie die API

  5. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  6. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  7. Cloud Logging API aktivieren.

    Aktivieren Sie die API

  8. Bereiten Sie Ihre Umgebung für die Python-Entwicklung vor.

    Einrichtungsleitfaden für Python aufrufen

Bibliothek installieren

Informationen zum Installieren der Cloud Logging-Bibliothek für Python finden Sie unter Clientbibliothek für Python installieren. Mit dieser Bibliothek können Sie einen Cloud Logging-Handler an den standardmäßigen Python-Root-Handler anhängen. Sie können diese Bibliothek auch verwenden, um API-Anfragen an Cloud Logging zu senden.

Weitere Informationen zur Installation erhalten Sie in der Dokumentation zur Cloud Logging-Bibliothek für Python. Probleme können Sie über die Problemverfolgung melden.

Logs mit dem standardmäßigen Python-Logging-Handler schreiben

So senden Sie alle Logeinträge, die mit dem standardmäßigen Python-Root-Handler geschrieben wurden, an Cloud Logging:

  1. Hängen Sie den Cloud Logging-Handler an den Python-Root-Logger an, indem Sie die Methode setup_logging aufrufen:

    # Imports the Cloud Logging client library
    import google.cloud.logging
    
    # Instantiates a client
    client = google.cloud.logging.Client()
    
    # Retrieves a Cloud Logging handler based on the environment
    # you're running in and integrates the handler with the
    # Python logging module. By default this captures all logs
    # at INFO level and higher
    client.setup_logging()

    Informationen zum Konfigurieren des Logging-Handlers finden Sie unter Einbindung in die Logging-Standardbibliothek.

  2. Schreiben Sie Logdaten mit dem Python-Root-Logger:

    # Imports Python standard library logging
    import logging
    
    # The data to log
    text = "Hello, world!"
    
    # Emits the data using the standard logging module
    logging.warning(text)

    Standardmäßig wird jedes von Ihrer Anwendung geschriebene Log mit mindestens INFO an Cloud Logging gesendet.

    Wenn Nachrichten von App Engine oder Google Kubernetes Engine in Logging protokolliert werden, sendet der Handler sie an die entsprechenden Ressourcentypen dieser Umgebungen. Andernfalls werden die Logs unter dem Log python im Ressourcentyp Global aufgeführt.

Logs mit der Cloud Logging-Clientbibliothek schreiben

Informationen zur direkten Verwendung der Cloud Logging-Clientbibliothek für Python finden Sie unter Cloud Logging-Clientbibliotheken.

In Google Cloud ausführen

Damit eine Anwendung Logs mithilfe der Cloud Logging-Bibliothek für Python schreiben kann, muss das Dienstkonto für die zugrunde liegende Ressource die IAM-Rolle Logautor (roles/logging.logWriter) haben. In den meisten Google Cloud-Umgebungen wird das Standarddienstkonto automatisch für diese Rolle konfiguriert.

App Engine

Cloud Logging ist für App Engine automatisch aktiviert und das Standarddienstkonto Ihrer Anwendung hat standardmäßig die IAM-Berechtigungen zum Schreiben von Logeinträgen.

Weitere Informationen finden Sie unter Logs schreiben und ansehen.

Google Kubernetes Engine (GKE)

GKE weist dem Standarddienstkonto automatisch die IAM-Rolle Logautor (roles/logging.logWriter) zu. Wenn Sie Workload Identity mit diesem Standarddienstkonto verwenden, damit Arbeitslasten auf bestimmte Google Cloud APIs zugreifen können, ist keine zusätzliche Konfiguration erforderlich. Wenn Sie Workload Identity jedoch mit einem benutzerdefinierten IAM-Dienstkonto verwenden, muss das benutzerdefinierte Dienstkonto die Rolle „Logautor“ (roles/logging.logWriter) haben.

Bei Bedarf können Sie auch den folgenden Befehl verwenden, um beim Erstellen des Clusters den Zugriffsbereich logging.write hinzuzufügen:

gcloud container clusters create example-cluster-name \
    --scopes https://www.googleapis.com/auth/logging.write

Compute Engine

Wenn Sie Compute Engine-VM-Instanzen verwenden, fügen Sie der jeweiligen Instanz den Zugriffsbereich für cloud-platform hinzu. Wenn Sie eine neue Instanz über die Google Cloud Console erstellen, können Sie dies im Bereich Instanz erstellen im Abschnitt Identität und API-Zugriff tun. Verwenden Sie das Compute Engine-Standarddienstkonto oder ein anderes Dienstkonto und wählen Sie im Abschnitt Identität und API-Zugriff die Option Uneingeschränkten Zugriff auf alle Cloud APIs zulassen aus. Achten Sie darauf, dass jedem ausgewählten Dienstkonto im Bereich IAM & Verwaltung der Google Cloud Console die Rolle „Logautor“ zugewiesen ist.

Lokal und extern ausführen

Wenn Sie die Cloud Logging-Bibliothek für Python außerhalb von Google Cloud verwenden möchten, beispielsweise auf Ihrer eigenen Workstation, auf den Computern Ihres Rechenzentrums oder auf den VM-Instanzen eines anderen Cloud-Anbieters, müssen Sie Ihre Google Cloud-Projekt-ID und die entsprechenden Anmeldedaten für das Dienstkonto direkt in der Cloud Logging-Bibliothek für Python angeben.

Gehen Sie bei vorhandenen Dienstkonten so vor:

  1. Gewähren Sie dem Dienstkonto die IAM-Rolle Logautor (roles/logging.logWriter). Weitere Informationen zu IAM-Rollen finden Sie unter Zugriffssteuerung.

  2. Standardanmeldedaten für Anwendungen einrichten

Wenn Sie noch kein Dienstkonto haben, erstellen Sie eines. Informationen zu diesem Prozess finden Sie unter Dienstkonten erstellen.

Allgemeine Informationen zu den Authentifizierungsmethoden finden Sie unter Terminologie: Dienstkonten.

Logs ansehen

Wählen Sie im Navigationsbereich der Google Cloud Console Logging und anschließend Log-Explorer aus:

Zum Log-Explorer

Im Log-Explorer müssen Sie eine oder mehrere Ressourcen angeben. Die Auswahl der Ressourcen ist jedoch möglicherweise nicht offensichtlich. Hier sind ein paar Tipps für den Einstieg.

  • Wenn Sie Ihre Anwendung für App Engine bereitstellen oder die App Engine-spezifischen Bibliotheken verwenden, setzen Sie die Ressource auf GAE-Anwendung.

  • Wenn Sie Ihre Anwendung auf der Compute Engine bereitstellen, setzen Sie die Ressource auf GCE-VM-Instanz.

  • Wenn Sie Ihre Anwendung in Google Kubernetes Engine bereitstellen, wird der Ressourcentyp der Logeinträge von der Loggingkonfiguration des Clusters bestimmt. Eine ausführliche Erläuterung der Legacy-Lösungen für die Beobachtbarkeit von Google Cloud und von Kubernetes Monitoring für die Beobachtbarkeit von Google Cloud sowie zu den Auswirkungen dieser Optionen auf den Ressourcentyp finden Sie unter Zu Google Cloud-Kubernetes Monitoring für die Beobachtbarkeit migrieren.

  • Wenn Ihre Anwendung die Cloud Logging API direkt nutzt, ist die Ressource von der API und Ihrer Konfiguration abhängig. Sie können in Ihrer Anwendung zum Beispiel eine Ressource angeben oder eine Standardressource verwenden.

  • Wenn im Log-Explorer keine Logs zu sehen sind, wechseln Sie zum erweiterten Abfragemodus und verwenden Sie eine leere Abfrage, um alle Logeinträge zu sehen.

    1. Klicken Sie oben im Log-Explorer auf das Dreipunkt-Menü (▾) und wählen Sie In erweiterten Filter umwandeln aus, um zum erweiterten Abfragemodus zu wechseln.
    2. Löschen Sie den Inhalt, der im Filterfeld angezeigt wird.
    3. Klicken Sie auf Filter senden.

    Sie können die einzelnen Einträge prüfen, um Ihre Ressourcen zu identifizieren.

Weitere Informationen finden Sie unter Log-Explorer verwenden.