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

Sie können SQL-Abfragen, die auf der Datenbankinstanz ausgeführt werden, in der allgemeinen Logdatei ansehen, einschließlich SQL-Abfragen, die von Endnutzern direkt ausgeführt werden. Dazu aktivieren Sie das Flag general_log. Setzen Sie das Flag log_output auf FILE.

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/mysql-general.log
      • cloudsql.googleapis.com/mysql.err
    • 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 mysql-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
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.

Logging beansprucht viel Speicherplatz. Es gibt drei Arten von Logdateien, die Speicherplatz belegen: Redo-Logs, allgemeine Logs und binäre Logs.

Stellen Sie eine Verbindung zur Datenbank her und führen Sie die folgenden Befehle aus, um Details zu den einzelnen Arten zu erhalten:

SHOW VARIABLES LIKE 'innodb_log_file%';

SELECT ROUND(SUM(LENGTH(argument)/POW(1024,2),2)
AS GB from mysql.general_log;

SHOW BINARY LOGS;
    
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