Batch- und Routinglogs rückwirkend

Auf dieser Seite wird beschrieben, wie Sie Logeinträge, die bereits in Cloud Logging-Log-Buckets gespeichert sind, manuell in Cloud Storage-Buckets kopieren. Das Kopieren von Logeinträgen aus Log-Buckets in Cloud Storage-Buckets kann aus folgenden Gründen sinnvoll sein:

  • Falls Sie vergessen haben, Logeinträge vor dem Speichern in Logging an Cloud Storage weiterzuleiten
  • Um Logeinträge für Prüfer außerhalb von Logging freizugeben
  • Um Logeinträge mit Skripts in Cloud Storage zu analysieren

Wenn Sie Logeinträge nach Cloud Storage kopieren, bleiben die Logeinträge auch in dem Log-Bucket erhalten, aus dem sie kopiert wurden

Kopiervorgänge ersetzen keine Senken, die automatisch alle eingehenden Logeinträge an ein vorab ausgewähltes unterstütztes Speicherziel senden, einschließlich Cloud Storage-Buckets. Verwenden Sie Senken, wenn Sie wissen, dass Logeinträge in einem Cloud Storage-Bucket gespeichert werden sollen.

Zum Kopieren von Logs und zum Verwalten und Überwachen des Vorgangs müssen Sie die Google Cloud CLI verwenden.

Beschränkungen

Beim Kopieren von Logeinträgen gelten die folgenden Einschränkungen:

  • Sie können Logs nur in Cloud Storage-Buckets kopieren. Andere Ziele sind nicht verfügbar.

  • Sie können keine Logs aus Log-Buckets kopieren, für die ein CMEK konfiguriert ist.

Hinweise

Bevor Sie mit dem Kopieren von Logs beginnen, gehen Sie so vor:

  • Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Kopieren von Logeinträgen aus Logging und zum Schreiben der Logeinträge in Cloud Storage benötigen:

  • Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Autor von Logkonfigurationen (roles/logging.configWriter) für Ihr Projekt zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Ansehen und Verwalten des Status eines Kopiervorgangs benötigen.

Logeinträge kopieren

Logging kopiert nur Logeinträge, die zu Beginn des Kopiervorgangs im Log-Bucket gespeichert sind. Logeinträge, die nach dem Start des Kopiervorgangs in Log-Buckets gespeichert werden, werden nicht in Cloud Storage kopiert.

Zum Kopieren von Logeinträgen in Cloud Storage benötigen Sie die folgenden Informationen:

  • Die ID und der Speicherort des Log-Buckets, aus dem Sie kopieren. Verwenden Sie zum Abrufen der Log-Bucket-ID und ihres Speicherorts den gcloud CLI-Befehl gcloud logging buckets list.
  • Der Name des Cloud Storage-Bucket, in den Sie kopieren. Weitere Informationen zum Abrufen des Cloud Storage-Bucket-Namens finden Sie unter Cloud Storage-Bucket-Informationen abrufen.
  • Einen Filter für die Logeinträge, die Sie kopieren möchten.

Führen Sie den Befehl gcloud logging copy aus, um Logeinträge zu kopieren:

gcloud logging copy BUCKET_ID storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME \
--location=LOCATION --log-filter='FILTER' --project=PROJECT_ID

Führen Sie die folgenden Schritte aus, bevor Sie den vorherigen Befehl ausführen:

  • Ersetzen Sie BUCKET_ID durch den Namen Ihres Log-Buckets.
  • Ersetzen Sie CLOUD_STORAGE_BUCKET_NAME dabei durch den Namen des Cloud Storage-Buckets.
  • Ersetzen Sie LOCATION durch den Speicherort des Log-Buckets.
  • (Optional): Ersetzen Sie FILTER durch den Filter, der definiert, welche Logs kopiert werden.

  • Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID. Sie können dieses Flag weglassen, wenn die aktive Konfiguration der gcloud CLI auf das richtige Google Cloud-Projekt festgelegt ist.

Beispielbefehl:

gcloud logging copy my-log-bucket storage.googleapis.com/my-gcs-bucket \
--location=global --log-filter='timestamp > "2021-03-18T10:00:00.0Z"' \
--project=my-project

Dieser Befehl erstellt einen Vorgang mit langer Ausführungszeit, der im Hintergrund ausgeführt wird, und gibt den Namen des Kopiervorgangs und den Standort des Log-Buckets zurück:

name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

Der Standort des Kopiervorgangs entspricht dem Standort des Log-Buckets, aus dem Sie Logs kopieren.

Kopiervorgänge anzeigen und verwalten

Mit den gcloud logging operations-Befehlen können Sie Ihre Kopiervorgänge ansehen und verwalten. Damit können Sie Vorgänge auflisten, ansehen und abbrechen.

Für die folgenden Befehle müssen Sie den Speicherort des Vorgangs angeben. Verwenden Sie den Standort Ihres Log-Buckets. Informationen dazu, wie Sie den Standort Ihres Log-Buckets finden, finden Sie unter Details zu einem Bucket ansehen.

Kopiervorgänge auflisten

Sie können aktuelle Kopiervorgänge auflisten, einschließlich geplanter, ausgeführter, abgeschlossener, fehlgeschlagener und abgebrochener Vorgänge. Aktuelle Kopiervorgänge werden bis zu 30 Tage nach dem Ende in den Ergebnissen angezeigt.

Führen Sie den folgenden Befehl aus, um Kopiervorgänge aufzulisten:

gcloud logging operations list --location=LOCATION \
--operation-filter=request_type=CopyLogEntries \
--project=PROJECT_ID

Führen Sie die folgenden Schritte aus, bevor Sie den vorherigen Befehl ausführen:

  • Ersetzen Sie LOCATION durch den Speicherort des Log-Buckets, aus dem Sie Logs kopieren.
  • Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID.

Der Befehl gibt Informationen zum Vorgang mit langer Ausführungszeit zurück, einschließlich der Vorgangs-ID:

projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

Status eines Kopiervorgangs abrufen

Sie können den Status und andere Metadaten zu Kopiervorgängen abrufen, darunter:

  • startTime: Der Zeitstempel, der die Erstellung des Vorgangs angibt
  • endTime: Der Zeitstempel, der den Abschluss des Vorgangs angibt
  • state: Der Status des Vorgangs (geplant, ausgeführt, abgebrochen, fehlgeschlagen oder erfolgreich)
  • cancellation: Gibt an, ob der Nutzer angefordert hat, den Vorgang abzubrechen
  • progress: Geschätzter Fortschritt des Vorgangs (0–100%).
  • destination: Der Name des Cloud Storage-Buckets, in den der Vorgang Logs kopiert
  • filter: Der Filter, der angibt, welche Logeinträge kopiert werden sollen
  • name: Der Name des Log-Buckets, aus dem der Vorgang Logs kopiert.
  • logEntriesCopiedCount: Die Anzahl der Logeinträge, die vom Vorgang erfolgreich in den Cloud Storage-Bucket kopiert wurden

Beachten Sie, dass nicht alle aufgelisteten Metadatenfelder für jeden Kopiervorgang gelten. Wenn beispielsweise ein Kopiervorgang noch ausgeführt wird, gelten die endtime-Metadaten nicht für den Vorgang. Wenn das Flag --log-filter=FILTER beim Ausführen des Befehls gcloud logging copy nicht verwendet wurde, gelten die filter-Metadaten auch nicht für den Vorgang.

Führen Sie den folgenden Befehl aus, um Informationen zu einem Kopiervorgang abzurufen:

gcloud logging operations describe OPERATION_ID \
--location=LOCATION --project=PROJECT_ID

Führen Sie die folgenden Schritte aus, bevor Sie den vorherigen Befehl ausführen:

  • Ersetzen Sie OPERATION_ID durch die ID des Vorgangs.
  • Ersetzen Sie LOCATION durch den Speicherort des Log-Buckets, aus dem Sie Logs kopieren.
  • Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID.

Der Befehl gibt Metadaten zum Kopiervorgang zurück. Hier sehen Sie beispielsweise eine Ausgabe für einen Vorgang, der gerade ausgeführt wird:

done: false
metadata:
  `@type`: type.googleapis.com/google.logging.v2.CopyLogEntriesMetadata
  progress: 75
  destination: storage.googleapis.com/my-storage-bucket-1
  source: projects/my-test-project/locations/us-central1/buckets/my-logging-bucket-2
  verb: copy
  startTime: `2023-05-23T10:52:40.039751Z`
  state: OPERATION_STATE_RUNNING
name: projects/my-test-project/locations/us-central1/buckets/my-logging-bucket-2
   </pre>

Kopiervorgang abbrechen

Sie können einen laufenden Kopiervorgang abbrechen. Wenn Sie einen Kopiervorgang abbrechen, bleiben alle Logeinträge, die vor dem Abbruch des Vorgangs kopiert wurden, im Cloud Storage-Bucket.

Nach dem Abbruch eines Kopiervorgangs schließt Logging alle laufenden Prozesse ab, bevor der Abbruch abgeschlossen wird. Dies kann dazu führen, dass einige Logeinträge nach dem Abbruch des Vorgangs weiterhin in Cloud Storage kopiert werden.

Führen Sie den folgenden Befehl aus, um einen Kopiervorgang abzubrechen:

gcloud logging operations cancel OPERATION_ID \
--location=LOCATION --project=PROJECT_ID

Führen Sie die folgenden Schritte aus, bevor Sie den vorherigen Befehl ausführen:

  • Ersetzen Sie OPERATION_ID durch die ID des Vorgangs.
  • Ersetzen Sie LOCATION durch den Speicherort des Log-Buckets, aus dem Sie Logs kopieren.
  • Ersetzen Sie PROJECT_ID durch Ihre Google Cloud-Projekt-ID.

Logs in Cloud Storage ansehen

Informationen zum Ansehen und Interpretieren der Logs, die Sie nach Cloud Storage kopiert haben, finden Sie unter An Cloud Storage weitergeleitete Logs ansehen.

Kontingente und Limits

Alle Kopiervorgänge dauern mindestens eine Stunde, unabhängig davon, wie viele Daten kopiert werden.

Wenn Sie ein großes Volumen kopieren möchten, z. B. Petabyte, teilen Sie das Kopieren auf mehrere Kopiervorgänge auf. Verwenden Sie dazu das Feld timestamp im Flag --filter.

Preise

Cloud Logging berechnet für die Weiterleitung von Logs an ein unterstütztes Ziel keine Gebühren, dafür können jedoch Gebühren anfallen. Mit Ausnahme des Log-Buckets _Required fallen in Cloud Logging Kosten für das Streamen von Logs in Log-Buckets sowie für die Speicherung über die standardmäßige Aufbewahrungsdauer des Log-Buckets an.

Cloud Logging ist für das Kopieren von Logs oder für Abfragen, die über die Seite Log-Explorer oder die Seite Loganalysen ausgeführt werden, kostenlos.

Weitere Informationen finden Sie in folgenden Dokumenten: