Cette page explique comment configurer et afficher Cloud Logging pour les journaux du service de transfert de stockage.
Cloud Logging pour le service de transfert de stockage est compatible avec tous les transferts. Les opérations FIND
ne sont pas journalisées pour les transferts basés sur des agents.
Les transferts de système de fichiers peuvent également configurer des journaux de transfert de système de fichiers.
Avant de commencer
Avant de commencer, vérifiez que vous avez accès à Cloud Logging. Nous vous recommandons le rôle Identity and Access Management (IAM) de lecteur de journaux (roles/logging.viewer). Pour en savoir plus sur l'accès à Logging, consultez la section Contrôle des accès avec IAM.
La section suivante explique comment vérifier et accorder l'accès IAM :
- Affichez l'accès défini actuellement pour vérifier l'accès de chaque compte principal.
- Attribuez un rôle aux comptes principaux appropriés dans votre projet.
Actions enregistrables
Les actions suivantes peuvent être journalisées:
FIND
: recherche de tâches à effectuer, comme répertorier les fichiers d'un répertoire, les objets d'un bucket ou les dossiers gérés d'un bucket. Non compatible avec les transferts basés sur des agents.COPY
: copie de fichiers ou d'objets vers Cloud Storage.DELETE
: suppression de fichiers ou d'objets de la source ou de la destination. Pour les transferts entre deux systèmes de fichiers, consigne également la suppression de fichiers du bucket Cloud Storage intermédiaire.
Pour chaque action, vous pouvez choisir de consigner les états de réussite et/ou d'échec.
Activer la journalisation
Pour activer la journalisation, spécifiez les actions et les états à consigner.
CLI gcloud
Lorsque vous créez une tâche de transfert avec gcloud transfer jobs create
, utilisez les options suivantes pour activer la journalisation:
gcloud transfer jobs create SOURCE DESTINATION \
--log-actions=copy,delete,find \
--log-action-states=succeeded,failed
Vous devez spécifier au moins une valeur pour chaque indicateur.
REST
Pour créer une configuration de journalisation, utilisez la commande transferJobs.create
avec un élément 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/"
},
}
}
Ajustez loggingConfig
pour inclure les logActions
et logActionStates
spécifiques à consigner. Par exemple, pour consigner les échecs des actions de copie et de recherche, fournissez la configuration loggingConfig
suivante:
"loggingConfig": {
"logActions": ["COPY", "FIND"],
"logActionStates": ["FAILED"],
}
Mettre à jour une configuration de journalisation
CLI gcloud
Pour mettre à jour la configuration de journalisation d'une tâche existante, utilisez les indicateurs appropriés avec la commande gcloud transfer jobs update
:
gcloud transfer jobs update NAME \
--log-actions=copy,delete,find \
--log-action-states=succeeded,failed
Pour désactiver la journalisation pour cette tâche, spécifiez --clear-log-config
:
gcloud transfer jobs update NAME --clear-log-config
REST
Pour mettre à jour la configuration de journalisation d'une tâche de transfert existante, utilisez transferJobs.patch
avec LoggingConfig
:
{
"projectId": "test-id-001",
"transferJob": {
"loggingConfig": {
"logActions": ["FIND", "DELETE", "COPY"],
"logActionStates": ["SUCCEEDED", "FAILED"],
},
},
"updateTransferJobFieldMask": "loggingConfig"
}
updateTransferJobFieldMask
spécifie le champ mis à jour dans cette requête et est obligatoire.
Pour désactiver la journalisation pour cette tâche, envoyez un loggingConfig
avec des listes vides pour logActions
et logActionStates
:
{
"projectId": "test-id-001",
"transferJob": {
"loggingConfig": {
"logActions": [],
"logActionStates": [],
},
},
"updateTransferJobFieldMask": "loggingConfig"
}
Voir les journaux
Pour afficher les journaux de transfert, procédez comme suit :
Google Cloud Console
Accédez au menu de navigation Google Cloud menu, puis sélectionnez Journaux > Explorateur de journaux :<br\></br\>
Sélectionnez un projet Google Cloud.
Dans le menu Mettre à niveau, passez de l'ancienne visionneuse de journaux à l'explorateur de journaux.
Pour filtrer vos journaux afin de n'afficher que les entrées du service de transfert de stockage, saisissez
storage_transfer_job
dans le champ de requête, puis cliquez sur Exécuter la requête.Dans le volet Résultats de la requête, cliquez sur Modifier l'heure pour modifier la période pendant laquelle les résultats doivent être renvoyés.
Pour en savoir plus sur l'utilisation de l'explorateur de journaux, consultez la page Utiliser l'explorateur de journaux.
CLI gcloud
Pour rechercher des journaux du service de transfert de stockage à l'aide de la CLI gcloud, utilisez la commande gcloud logging read
.
Spécifiez un filtre pour limiter les résultats aux journaux du service de transfert de stockage.
gcloud logging read "resource.type=storage_transfer_job"
API Cloud Logging
Utilisez la méthode API Cloud Logging entries.list
.
Pour filtrer vos résultats afin de n'inclure que les entrées liées au service de transfert de stockage, utilisez le champ filter
. Vous trouverez ci-dessous un exemple d'objet de requête JSON.
{
"resourceNames":
[
"projects/my-project-name"
],
"orderBy": "timestamp desc",
"filter": "resource.type=\"storage_transfer_job\""
}
Format du journal de transfert
La section suivante décrit les champs des journaux du service de transfert de stockage :
Tous les champs spécifiques au service de transfert de stockage sont contenus dans un objet jsonPayload
.
FIND
actions
{
"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"
}
}
}
Actions COPY
et 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"
}
}
}
Champ du journal | Description |
---|---|
|
|
@type |
La valeur est toujours type.googleapis.com/google.storagetransfer.logging.TransferActivityLog . |
action |
Décrit l'action de cette tâche particulière. Choisissez l'une des options suivantes :
|
findAction |
Indique si l'objet de l'action de recherche était un objet ou un dossier géré. |
completeTime |
Horodatage conforme à la norme ISO 8601 indiquant quand l'opération s'est terminée. |
destinationContainer |
Uniquement présent pour les opérations Conteneur de destination pour ce transfert. Contient deux sous-champs:
|
destinationObject |
Uniquement présent pour les opérations Informations sur l'objet à la destination. Contient deux sous-champs:
Exemple : "destinationObject": { "type": "POSIX_FS", "posixFile": { "crc32c": "0", "path": "/tmp/data/filename.txt", "lastModifiedTime": "2022-09-22T04:33:45Z" } } |
operation |
Le nom complet de transferOperations . |
sourceContainer |
Uniquement présent pour les opérations Le conteneur source pour ce transfert. Contient deux sous-champs :
Exemple : "sourceContainer": { "gcsBucket": { "bucket": "my-bucket-1" } type: "GCS" } |
sourceObject |
Uniquement présent pour les opérations Informations sur l'objet source. Contient deux sous-champs :
Exemple : "sourceObject": { "gcsObject": { "bucket": "my-bucket-1" "lastModifiedTime": "2021-12-07T16:41:09.456Z" "md5": "WgnCOIdfCXNTUDpQJSKb2w==" "objectKey": "README.md" } type: "GCS" } |
status |
L'état de l'action. Si la valeur de |
De plus, le champ de niveau supérieur resource
contient les champs suivants.
"resource": {
"labels": {
"job_id": "transferJobs/7876027868280507149"
"project_id": "my-project-id"
}
"type": "storage_transfer_job"
}
Champ du journal | Description |
---|---|
resource.labels.job_id |
Le nom de la tâche du service de transfert de stockage à laquelle appartient ce journal. |
resource.labels.project_id |
L'ID de projet Google Cloud pour ce transfert. |