Cloud Logging per Storage Transfer Service

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

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

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

Prima di iniziare

Prima di iniziare, verifica di avere accesso a Cloud Logging. I nostri suggerimenti il ruolo Visualizzatore log (roles/logging.viewer) di 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: sta cercando attività da svolgere, ad esempio elencare i file in una directory o elencare in un bucket. Non supportato 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 vengono trasferiti tra due file system, registra anche l'eliminazione di file un 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 gli specifici logActions e logActionStates per registrare. Ad esempio, per registrare quando le azioni di copia e ricerca non vanno a buon fine, fornisci i seguenti valori 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 il metodo 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"
}

Il parametro updateTransferJobFieldMask specifica il campo in cui viene eseguito l'aggiornamento questa richiesta ed è obbligatorio.

Per disabilitare il logging per questo job, invia un elemento 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 &gt; Esplora log :<br\></br\>

    Vai a Esplora log

  2. Seleziona un progetto Google Cloud.

  3. Nel menu Esegui l'upgrade, passa da Visualizzatore log legacy a Esplora log.

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

  5. Nel riquadro Risultati delle query, fai clic su Modifica ora per cambiare l'ora. per il quale restituire i risultati.

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

Interfaccia a riga di comando gcloud

Per utilizzare gcloud CLI per cercare Storage Transfer Service i log, utilizza 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 la entries.list Metodo API Cloud Logging.

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

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

Formato del 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 jsonPayload oggetto.

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

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

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

Il container di destinazione per questo trasferimento. Contiene due campi secondari:

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

Presente solo per COPY e DELETE operativi.

Informazioni sull'oggetto nella destinazione. Contiene due campi secondari:

  • gcsObject o posixFile, a seconda della destinazione. Entrambe le opzioni contengono campi secondari che specificano località, informazioni su data/ora e l'oggetto o dell'hash del file.
  • type è uno di 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 team transferOperations.
sourceContainer

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

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

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

Ad esempio:

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

Presente solo per COPY e DELETE operativi.

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

  • Una voce specifica dell'host dell'oggetto di origine. Il campo è 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 parametro Elenco di URL:
    • posixFile: un file presente in un file system POSIX.
  • type è uno di 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, azione riuscita. In caso contrario, l'azione non è riuscita. La status.errorType e status.errorMessage campi vengono compilate 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 Storage Transfer Service a cui appartiene il log.
resource.labels.project_id L'ID del progetto Google Cloud per questo trasferimento.