Router et acheminer les journaux rétroactivement

Cette page explique comment copier manuellement les entrées de journal déjà stockées dans des buckets de journaux Cloud Logging vers des buckets Cloud Storage. Vous pouvez copier des entrées de journal de buckets de journaux vers Cloud Storage buckets pour les raisons suivantes:

  • Si vous avez oublié d'acheminer des entrées de journal vers Cloud Storage avant de les stocker dans Logging.
  • Pour partager les entrées de journal avec des auditeurs en dehors de Logging.
  • Pour analyser des entrées de journal avec des scripts dans Cloud Storage.

Après avoir copié des entrées de journal dans Cloud Storage, les entrées de journal restent stockées dans le bucket à partir duquel elles ont été copiées.

Les opérations de copie ne remplacent pas récepteurs, qui envoient automatiquement les entrées de journal entrantes vers une destination de stockage compatible présélectionnée, y compris des buckets Cloud Storage. Utilisez des récepteurs lorsque vous savez que vous souhaitez stocker des entrées de journal dans un bucket Cloud Storage.

Pour copier des journaux, puis gérer et surveiller l'opération, vous devez utiliser la classe Google Cloud CLI :

Limites

Les limites suivantes s'appliquent lors de la copie d'entrées de journal :

  • Vous ne pouvez copier des journaux que dans des buckets Cloud Storage ; les autres destinations ne sont pas disponibles.

  • Vous ne pouvez pas copier les journaux des buckets de journaux ayant CMEK configuré.

Avant de commencer

Avant de commencer à copier des journaux, procédez comme suit :

  • Pour obtenir les autorisations nécessaires pour copier des entrées de journal à partir de Logging et les écrire dans Cloud Storage, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :

  • Pour obtenir les autorisations nécessaires pour afficher et gérer l'état d'une opération de copie, demandez à votre administrateur de vous accorder le Rédacteur de configuration des journaux (roles/logging.configWriter) pour votre projet.

Copier les entrées de journal

Logging ne copie que les entrées de journal stockées dans le bucket de journaux au démarrage de l'opération de copie. Les entrées de journal stockées dans des buckets de journaux après le démarrage de l'opération de copie ne sont pas copiées dans Cloud Storage.

Pour copier des entrées de journal dans Cloud Storage, vous devez disposer des informations suivantes :

  • ID et emplacement du bucket de journaux à partir duquel vous effectuez la copie. Pour récupérer l'ID du bucket de journaux et son emplacement, utilisez la commande gcloud CLI gcloud logging buckets list.
  • Nom du bucket Cloud Storage vers lequel vous effectuez la copie. Pour plus d'informations pour savoir comment récupérer le nom du bucket Cloud Storage, consultez Obtenir des informations sur le bucket Cloud Storage
  • Un filtre pour les entrées de journal que vous que vous souhaitez copier.

Pour copier des entrées de journal, exécutez la commande Commande gcloud logging copy:

gcloud logging copy BUCKET_ID storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME \
--location=LOCATION --log-filter='FILTER' --project=PROJECT_ID

Avant d'exécuter la commande précédente, procédez comme suit:

  • Remplacez BUCKET_ID par le nom de votre bucket de journaux.
  • Remplacez CLOUD_STORAGE_BUCKET_NAME par le nom de votre bucket Cloud Storage.
  • Remplacez LOCATION par l'emplacement du bucket de journaux.
  • (Facultatif) Remplacez FILTER par le filtre qui définit les journaux copié.

    Si vous omettez l'option --log-filter, toutes les entrées de journal de bucket de journaux sont copiés dans le bucket Cloud Storage.

  • Remplacez PROJECT_ID par l'ID de votre projet Google Cloud. Vous pouvez ignorer cet indicateur lorsque la configuration active de la CLI gcloud est définie sur le bon projet Google Cloud.

Exemple de commande :

gcloud logging copy my-log-bucket storage.googleapis.com/my-gcs-bucket \
--location=global --log-filter='timestamp > "2024-07-18T10:00:00.0Z"' \
--project=my-project

Cette commande crée une opération de longue durée à exécuter en arrière-plan et renvoie le nom de l'opération de copie et l'emplacement du bucket de journaux :

name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

L'emplacement de l'opération de copie est identique à celui du bucket de journaux à partir duquel vous copiez les journaux.

Afficher et gérer les opérations de copie

Vous pouvez afficher et gérer vos opérations de copie à l'aide des commandes gcloud logging operations, qui vous permettent de lister, d'afficher et d'annuler des opérations.

Pour exécuter les commandes suivantes, vous devez spécifier l'emplacement de l'opération. Utilisez l'emplacement de votre bucket de journaux. Pour savoir comment trouver l'emplacement de votre bucket de journaux, consultez la section Afficher les détails d'un bucket.

Répertorier les opérations de copie

Vous pouvez répertorier les opérations de copie récentes, y compris les opérations planifiées, en cours, terminées, en échec et annulées. Les opérations de copie récentes apparaissent dans les résultats jusqu'à 30 jours après l'heure de fin.

Pour répertorier les opérations de copie, exécutez la commande suivante :

gcloud logging operations list --location=LOCATION \
--operation-filter=request_type=CopyLogEntries \
--project=PROJECT_ID

Avant d'exécuter la commande précédente, procédez comme suit:

  • Remplacez LOCATION par l'emplacement du bucket de journaux à partir duquel vous copier des journaux.
  • Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.

La commande renvoie des informations sur l'opération de longue durée, y compris l'ID d'opération :

projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

Afficher l'état d'une opération de copie

Vous pouvez récupérer l'état et d'autres métadonnées relatives aux opérations de copie, y compris :

  • startTime : horodatage indiquant la création de l'opération.
  • endTime : horodatage indiquant la fin de l'opération.
  • state : état de l'opération (planifiée, en cours d'exécution, annulée, échoué ou réussie).
  • cancellation : indique si l'utilisateur a demandé l'annulation de l'opération.
  • progress : estimation de la progression de l'opération (0 à 100 %).
  • destination : nom du bucket Cloud Storage dans lequel l'opération copie des journaux.
  • filter : filtre spécifiant les entrées de journal à copier.
  • name: nom du bucket de journaux à partir duquel l'opération copie les journaux.
  • logEntriesCopiedCount : nombre d'entrées de journal copiées dans le bucket Cloud Storage par l'opération.

Notez que tous les champs de métadonnées répertoriés ne s'appliquent pas à chaque opération de copie. Par exemple, si une opération de copie est toujours en cours d'exécution, les métadonnées endtime ne s'appliquent pas à l'opération. Autre exemple, si l'option --log-filter=FILTER n'est pas utilisée lors de l'exécution de la commande gcloud logging copy, les métadonnées filter ne s'appliquent pas à l'opération.

Pour obtenir des informations sur une opération de copie, exécutez la commande suivante :

gcloud logging operations describe OPERATION_ID \
--location=LOCATION --project=PROJECT_ID

Avant d'exécuter la commande précédente, procédez comme suit :

  • Remplacez OPERATION_ID par l'ID de l'opération.
  • Remplacez LOCATION par l'emplacement du bucket de journaux à partir duquel vous copiez les journaux.
  • Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.

La commande renvoie des métadonnées sur l'opération de copie. Par exemple, voici le résultat pour une opération en cours :

done: false
metadata:
  `@type`: type.googleapis.com/google.logging.v2.CopyLogEntriesMetadata
  progress: 75
  destination: storage.googleapis.com/my-storage-bucket-1
  source: projects/my-test-project/locations/us-central1/buckets/my-logging-bucket-2
  verb: copy
  startTime: `2024-05-23T10:52:40.039751Z`
  state: OPERATION_STATE_RUNNING
name: projects/my-test-project/locations/us-central1/buckets/my-logging-bucket-2
   </pre>

Annuler une opération de copie

Vous pouvez annuler une opération de copie en cours. Si vous annulez une opération de copie, toutes les entrées de journal copiées avant l'annulation restent dans le bucket Cloud Storage.

Une fois une opération de copie annulée, Logging termine tous les processus en cours avant de terminer l'annulation. Certaines entrées de journal peuvent donc persister dans Cloud Storage après l'annulation de l'opération.

Pour annuler une opération de copie, exécutez la commande suivante :

gcloud logging operations cancel OPERATION_ID \
--location=LOCATION --project=PROJECT_ID

Avant d'exécuter la commande précédente, procédez comme suit :

  • Remplacez OPERATION_ID par l'ID de l'opération.
  • Remplacez LOCATION par l'emplacement du bucket de journaux à partir duquel vous copiez les journaux.
  • Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.

Afficher les journaux dans Cloud Storage

Pour afficher et comprendre les journaux que vous avez copiés dans Cloud Storage, consultez la section Afficher les journaux acheminés vers Cloud Storage.

Quotas et limites

Toutes les opérations de copie prennent au moins une heure, quel que soit le nombre données en cours de copie.

Pour copier un volume élevé, par exemple des pétaoctets, divisez la copie entre plusieurs opérations de copie à l'aide du champ timestamp de l'option --filter.

La commande de copie ne peut pas copier les entrées de journal dont la conservation a expiré. Par conséquent, Si une commande de copie inclut une clause telle que timestamp > "SOME_DATE", puis assurez-vous que SOME_DATE n'est pas antérieur à la date date moins la période de conservation du bucket de journaux.

Tarifs

Cloud Logging ne facture pas l'acheminement des journaux vers destination prise en charge ; Toutefois, des frais peuvent s'appliquer à la destination. À l'exception du bucket de journaux _Required, Cloud Logging facture l'insertion de journaux dans des buckets de journaux pour le stockage plus longtemps que la durée de conservation par défaut du bucket de journaux.

Cloud Logging ne facture pas la copie des journaux, la définition des champs d'application des journaux ni les requêtes émises via les pages Explorateur de journaux ou Analyse de journaux.

Pour en savoir plus, consultez les documents suivants :