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 senza agente e per i trasferimenti dallo spazio di archiviazione compatibile con S3. Per informazioni sui log di trasferimento del file system, consulta Log dei trasferimenti 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.

Quanto segue descrive come verificare e concedere l'accesso IAM:

Azioni registrabili

Puoi registrare le seguenti azioni:

  • FIND: ricerca del lavoro da fare, ad esempio elencare i file in una directory o elencare gli oggetti in un bucket. Non supportato per i trasferimenti da uno spazio di archiviazione compatibile con S3.
  • COPY: copia di file o oggetti in Cloud Storage.
  • DELETE: eliminazione di file o oggetti nell'origine o nella destinazione.

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

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 logActions e logActionStates specifici da registrare. Ad esempio, per registrare quando le azioni di copia e ricerca non vanno a buon fine, fornisci il seguente loggingConfig:

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

Aggiorna una configurazione di logging

Interfaccia a riga di comando gcloud

Per aggiornare la configurazione di 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:

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 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 log di trasferimento

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

Tutti i campi specifici di Storage Transfer Service sono contenuti in un campo 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: ricerca del lavoro da fare, ad esempio elencare i file in una directory o elencare gli oggetti in un bucket. Non disponibile per i trasferimenti dallo spazio di archiviazione compatibile con S3.
  • COPY: copia di file o oggetti in Cloud Storage.
  • DELETE: eliminazione di file o oggetti nell'origine o nella destinazione.
completeTime Il timestamp conforme allo standard ISO 8601 in cui è stata completata l'operazione.
destinationContainer

Presenta solo per le operazioni FIND.

Il container di destinazione per questo trasferimento. Solo i bucket Cloud Storage sono supportati per il logging. Contiene due campi secondari:

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

Presente solo per le operazioni COPY e DELETE.

Informazioni sull'oggetto così come è stato scritto in Cloud Storage. Contiene due campi secondari:

  • gcsObject, che a sua volta contiene due sottocampi, bucket e objectKey. Insieme, definiscono il percorso Cloud Storage dell'oggetto.
  • type è sempre GCS.

Ad esempio:


destinationObject: {
  gcsObject: {
    bucket: "my-bucket-2"
    objectKey: "README.md"
  }
  type: "GCS"
}
operation Il nome completo di transferOperations.
sourceContainer

Presenta solo per le operazioni FIND.

Il contenitore di origine per questo trasferimento. Contiene due campi secondari:

  • Una voce che specifica la posizione di origine. Il campo viene denominato in base al tipo di origine. I campi possibili sono i seguenti.
    • awsS3Bucket.bucket: il nome del bucket AWS S3.
    • azureBlobContainer: contiene i campi secondari 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

Presente solo per le operazioni COPY e DELETE.

Informazioni sull'oggetto di origine. Contiene due campi secondari:

  • Una voce specifica dell'host dell'oggetto di origine. Il campo viene denominato in base al tipo di origine e contiene dei sottocampi 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.
  • type è uno tra AWS_S3, AZURE_BLOB, GCS o HTTP.

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 campi riportati di seguito.

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.