Cloud Logging für Storage Transfer Service

Auf dieser Seite wird beschrieben, wie Sie Cloud Logging für Storage Transfer Service-Logs konfigurieren und ansehen.

Cloud Logging für Storage Transfer Service wird für alle Übertragungen unterstützt. FIND-Vorgänge werden für agent-basierte Übertragungen nicht in Logs geschrieben.

Mit Dateisystemübertragungen können zusätzlich Übertragungslogs des Dateisystems konfiguriert werden.

Hinweise

Prüfen Sie zuerst, ob Sie Zugriff auf Cloud Logging haben. Wir empfehlen die Identitäts- und Zugriffsverwaltungsrolle Logbetrachter (roles/logging.viewer). Weitere Informationen zum Logging-Zugriff finden Sie unter Zugriffssteuerung mit IAM.

Im Folgenden wird beschrieben, wie Sie den IAM-Zugriff überprüfen und gewähren:

Protokollierbare Aktionen

Die folgenden Aktionen können protokolliert werden:

  • FIND: Zu erledigende Aufgaben finden, z. B. Dateien in einem Verzeichnis oder Objekte in einem Bucket auflisten Nicht unterstützt für agentenbasierte Übertragungen.
  • COPY: Dateien oder Objekte in Cloud Storage kopieren.
  • DELETE: Dateien oder Objekte an der Quelle oder am Ziel löschen. Bei Übertragungen zwischen zwei Dateisystemen wird auch das Löschen von Dateien aus dem zwischengeschalteten Cloud Storage-Bucket protokolliert.

Für jede Aktion können Sie den Erfolgs- und/oder Fehlerstatus protokollieren.

Logging aktivieren

Geben Sie die zu protokollierenden Aktionen und Status an, um das Logging zu aktivieren.

gcloud-CLI

Verwenden Sie beim Erstellen eines Übertragungsjobs mit gcloud transfer jobs create die folgenden Flags, um das Logging zu aktivieren:

gcloud transfer jobs create SOURCE DESTINATION \
  --log-actions=copy,delete,find \
  --log-action-states=succeeded,failed

Sie müssen für jedes Flag mindestens einen Wert angeben.

REST

Verwenden Sie zum Erstellen einer Logging-Konfiguration transferJobs.create mit einer LoggingConfig:

{
  "name":"transferJobs/myFirstTransfer",
  "status": "ENABLED",
  "projectId": "test-id-001",
  "loggingConfig": {
     "logActions": ["FIND", "DELETE", "COPY"],
     "logActionStates": ["SUCCEEDED", "FAILED"],
  },
  "transferSpec": {
      "awsS3DataSource": {
          "bucketName": "AWS_SOURCE_NAME",
          "awsAccessKey": {
              "accessKeyId": "AWS_ACCESS_KEY_ID",
              "secretAccessKey": "AWS_SECRET_ACCESS_KEY"
          }
      },
      "gcsDataSink": {
           "bucketName": "destination_bucket",
           "path": "foo/bar/"
      },
   }
}

Passen Sie loggingConfig so an, dass die spezifischen logActions und logActionStates enthalten sind, die protokolliert werden sollen. Wenn Sie beispielsweise protokollieren möchten, wenn Aktionen beim Kopieren und Suchen fehlschlagen, geben Sie den folgenden loggingConfig an:

"loggingConfig": {
  "logActions": ["COPY", "FIND"],
  "logActionStates": ["FAILED"],
}

Logging-Konfiguration aktualisieren

gcloud-CLI

Verwenden Sie zum Aktualisieren der Logging-Konfiguration eines vorhandenen Jobs die entsprechenden Flags mit dem Befehl gcloud transfer jobs update:

gcloud transfer jobs update NAME \
  --log-actions=copy,delete,find \
  --log-action-states=succeeded,failed

Geben Sie --clear-log-config an, um das Logging für diesen Job zu deaktivieren:

gcloud transfer jobs update NAME --clear-log-config

REST

Verwenden Sie transferJobs.patch mit LoggingConfig, um die Logging-Konfiguration eines vorhandenen Übertragungsjobs zu aktualisieren:

{
  "projectId": "test-id-001",
  "transferJob": {
    "loggingConfig": {
       "logActions": ["FIND", "DELETE", "COPY"],
       "logActionStates": ["SUCCEEDED", "FAILED"],
    },
  },
  "updateTransferJobFieldMask": "loggingConfig"
}

updateTransferJobFieldMask gibt das Feld an, das in dieser Anfrage aktualisiert wird. Sie ist erforderlich.

Senden Sie ein loggingConfig mit leeren Listen für logActions und logActionStates, um das Logging für diesen Job zu deaktivieren:

{
  "projectId": "test-id-001",
  "transferJob": {
    "loggingConfig": {
       "logActions": [],
       "logActionStates": [],
    },
  },
  "updateTransferJobFieldMask": "loggingConfig"
}

Logs ansehen

So rufen Sie Übertragungslogs auf:

Google Cloud Console

  1. Rufen Sie das Google Cloud-Navigationsmenü auf und wählen Sie Logging > Log-Explorer aus:<br\></br\>

    Zu „Log-Explorer“

  2. Wählen Sie ein Google Cloud-Projekt aus.

  3. Wechseln Sie im Menü Upgrade von Legacy-Loganzeige zu Log-Explorer.

  4. Wenn Sie Ihre Logs so filtern möchten, dass nur Storage Transfer Service-Einträge angezeigt werden, geben Sie in das Abfragefeld storage_transfer_job ein und klicken Sie auf Abfrage ausführen.

  5. Klicken Sie im Bereich Abfrageergebnisse auf Zeit bearbeiten, um den Zeitraum zu ändern, für den Ergebnisse zurückgegeben werden sollen.

Informationen zur Verwendung des Log-Explorers finden Sie unter Log-Explorer verwenden.

gcloud-CLI

Wenn Sie mit der gcloud CLI nach Storage Transfer Service-Logs suchen möchten, verwenden Sie den Befehl gcloud logging read.

Geben Sie einen Filter an, um Ihre Ergebnisse auf Storage Transfer Service-Logs zu beschränken.

gcloud logging read "resource.type=storage_transfer_job"

Cloud Logging API

Verwenden Sie die Cloud Logging API-Methode entries.list.

Verwenden Sie das Feld filter, um Ihre Ergebnisse so zu filtern, dass nur Einträge in Storage Transfer Service enthalten sind. Unten finden Sie ein Beispiel für ein JSON-Anfrageobjekt.

{
"resourceNames":
  [
    "projects/my-project-name"
  ],
  "orderBy": "timestamp desc",
  "filter": "resource.type=\"storage_transfer_job\""
}

Format von Übertragungslogs

Im folgenden Abschnitt werden die Felder für Storage Transfer Service-Logs beschrieben:

Alle Storage Transfer Service-spezifischen Felder sind in einem jsonPayload-Objekt enthalten.

FIND Aktion

{
  "jsonPayload": {
    "@type": "type.googleapis.com/google.storagetransfer.logging.TransferActivityLog",
    "action": "FIND",
    "completeTime": "2021-12-16T18:58:49.344509695Z",
    "destinationContainer": {
      "gcsBucket": {
        "bucket": "my-bucket-2",
      },
      "type": "GCS",
    },
    "operation": "transferOperations/transferJobs-7876027868280507149--3019866490856027148",
    "sourceContainer": {
      "gcsBucket": {
        "bucket": "my-bucket-1"
      },
      "type": "GCS"
    },
    "status": {
      "statusCode": "OK"
    }
  }
}

COPY- und DELETE-Aktionen

{
  "jsonPayload": {
    "@type": "type.googleapis.com/google.storagetransfer.logging.TransferActivityLog",
    "action": "COPY",
    "completeTime": "2021-12-16T18:59:00.510509049Z",
    "destinationObject": {
      "gcsObject": {
        "bucket": "my-bucket-2",
        "objectKey": "README.md"
      },
      "type": "GCS",
    },
    "operation": "transferOperations/transferJobs-7876027868280507149--3019866490856027148",
    "sourceObject": {
      "gcsObject": {
        "bucket": "my-bucket-1",
        "lastModifiedTime": "2021-12-07T16:41:09.456Z",
        "md5": "WgnCOIdfCXNTUDpQJSKb2w==",
        "objectKey": "README.md",
      },
      "type": "GCS",
    },
    "status": {
      "statusCode": "OK"
    }
  }
}
Logfeld Beschreibung
@type Der Wert ist immer type.googleapis.com/google.storagetransfer.logging.TransferActivityLog.
action

Beschreibt die Aktion dieser bestimmten Aufgabe. Beispiele:

  • FIND: Zu suchende Aufgaben finden, z. B. zum Auflisten von Dateien in einem Verzeichnis oder zum Auflisten von Objekten in einem Bucket. Nicht für agentenbasierte Übertragungen gemeldet.
  • COPY: Dateien oder Objekte in Cloud Storage kopieren.
  • DELETE: Löschen von Dateien oder Objekten am Quell-, Ziel- oder Zwischen-Bucket.
completeTime Der ISO 8601-konforme Zeitstempel, zu dem der Vorgang abgeschlossen wurde.
destinationContainer

Nur für FIND Vorgänge vorhanden. FIND-Vorgänge werden für agent-basierte Übertragungen nicht protokolliert.

Der Zielcontainer für diese Übertragung. Enthält zwei Unterfelder:

  • gcsBucket.bucket: Der Name des Cloud Storage-Ziel-Buckets.
  • type: Immer GCS.
destinationObject

Nur für COPY- und DELETE-Vorgänge vorhanden.

Informationen zum Objekt am Ziel. Enthält zwei Unterfelder:

  • Entweder gcsObject oder posixFile, je nach Ziel. Beide Optionen enthalten mehrere Unterfelder, in denen der Standort, das Datum und die Uhrzeit sowie der Hash des Objekts oder der Datei angegeben werden.
  • type ist entweder GCS oder POSIX_FS.

Beispiel:

"destinationObject": {
  "type": "POSIX_FS",
  "posixFile": {
    "crc32c": "0",
    "path": "/tmp/data/filename.txt",
    "lastModifiedTime": "2022-09-22T04:33:45Z"
  }
}
operation Der vollständig qualifizierte transferOperations-Name.
sourceContainer

Nur für FIND Vorgänge vorhanden. FIND-Vorgänge werden für agent-basierte Übertragungen nicht protokolliert.

Der Quellcontainer für diese Übertragung. Enthält zwei Unterfelder:

  • Ein Eintrag, der den Quellspeicherort angibt. Das Feld wird entsprechend dem Quelltyp benannt. Mögliche Felder sind:
    • awsS3Bucket.bucket: Der Name des AWS S3-Buckets.
    • azureBlobContainer: Enthält untergeordnete Felder account und container, die zusammen den Microsoft Azure Blob-Speicher-URI definieren.
    • gcsBucket.bucket: der Name des Cloud Storage-Buckets.
    • httpManifest.url: Die URL einer URL-Liste mit öffentlich verfügbaren Dateien, die von einem HTTP(S)-Server heruntergeladen werden können.
  • type ist wahlweise AWS_S3, AZURE_BLOB, GCS oder HTTP.

Beispiel:

"sourceContainer": {
  "gcsBucket": {
    "bucket": "my-bucket-1"
  }
  type: "GCS"
}
sourceObject

Nur für COPY- und DELETE-Vorgänge vorhanden.

Informationen zum Quellobjekt. Enthält zwei Unterfelder:

  • Ein Eintrag, der für den Host des Quellobjekts spezifisch ist. Das Feld ist nach dem Quelltyp benannt und enthält Unterfelder für Metadaten. Mögliche Felder sind:
    • awsS3Object: Ein AWS-S3-Objekt.
    • azureBlob: Eine Datei in Azure Blob Storage.
    • gcsObject: Ein Cloud Storage-Objekt.
    • httpFile: Eine Datei, die durch eine URL-Liste angegeben wurde.
    • posixFile: Eine Datei in einem POSIX-Dateisystem.
  • type ist AWS_S3, AZURE_BLOB, GCS, HTTP oder POSIX_FS.

Beispiel:

"sourceObject": {
  "gcsObject": {
    "bucket": "my-bucket-1"
    "lastModifiedTime": "2021-12-07T16:41:09.456Z"
    "md5": "WgnCOIdfCXNTUDpQJSKb2w=="
    "objectKey": "README.md"
  }
  type: "GCS"
}
status

Der Status der Aktion. Wenn status.statusCode den Wert OK hat, war die Aktion erfolgreich. Andernfalls ist die Aktion fehlgeschlagen. Die Felder status.errorType und status.errorMessage werden nur ausgefüllt, wenn der Status nicht OK lautet.

Außerdem enthält das übergeordnete Feld resource die folgenden Felder.

"resource": {
  "labels": {
    "job_id": "transferJobs/7876027868280507149"
    "project_id": "my-project-id"
  }
  "type": "storage_transfer_job"
}
Logfeld Beschreibung
resource.labels.job_id Der Name des Storage Transfer Service-Jobs, zu dem dieses Log gehört.
resource.labels.project_id Die Google Cloud-Projekt-ID für diese Übertragung.