Cloud Logging per Storage Transfer Service

Questa pagina descrive come configurare e visualizzare i log di Cloud Logging per Storage Transfer Service.

Cloud Logging per Storage Transfer Service è supportato per tutti i trasferimenti. Le operazioni FIND non vengono registrate per i trasferimenti basati su agente.

I trasferimenti di file system possono configurare inoltre i log di trasferimento del file system.

Prima di iniziare

Prima di iniziare, verifica di avere accesso a Cloud Logging. Consigliamo il ruolo Visualizzatore log (roles/logging.viewer) Identity and Access Management. Per ulteriori informazioni sull'accesso a Logging, consulta Controllo dell'accesso con IAM.

Di seguito viene descritto come verificare e concedere l'accesso IAM:

Azioni registrabili

È possibile registrare le seguenti azioni:

  • FIND: trovare un lavoro da fare, ad esempio elencare i file in una directory o gli oggetti in un bucket. Non supportata per i trasferimenti basati su agente.
  • COPY: copia di file o oggetti in Cloud Storage.
  • DELETE: eliminazione di file o oggetti nell'origine o nella destinazione. Per i trasferimenti tra due file system, registra anche l'eliminazione dei file dal bucket Cloud Storage intermediario.

Per ogni azione, puoi scegliere di registrare gli stati di operazione riuscita e/o non riuscita.

Abilita il logging

Per abilitare il logging, specifica le azioni e gli stati da registrare.

Interfaccia a riga di comando gcloud

Quando crei un job di trasferimento con gcloud transfer jobs create, utilizza i seguenti flag per abilitare il logging:

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

Devi specificare almeno un valore per ogni flag.

REST

Per creare una configurazione di logging, utilizza transferJobs.create con un 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/"
      },
   }
}

Modifica loggingConfig in modo da includere i valori logActions e logActionStates specifici da registrare. Ad esempio, per registrare i casi in cui le azioni di copia e ricerca non vanno a buon fine, fornisci quanto segue: loggingConfig:

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

Aggiorna una configurazione di logging

Interfaccia a riga di comando gcloud

Per aggiornare la configurazione del logging di un job esistente, utilizza i flag appropriati con il comando gcloud transfer jobs update:

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

Per disabilitare il logging per questo job, specifica --clear-log-config:

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

REST

Per aggiornare la configurazione di logging di un job di trasferimento esistente, utilizza transferJobs.patch con LoggingConfig:

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

updateTransferJobFieldMask specifica il campo che viene aggiornato in questa richiesta ed è obbligatorio.

Per disabilitare il logging per questo job, invia un loggingConfig con elenchi vuoti per logActions e logActionStates:

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

Visualizza i log

Per visualizzare i log di trasferimento, segui questi passaggi:

Console Google Cloud

  1. Vai al menu di navigazione di Google Cloud e seleziona Logging > Esplora log :<br\></br\>

    Vai a Esplora log

  2. Seleziona un progetto Google Cloud.

  3. Dal menu Upgrade, passa da Visualizzatore log legacy a Esplora log.

  4. Per filtrare i log in modo da visualizzare solo le voci di Storage Transfer Service, digita storage_transfer_job nel campo della query e fai clic su Esegui query.

  5. Nel riquadro Risultati delle query, fai clic su Modifica ora per modificare il periodo di tempo per cui restituire i risultati.

Per ulteriori informazioni sull'utilizzo di Esplora log, consulta Utilizzo di Esplora log.

Interfaccia a riga di comando gcloud

Per utilizzare gcloud CLI per cercare i log di Storage Transfer Service, utilizza il comando gcloud logging read.

Specifica un filtro per limitare i risultati ai log di Storage Transfer Service.

gcloud logging read "resource.type=storage_transfer_job"

API Cloud Logging

Utilizza il metodo dell'API Cloud Logging entries.list.

Per filtrare i risultati in modo da includere solo le voci correlate a Storage Transfer Service, utilizza il campo filter. Di seguito è riportato un oggetto di richiesta JSON di esempio.

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

Formato dei log di trasferimento

La sezione seguente descrive i campi per i log di Storage Transfer Service.

Tutti i campi specifici di Storage Transfer Service sono contenuti in un oggetto jsonPayload.

FIND azioni

{
  "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 e DELETE azioni

{
  "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"
    }
  }
}
Campo log Descrizione
@type Il valore è sempre type.googleapis.com/google.storagetransfer.logging.TransferActivityLog.
action

Descrive l'azione di questa specifica attività. Il valore sarà uno dei seguenti:

  • FIND: trovare il lavoro da fare, ad esempio elencare i file in una directory o elencare gli oggetti in un bucket. Non indicato per i trasferimenti basati su agente.
  • COPY: copia di file o oggetti in Cloud Storage.
  • DELETE: eliminazione di file o oggetti nell'origine, nella destinazione o nel bucket intermediario.
completeTime Il timestamp conforme allo standard ISO 8601 in cui è stata completata l'operazione.
destinationContainer

Presente solo per le operazioni FIND. Le operazioni FIND non vengono registrate per i trasferimenti basati su agente.

Il container di destinazione per questo trasferimento. Contiene due sottocampi:

  • gcsBucket.bucket: il nome del bucket Cloud Storage di destinazione.
  • type: sempre GCS.
destinationObject

Presenta solo per le operazioni COPY e DELETE.

Informazioni sull'oggetto nella destinazione. Contiene due sottocampi:

  • gcsObject o posixFile, a seconda della destinazione. Entrambe le opzioni contengono più sottocampi che specificano la posizione, le informazioni di data/ora e l'hash dell'oggetto o del file.
  • type è uno dei valori GCS o POSIX_FS.

Ad esempio:

"destinationObject": {
  "type": "POSIX_FS",
  "posixFile": {
    "crc32c": "0",
    "path": "/tmp/data/filename.txt",
    "lastModifiedTime": "2022-09-22T04:33:45Z"
  }
}
operation Il nome completo di transferOperations.
sourceContainer

Presente solo per le operazioni FIND. Le operazioni FIND non vengono registrate per i trasferimenti basati su agente.

Il contenitore di origine per questo trasferimento. Contiene due sottocampi:

  • Una voce che specifica la località di origine. Il nome del campo viene definito in base al tipo di origine. I campi possibili sono i seguenti.
    • awsS3Bucket.bucket: il nome del bucket AWS S3.
    • azureBlobContainer: contiene i sottocampi account e container, che insieme definiscono l'URI di archiviazione BLOB di Microsoft Azure.
    • gcsBucket.bucket: il nome del bucket Cloud Storage.
    • httpManifest.url: l'URL di un elenco di URL che specifica i file disponibili pubblicamente da scaricare da un server HTTP(S).
  • type è uno tra AWS_S3, AZURE_BLOB, GCS o HTTP.

Ad esempio:

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

Presenta solo per le operazioni COPY e DELETE.

Informazioni sull'oggetto di origine. Contiene due sottocampi:

  • Una voce specifica dell'host dell'oggetto di origine. Il campo viene denominato in base al tipo di origine e contiene campi secondari per i metadati. I campi possibili sono i seguenti.
    • awsS3Object: un oggetto AWS S3.
    • azureBlob: un file in Archiviazione BLOB di Azure.
    • gcsObject: un oggetto Cloud Storage.
    • httpFile: un file specificato da un elenco di URL.
    • posixFile: un file in un file system POSIX.
  • type è uno dei seguenti: AWS_S3, AZURE_BLOB, GCS, HTTP o POSIX_FS.

Ad esempio:

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

Lo stato dell'azione. Se status.statusCode è OK, l'azione è riuscita. In caso contrario, l'azione non è riuscita. I campi status.errorType e status.errorMessage vengono compilati solo se lo stato non è OK.

Inoltre, il campo resource di primo livello contiene i seguenti campi.

"resource": {
  "labels": {
    "job_id": "transferJobs/7876027868280507149"
    "project_id": "my-project-id"
  }
  "type": "storage_transfer_job"
}
Campo log Descrizione
resource.labels.job_id Il nome del job di Storage Transfer Service a cui appartiene questo log.
resource.labels.project_id L'ID progetto Google Cloud per questo trasferimento.