Instanzlogs ansehen

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

Cloud SQL verwendet Cloud Logging. Ausführliche Informationen finden Sie in der Cloud Logging-Dokumentation und in den Cloud SQL-Beispielabfragen.

Logs ansehen

So rufen Sie Logs für die Logeinträge Ihrer Cloud SQL-Instanz auf:

Console

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

    Zu Cloud Logging

  2. Wählen Sie oben auf der Seite ein vorhandenes Cloud SQL-Projekt aus.
  3. Fügen Sie im Query Builder Folgendes hinzu:
    • Ressource: Wählen Sie Cloud SQL-Datenbank aus. Wählen Sie im Dialogfeld eine Cloud SQL-Instanz aus.
    • Lognamen: Scrollen Sie zum Abschnitt "Cloud SQL" und wählen Sie die entsprechenden Logdateien für Ihre Instanz aus. Beispiel:
      • cloudsql.googleapis.com/postgres.log
    • Schweregrad: Wählen Sie eine Logebene aus.
    • Zeitraum: Wählen Sie eine Voreinstellung aus oder erstellen Sie einen benutzerdefinierten Zeitraum.

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 mit dem Ergebnis des Vorgangs

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

So rufen Sie das Vorgangslog einer Instanz auf:

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Seite Übersicht einer Instanz zu öffnen.
  3. Klicken Sie auf Vorgänge, um zu dem Bereich mit dem Vorgangslog zu wechseln.
Hinweis: Im Vorgangslog sind keine Vorgänge enthalten, die mithilfe externer Verwaltungstools 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

Gehen Sie unter Compute > App Engine > Dienste so vor:

  • Suchen Sie in der Liste der Dienste Ihren Dienst.
  • Klicken Sie auf das Drop-down-Menü Tools.
  • Logs auswählen

Verwenden Sie in der Google Cloud Console im Abschnitt Vorgänge > Logging > Log-Explorer die folgende Abfrage:

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

Cloud Run

Sehen Sie sich die Logs im Cloud Run-Abschnitt Log-Explorer der Google Cloud Console an. Beachten Sie, dass Cloud Run nur Fehlermeldungen vom Cloud SQL Auth-Proxy meldet. Verwenden Sie eine Abfrage wie die folgende:

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

Cloud SQL Auth-Proxy

Verwenden Sie unter Vorgänge > Logging > Log-Explorer die folgende Abfrage:

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

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