Cloud Logging per Storage Transfer Service

Questa pagina descrive come configurare e visualizzare Cloud Logging per i log di 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 agenti.

I trasferimenti del file system possono anche configurare 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) di Identity and Access Management. Per ulteriori informazioni sull'accesso ai log, 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 lavoro da svolgere, ad esempio elencare i file in una directory, elencare gli oggetti in un bucket o elencare le cartelle gestite in un bucket. Non supportato per i trasferimenti basati su agenti.
  • 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, vengono registrati anche l'eliminazione dei file dal bucket Cloud Storage intermedio.

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

Abilita il logging

Per attivare 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 attivare 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 riescono, fornisci quanto segue loggingConfig:

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

Aggiornare una configurazione di logging

Interfaccia a riga di comando gcloud

Per aggiornare la configurazione di registrazione 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 disattivare 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 disattivare la registrazione per questo job, invia un messaggio 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. Nel menu Esegui l'upgrade, passa dal 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, vedi 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 entries.list dell'API Cloud Logging.

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

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

Formato del 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"
    }
  }
}

Azioni COPY e DELETE

{
  "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 particolare attività. Il valore sarà uno dei seguenti:

  • FIND: trovare lavoro da svolgere, ad esempio elencare i file in una directory o gli oggetti in un bucket. Non viene indicato per i trasferimenti basati su agenti.
  • COPY: copia di file o oggetti in Cloud Storage.
  • DELETE: eliminazione di file o oggetti nell'origine, nella destinazione o nel bucket intermedio.
findAction

Specifica se l'oggetto dell'azione di ricerca era un oggetto o una cartella gestita.

completeTime Il timestamp conforme a ISO 8601 al termine dell'operazione.
destinationContainer

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

Il contenitore di destinazione per questo trasferimento. 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 nella destinazione. Contiene due campi secondari:

  • Uno dei valori gcsObject, gcsManagedFolder o posixFile, a seconda della destinazione. Tutte le opzioni contengono più campi secondari che specificano nome, posizione, informazioni su data/ora e l'hash dell'oggetto o del file.
  • type è 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 transferOperations completo.
sourceContainer

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

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

  • Una voce che specifica la posizione dell'origine. Il campo viene denominato in base al tipo di origine. I possibili campi 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 dei seguenti valori: 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 per l'host dell'oggetto di origine. Il campo è denominato in base al tipo di origine e contiene campi secondari per i metadati. I possibili campi sono i seguenti.
    • awsS3Object: un oggetto AWS S3.
    • azureBlob: un file in Azure Blob Storage.
    • gcsObject: un oggetto Cloud Storage.
    • gcsManagedFolder: una cartella gestita da Cloud Storage.
    • httpFile: un file specificato da un elenco di URL.
    • posixFile: un file su un file system POSIX.
  • type è uno dei seguenti valori: 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 di primo livello resource 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 Storage Transfer Service a cui appartiene questo log.
resource.labels.project_id L'ID progetto Google Cloud per questo trasferimento.