Instanzlogs ansehen

Auf dieser Seite wird beschrieben, wie Sie mit Cloud Logging Logs für Ihre Cloud SQL-Instanz aufrufen und abfragen.

Cloud Logging erfasst automatisch Logdaten aus Ihren Cloud SQL-Instanzen. Mit Logging können Sie Ihre Logdaten abfragen, ansehen und analysieren, um Probleme zu beheben und die Beobachtbarkeit zu verbessern. Weitere Informationen finden Sie in der Cloud Logging-Dokumentation und in den Cloud SQL-Beispielabfragen.

Hinweis

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zur Verwendung des Log-Explorers zum Aufrufen von Logeinträgen benötigen:

  • Zum Ansehen von Logeinträgen im Bucket _Required und in der Ansicht _Default im Bucket _Default oder zum Auswählen eines Logbereichs: Loganzeige (roles/logging.viewer) für Ihr Projekt, Ihren Ordner oder Ihre Organisation.
  • So rufen Sie alle Logeinträge in den Buckets _Required und _Default auf: Private Logs Viewer (roles/logging.privateLogViewer) für Ihr Projekt, Ihren Ordner oder Ihre Organisation.

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Logs ansehen

So rufen Sie Logeinträge für Ihre Cloud SQL-Instanz auf:

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud Logging.

    Zu Cloud Logging

  2. Wählen Sie ein Cloud SQL-Projekt aus.
  3. Treffen Sie im Bereich Abfrage die folgende Auswahl:
    • Alle Ressourcen: Wählen Sie Cloud SQL-Datenbank aus. Wählen Sie im Dialogfeld eine Cloud SQL-Instanz aus.
    • Alle Lognamen: Gehen Sie zum Abschnitt „Cloud SQL“ und wählen Sie die entsprechenden Logdateien für Ihre Instanz aus. Beispiel:
      • cloudsql.googleapis.com/postgres.log
    • Alle Schweregrade: Wählen Sie einen Schweregrad aus. Wählen Sie beispielsweise Error aus, um Logs mit einem Schweregrad von mindestens Error aufzurufen.
    • Zeitraumauswahl: Wählen Sie eine voreingestellte Zeitoption aus, geben Sie einen benutzerdefinierten Beginn und ein benutzerdefiniertes Ende an oder zentrieren Sie den Zeitraum um einen bestimmten Zeitstempel.

gcloud

Rufen Sie Logeinträge mit dem Befehl gcloud logging auf. Ersetzen Sie im folgenden Beispiel PROJECT_ID. Das Flag limit ist ein optionaler Parameter, der die maximale Anzahl von zurückzugebenden Einträgen anzeigt.

gcloud logging read "resource.type=cloudsql_database" \
--project=PROJECT-ID \
--limit=10 \
--format=json

Vorgangslog einer Instanz aufrufen

Im Bereich Vorgänge können Sie die Logs für die Instanz aufrufen. Im Bereich Vorgänge werden alle Vorgänge protokolliert, die auf der Instanz ausgeführt wurden. Es werden folgende Informationen angezeigt:

  • Die Uhrzeit (in Ihrer lokalen Zeitzone), zu der der Vorgang abgeschlossen wurde
  • Der Typ des Vorgangs
  • Der Status des Vorgangs
  • Eine Nachricht, die das Ergebnis des Vorgangs beschreibt.

Wenn der Vorgang fehlgeschlagen ist, bietet die Nachricht eine Hilfe für die Fehlerbehebung.

So rufen Sie das Vorgangslog einer Instanz auf:

  1. Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
  3. Rufen Sie den Bereich Vorgänge und Logs auf, um das Vorgangslog anzusehen.
Hinweis: Im Vorgangslog sind keine Vorgänge enthalten, die mithilfe externer Managementtools wie dem psql-Client ausgeführt wurden. Es werden im Vorgangslog nur Vorgänge zur Nutzerverwaltung sowie Passwortänderungen angezeigt, die über die Google Cloud Console, das gcloud-Befehlszeilentool oder die Cloud SQL Admin API ausgeführt wurden.

Anwendungslogs aufrufen.

Anwendungen, die eine Verbindung zu Cloud SQL herstellen, speichern ihre Logs an verschiedenen Orten.

Flexible App Engine-Umgebung

So rufen Sie Logs für Ihre App Engine-Dienste auf:

  1. Rufen Sie in der Google Cloud Console die Seite Dienste von App Engine auf:

    Zu Dienste

  2. Wählen Sie einen Dienst aus der Tabelle aus und klicken Sie in der Spalte Diagnose auf Logs.

    Sie werden zum Log-Explorer weitergeleitet. Dort wird eine Abfrage ausgeführt, die die Logs für Ihren App Engine-Dienst abruft.

Wenn Sie App Engine-Logs im Abschnitt Log-Explorer derGoogle Cloud Console aufrufen möchten, verwenden Sie eine Abfrage wie die folgende:

resource.type="gae_app"
resource.labels.module_id="default"

Cloud Run

Wenn Sie Cloud Run-Logs im Abschnitt Log-Explorer derGoogle Cloud Console aufrufen möchten, verwenden Sie eine Abfrage wie die folgende:

resource.type="cloud_run_revision"
resource.labels.service_name="$SERVICE_NAME"
resource.labels.revision_name="$REVISION_NAME"

Beachten Sie, dass Cloud Run nur Fehlermeldungen vom Cloud SQL Auth-Proxy meldet.

Cloud SQL Auth-Proxy

Wenn Sie Cloud SQL Auth-Proxy-Logs im Abschnitt Log-Explorer derGoogle Cloud Console aufrufen möchten, verwenden Sie eine Abfrage wie die folgende:

log_id("appengine.googleapis.com/cloud-sql-proxy")

Audit-Logs ansehen

Cloud SQL schreibt Cloud-Audit-Logs, um administrative Aktivitäten und Datenzugriffe in Ihren Ressourcen aufzuzeichnen. Sie können die folgenden Arten von Audit-Logs für Cloud SQL-Instanzen aufrufen:

  • Administratoraktivität: Logeinträge, die durch nutzergesteuerte API-Aufrufe oder andere Aktionen geschrieben werden, die die Konfiguration oder Metadaten von Ressourcen ändern. Sie können diese Logs nicht deaktivieren.
  • Datenzugriff: Logeinträge, die von API-Aufrufen geschrieben werden, die die Konfiguration oder Metadaten von Ressourcen lesen. Diese Logs enthalten auch Vorgänge, bei denen von Nutzern bereitgestellte Daten gelesen oder geschrieben werden. Wenn Sie Audit-Logs zum Datenzugriff schreiben möchten, müssen Sie sie aktivieren.
  • Systemereignis: Logeinträge, die von Google Cloud -Systemen und verwalteten Dienst-Agents geschrieben werden, die die Konfiguration von Ressourcen ändern. Sie können diese Logs nicht deaktivieren.

Weitere Informationen zum Aufrufen von Cloud SQL-Audit-Logs, einschließlich einer vollständigen Liste der geprüften Methoden, finden Sie unter Audit-Logging für Cloud SQL for PostgreSQL.

Preise

Weitere Informationen zu den Preisen für Cloud Logging finden Sie in der Cloud Logging-Preisübersicht.

Fehlerbehebung

Problem Fehlerbehebung
Logging beansprucht viel CPU-Leistung und Arbeitsspeicher auf Ihrer Cloud SQL-Instanz. Das Logging muss optimiert werden.

Das Flag log_statement kann auf "none" und das Flag logging_collector auf "off" gesetzt werden. Wenn das Problem mit Logging weiterhin auftritt, können andere logbezogene Flags angepasst werden. Sie können die Instanz bearbeiten und diese Flags ändern.

Audit-Logs wurden nicht gefunden. Logs zum Datenzugriff werden nur geschrieben, wenn der Vorgang ein authentifizierter, nutzergesteuerter API-Aufruf ist, der von Nutzern erstellte Daten erstellt, ändert oder liest, oder wenn der Vorgang auf Konfigurationsdateien oder Metadaten von Ressourcen zugreift.
Vorgangsinformationen wurden nicht in Logs gefunden. Sie möchten weitere Informationen zu einem Vorgang erhalten.

Beispiel: Ein Nutzer wurde gelöscht, aber Sie können nicht sehen, wer ihn gelöscht hat. Die Logs zeigen den gestarteten Vorgang an, enthalten jedoch keine weiteren Informationen. Für die Erfassung detaillierter und personenidentifizierbarer Informationen wie diesen müssen Sie Audit-Logging aktivieren.

Logdateien sind schwer zu lesen. Sie können die Logs alternativ im JSON- oder Textformat aufrufen. Sie können zum Herunterladen der Logs den Befehl gcloud logging read zusammen mit Linux-Nachbearbeitungsbefehlen verwenden.

So laden Sie die Logs im JSON-Format herunter:

gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d" \
> downloaded-log.json
    

So laden Sie die Logs als TEXT herunter:

gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d"| jq -rnc --stream 'fromstream(1|truncate_stream(inputs)) \
| .textPayload' \
--order=asc
> downloaded-log.txt
   
Es wurden keine Abfragelogs in PostgreSQL-Logs gefunden. Sie müssen die pgaudit-Flags aktivieren.
  1. Stellen Sie von einem Terminal eine Verbindung zu Ihrer Datenbank her:
    gcloud sql connect INSTANCE_NAME
          
  2. Führen Sie folgenden Befehl aus, um die Erweiterung zu erstellen:
    CREATE EXTENSION pgaudit;
          
  3. Beenden Sie die Datenbank und führen Sie von einem Terminal folgenden Befehl aus:
    gcloud sql instances patch INSTANCE_NAME \
    --database-flags=cloudsql.enable_pgaudit=on,pgaudit.log=all