Configurer et gérer les récepteurs

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Ce document explique comment créer et gérer des récepteurs afin d'acheminer les entrées de journal vers des destinations compatibles.

Présentation

Les récepteurs contrôlent la manière dont Cloud Logging achemine les journaux. Les récepteurs vous permettent d'acheminer une partie ou l'ensemble de vos journaux vers des destinations compatibles

Les récepteurs appartiennent à une ressource Google Cloud donnée : projets Cloud, comptes de facturation, dossiers et organisations. Lorsque la ressource reçoit une entrée de journal, elle l'achemine en fonction des récepteurs qu'elle contient. L'entrée de journal est envoyée à la destination associée à chaque récepteur correspondant.

Un récepteur agrégé est un type de récepteur qui combine et achemine les entrées de journal à partir des ressources Google Cloud contenues dans une organisation ou un dossier. Pour obtenir des instructions, consultez la page Configurer des récepteurs agrégés.

Pour créer et gérer des récepteurs, vous pouvez utiliser la console Google Cloud, l'API Cloud Logging et Google Cloud CLI. L'utilisation de la console Google Cloud présente les avantages suivants par rapport aux autres méthodes:

  • Affichez et gérez tous vos récepteurs au même endroit.
  • Prévisualisez les entrées de journal qui correspondent au filtre de votre récepteur avant de créer le récepteur.
  • Créez et autorisez des destinations pour vos récepteurs.

Destinations compatibles

Vous pouvez acheminer les journaux vers les destinations suivantes :

  • Cloud Storage : fichiers JSON stockés dans des buckets Cloud Storage.
  • Pub/Sub : messages JSON distribués dans des sujets Pub/Sub. Compatible avec les intégrations tierces, telles que Splunk, avec Logging.
  • BigQuery : tables créées dans les ensembles de données BigQuery.
  • Autre bucket Cloud Logging : entrées de journal conservées dans des buckets de journaux Cloud Logging.

Avant de commencer

Les instructions de ce document décrivent comment créer et gérer des récepteurs au niveau du projet Cloud, mais vous pouvez créer des récepteurs (non agrégés) pour les comptes de facturation, les dossiers et les organisations.

Pour commencer, vérifiez les points suivants :

  • Vous disposez d'un projet Google Cloud avec des journaux que vous pouvez consulter dans l'explorateur de journaux.

  • Vous disposez de l'un des rôles IAM suivants pour le projet Cloud source à partir duquel vous acheminez les journaux.

    • Propriétaire (roles/owner)
    • Administrateur Logging (roles/logging.admin)
    • Rédacteur de configuration des journaux (roles/logging.configWriter)

    Les autorisations contenues dans ces rôles vous permettent de créer, supprimer ou modifier des récepteurs. Pour en savoir plus sur la définition des rôles IAM, consultez le guide du contrôle des accès de Logging.

  • Vous disposez d'une ressource dans une destination compatible ou vous pouvez en créer une.

    La destination de routage doit être créée avant le récepteur, via Google Cloud CLI, la console Google Cloud ou les API Google Cloud. Vous pouvez créer la destination dans n'importe quel projet Cloud de n'importe quelle organisation, mais assurez-vous d'abord que le compte de service du récepteur dispose des autorisations d'écriture sur la destination.

Créer un récepteur

Les instructions ci-dessous permettent de créer un récepteur dans un projet Cloud. Au lieu d'un projet Cloud, vous pouvez spécifier un compte de facturation, un dossier ou une organisation.

Vous pouvez créer jusqu'à 200 récepteurs par projet Cloud.

Une fois le récepteur créé, assurez-vous que Logging dispose des autorisations appropriées pour écrire des journaux sur la destination de votre récepteur. Consultez la section Définir des autorisations sur la destination.

Pour créer un récepteur, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Explorateur de journaux :

    Accéder au routeur de journaux

  2. Sélectionnez un projet Cloud existant.

  3. Cliquez sur Créer un récepteur.

  4. Dans le panneau Détails du récepteur, saisissez les informations suivantes :

    • Nom du récepteur : indiquez un identifiant pour le récepteur. Notez qu'après avoir créé le récepteur, vous ne pouvez pas le renommer, mais vous pouvez le supprimer et en créer un autre.

    • Description du récepteur (facultatif) : décrivez l'objectif ou le cas d'utilisation du récepteur.

  5. Dans le panneau Destination du récepteur, sélectionnez le service et la destination du récepteur à l'aide du menu Sélectionner le service de récepteur.

    Si vous routez vers un service qui se trouve dans le même projet Cloud, sélectionnez l'une des options suivantes:

    • Bucket Cloud Logging : sélectionnez ou créez un bucket Logging.
    • Table BigQuery : sélectionnez ou créez l'ensemble de données particulier qui recevra les journaux routés. Vous pouvez également utiliser des tables partitionnées.
    • Bucket Cloud Storage : sélectionnez ou créez le bucket Cloud Storage spécifique qui reçoit les journaux routés.
    • Sujet Pub/Sub : sélectionnez ou créez le sujet particulier qui recevra les journaux routés.
    • Splunk : sélectionnez le sujet Pub/Sub du service Splunk.

    Si vous routez vers une destination qui se trouve dans un autre projet, sélectionnez Autre projet. Vous devez fournir des informations sur le service et la destination Logging, BigQuery, Cloud Storage ou Pub/Sub.

    Pour acheminer les entrées de journal vers un bucket Cloud Logging qui utilise la région global et qui est défini dans un autre projet Google Cloud, la destination du récepteur est la suivante:

    logging.googleapis.com/projects/DESTINATION_PROJECT/locations/global/buckets/BUCKET_NAME
    

    Pour acheminer les entrées de journal vers un ensemble de données BigQuery, la destination du récepteur est la suivante:

    bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
    

    Pour acheminer les entrées de journal vers un bucket Cloud Storage, la destination du récepteur est la suivante:

    storage.googleapis.com/BUCKET_NAME
    

    Pour acheminer les entrées de journal vers un sujet Pub/Sub, la destination du récepteur est la suivante:

    pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
    

    Notez que si vous acheminez des journaux entre des projets Cloud, vous devez toujours disposer des autorisations appropriées sur la destination.

  6. Dans le panneau Sélectionner les journaux à inclure dans le récepteur, procédez comme suit :

    1. Dans le champ Créer un filtre d'inclusion, saisissez une expression de filtre correspondant aux entrées de journal que vous souhaitez inclure. Pour en savoir plus sur la syntaxe d'écriture des filtres, consultez la page Langage de requête Logging.

      Si vous ne définissez pas de filtre, tous les journaux de la ressource sélectionnée sont acheminés vers la destination.

      Par exemple, vous pouvez créer un filtre pour acheminer tous les journaux d'accès aux données vers un seul bucket Logging. Ce filtre se présente comme suit :

      LOG_ID("cloudaudit.googleapis.com/data_access") OR LOG_ID("externalaudit.googleapis.com/data_access")
      

      Notez que la longueur d'un filtre ne peut pas dépasser 20 000 caractères.

    2. Pour vérifier que le filtre saisi est correct, sélectionnez Prévisualiser les journaux. L'explorateur de journaux s'ouvre dans un nouvel onglet avec le filtre pré-rempli.

  7. (Facultatif) Dans le panneau Sélectionner les journaux à filtrer hors du récepteur, procédez comme suit:

    1. Dans le champ Nom du filtre d'exclusion, saisissez un nom.

    2. Dans la section Créer un filtre d'exclusion, saisissez une expression de filtre correspondant aux entrées de journal que vous souhaitez exclure. Vous pouvez également utiliser la fonction sample pour sélectionner une partie des entrées de journal à exclure.

    Vous pouvez créer jusqu'à 50 filtres d'exclusion par récepteur. Notez que la longueur d'un filtre ne peut pas dépasser 20 000 caractères.

  8. Cliquez sur Créer un récepteur.

API

  1. Pour créer un récepteur de journalisation dans votre projet Cloud, utilisez projects.sinks.create dans l'API Logging. Dans l'objet LogSink, indiquez les valeurs obligatoires appropriées dans le corps de la requête de la méthode :

    • name : identifiant du récepteur. Notez qu'après avoir créé le récepteur, vous ne pouvez pas le renommer, mais vous pouvez le supprimer et en créer un autre.
    • destination : service et destination vers lesquels vous souhaitez acheminer vos journaux. Par exemple, si votre destination de récepteur est un ensemble de données BigQuery, destination ressemblerait à ceci :

      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
      
  2. Dans l'objet LogSink, indiquez les informations facultatives appropriées :

    • filter : définissez la propriété filter pour qu'elle corresponde aux entrées de journal que vous souhaitez inclure dans votre récepteur. Si vous ne définissez pas de filtre, tous les journaux de votre projet Cloud sont acheminés vers la destination. Notez que la longueur d'un filtre ne peut pas dépasser 20 000 caractères.
    • exclusions : définissez cette propriété pour qu'elle corresponde aux entrées de journal que vous souhaitez exclure de votre récepteur. Vous pouvez également utiliser la fonction sample pour sélectionner une partie des entrées de journal à exclure. Vous pouvez créer jusqu'à 50 filtres d'exclusion par récepteur.
    • description : définissez cette propriété pour décrire l'objectif ou le cas d'utilisation du récepteur.
  3. Appelez la méthode projects.sinks.create pour créer le récepteur.

  4. Si la réponse de l'API contient une clé JSON nommée "writerIdentity", accordez au compte de service du récepteur l'autorisation d'écrire sur la destination du récepteur. Pour en savoir plus, consultez la section Définir les autorisations de destination.

    Il n'est pas nécessaire de définir des autorisations de destination lorsque la réponse de l'API ne contient pas de clé JSON nommée "writerIdentity".

Pour en savoir plus sur la création de récepteurs à l'aide de l'API Logging, consultez la documentation de référence sur LogSink.

gcloud

Pour créer un récepteur, exécutez la commande gcloud logging sinks create suivante.

Indiquez les valeurs appropriées pour les variables dans la commande comme suit :

  • SINK_NAME : identifiant du récepteur. Notez qu'après avoir créé le récepteur, vous ne pouvez pas le renommer, mais vous pouvez le supprimer et en créer un autre.
  • SINK_DESTINATION : service et destination vers lesquels vous souhaitez acheminer vos journaux. Par exemple, si la destination de votre récepteur est un ensemble de données BigQuery, SINK_DESTINATION ressemblerait à ceci :

    bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
    
  • OPTIONAL_FLAGS inclut les options suivantes :

    • --log-filter : cette option permet de définir un filtre correspondant aux entrées de journal que vous souhaitez inclure dans votre récepteur. Si vous ne définissez pas de filtre, tous les journaux de votre projet Cloud sont acheminés vers la destination.
    • --exclusion : cette option permet de définir un filtre d'exclusion pour les entrées de journal que vous souhaitez exclure de votre récepteur. Vous pouvez également utiliser la fonction sample pour sélectionner une partie des entrées de journal à exclure. Cette option peut être répétée. Vous pouvez créer jusqu'à 50 filtres d'exclusion par récepteur.
    • --description : utilisez cette option pour décrire l'objectif ou le cas d'utilisation du récepteur.
gcloud logging sinks create SINK_NAME
SINK_DESTINATION OPTIONAL_FLAGS

Par exemple, pour créer un récepteur dans un bucket Logging, votre commande pourrait ressembler à ceci :

gcloud logging sinks create my-sink logging.googleapis.com/projects/myproject123/locations/global/buckets/my-bucket \
  --log-filter='logName="projects/myproject123/logs/matched"' --description="My first sink"

Pour en savoir plus sur la création de récepteurs à l'aide de Google Cloud CLI, et obtenir plus d'options et d'exemples, consultez la documentation de référence sur gcloud logging sinks.

Les nouveaux récepteurs de journaux des buckets Cloud Storage peuvent prendre plusieurs heures pour démarrer le routage des journaux. Les récepteurs vers Cloud Storage sont traités toutes les heures, tandis que les autres types de destination sont traités en temps réel.

Pour en savoir plus sur l'affichage des journaux dans les destinations de récepteurs, consultez la page Rechercher des journaux acheminés.

Après avoir créé le récepteur, vous pouvez afficher le nombre et le volume des entrées de journal reçues à l'aide des métriques logging.googleapis.com/exports/.

Si vous recevez des notifications d'erreur, consultez la section Résoudre les problèmes de routage et de récepteur.

Acheminer les journaux entre des buckets de journaux dans différents projets Cloud

Vous pouvez acheminer les journaux vers une destination dans un autre projet Cloud que celui dans lequel le récepteur a été créé.

Pour ce faire, effectuez l'une des opérations suivantes :

  • Attribuez le rôle roles/logging.bucketWriter au compte de service du récepteur pour qu'il dispose d'un accès en écriture sur la destination. Pour savoir comment procéder, consultez la section Autorisations des destinations.

  • Accordez l'une des autorisations IAM suivantes pour le projet Cloud source à partir duquel vous envoyez des journaux.

    • Propriétaire (roles/owner)
    • Administrateur Logging (roles/logging.admin)
    • Rédacteur de configuration des journaux (roles/logging.configWriter)

    Si vous créez un bucket Logging dans le projet Cloud de destination, vous devez disposer de l'une de ces autorisations.

Gérer les récepteurs

Une fois vos récepteurs créés, vous pouvez y effectuer les actions suivantes:

  • Afficher les détails du récepteur
  • Mettre à jour le récepteur
  • Désactiver le récepteur
  • Supprimer le récepteur
  • Résoudre les problèmes du récepteur
  • Afficher le volume et les taux d'erreur des journaux de récepteurs

Si vous supprimez un récepteur, tenez compte des points suivants:

  • Vous ne pouvez pas supprimer les récepteurs _Default et _Required, mais vous pouvez désactiver les récepteurs _Default pour arrêter le routage des journaux vers les buckets Logging _Default.
  • Une fois qu'un récepteur est supprimé, il arrête de router les entrées de journal.
  • Les récepteurs créés avant le 30 septembre 2022 disposent d'un compte de service dédié. Lorsque vous supprimez ce récepteur, le compte de service est supprimé. Les récepteurs créés à partir du 30 septembre 2022 possèdent un compte de service partagé. La suppression du récepteur ne supprime pas le compte de service partagé.

L'application des modifications apportées à un récepteur peut prendre quelques minutes.

Les instructions ci-dessous permettent de gérer un récepteur dans un projet Cloud. Au lieu d'un projet Cloud, vous pouvez spécifier un compte de facturation, un dossier ou une organisation :

Console

Vous pouvez afficher et gérer vos récepteurs sur la page Routeur de journaux:

Accéder au routeur de journaux

Sélectionnez le projet Cloud contenant votre récepteur en utilisant le sélecteur de ressources depuis n'importe quel emplacement de la console Google Cloud:

Un projet est sélectionné dans le menu déroulant.

Pour afficher vos récepteurs agrégés, sélectionnez l'organisation, le dossier ou le compte de facturation qui contient les récepteurs.

La page Routeur de journaux contient un tableau récapitulatif des récepteurs. Chaque ligne du tableau contient des informations sur les propriétés d'un récepteur :

  • Activé : indique si l'état du récepteur est activé ou désactivé.
  • Type : service de destination du récepteur. Par exemple, Cloud Logging bucket.
  • Nom : identifiant du récepteur, tel qu'il est fourni lors de la création du récepteur ; par exemple _Default.
  • Description : description du récepteur, telle qu'elle vous a été fournie lors de sa création.
  • Destination : nom complet de la destination à laquelle les entrées de journal routées seront envoyées.
  • Créé : date et heure de création du récepteur.
  • Dernière mise à jour: date et heure de la dernière modification du récepteur.

Chaque ligne du tableau est associée à un menu  qui inclut les options suivantes :

  • Afficher les détails du récepteur : affiche le nom, la description, le service, la destination, ainsi que les filtres d'inclusion et d'exclusion du récepteur. Sélectionnez Modifier pour ouvrir le panneau Modifier le récepteur.
  • Modifier le récepteur : ouvre le panneau Modifier le récepteur dans lequel vous pouvez mettre à jour les paramètres du récepteur.
  • Désactiver le récepteur : permet de désactiver le récepteur et d'arrêter le routage des journaux vers la destination du récepteur. Pour en savoir plus sur la désactivation des récepteurs, consultez la section Arrêter l'ingestion de journaux.
  • Activer le récepteur : permet d'activer un récepteur désactivé et de redémarrer le routage des journaux vers la destination du récepteur.
  • Supprimer le récepteur : permet de supprimer le récepteur et d'arrêter le routage des journaux vers la destination du récepteur.
  • Résoudre les problèmes liés au récepteur: ouvre l'explorateur de journaux dans lequel vous pouvez résoudre les erreurs du récepteur.
  • Afficher le volume des journaux du récepteur et les taux d'erreur: ouvre l'explorateur de métriques dans lequel vous pouvez consulter et analyser les données du récepteur.

Vous pouvez cliquer sur les noms des colonnes pour trier les données par ordre croissant ou décroissant.

API

  • Pour afficher les récepteurs de votre projet Cloud, appelez projects.sinks.list.

  • Pour afficher les détails d'un récepteur, appelez projects.sinks.get.

  • Pour mettre à jour un récepteur, appelez projects.sink.update.

    Vous pouvez mettre à jour la destination, les filtres et la description d'un récepteur. Vous pouvez également désactiver ou réactiver le récepteur.

  • Pour désactiver un récepteur, appelez projects.sink.update et définissez la propriété disabled sur true.

    Pour réactiver le récepteur, appelez projects.sink.update et définissez la propriété disabled sur false.

  • Pour supprimer un récepteur, appelez projects.sinks.delete.

    Pour en savoir plus sur l'une de ces méthodes de gestion des récepteurs à l'aide de l'API Logging, consultez la documentation de référence sur LogSink.

gcloud

  • Pour afficher la liste des récepteurs pour votre projet Cloud, utilisez la commandegcloud logging sinks list, qui correspond à la méthode API Logging.projects.sinks.list :

    gcloud logging sinks list
    

    Pour afficher la liste des récepteurs agrégés, utilisez l'option appropriée pour spécifier la ressource contenant le récepteur. Par exemple, si vous avez créé le récepteur au niveau de l'organisation, utilisez l'option --organization=ORGANIZATION_ID pour répertorier les récepteurs de l'organisation.

  • Pour décrire un récepteur, utilisez la commande gcloud logging sinks describe, qui correspond à la méthode de l'API Logging projects.sinks.get :

    gcloud logging sinks describe SINK_NAME
    
  • Pour mettre à jour un récepteur, utilisez la commande gcloud logging sinks update, qui correspond à la méthode API projects.sink.update :

    Vous pouvez mettre à jour un récepteur pour modifier la destination, les filtres et la description, ou pour désactiver ou réactiver le récepteur :

    gcloud logging sinks update SINK_NAME  NEW_DESTINATION  --log-filter=NEW_FILTER

    Omettez NEW_DESTINATION ou --log-filter si ces parties ne changent pas.

    Par exemple, pour mettre à jour la destination du récepteur nommé my-project-sink vers une nouvelle destination de bucket Cloud Storage nommée my-second-gcs-bucket, la commande se présente comme suit :

    gcloud logging sinks update  my-project-sink  storage.googleapis.com/my-second-gcs-bucket
    
  • Pour désactiver un récepteur, utilisez la commande gcloud logging sinks update, qui correspond à la méthode API projects.sink.update, et ajoutez l'option --disabled :

    gcloud logging sinks update _Default  --disabled
    

    Pour réactiver le récepteur, utilisez la commande gcloud logging sinks update, supprimez l'option --disabled et ajoutez l'option --no-disabled :

    gcloud logging sinks update _Default  --no-disabled
    
  • Pour supprimer un récepteur, utilisez la commande gcloud logging sinks delete, qui correspond à la méthode API projects.sinks.delete :

    gcloud logging sinks delete SINK_NAME
    

    Pour en savoir plus sur la gestion des récepteurs à l'aide de Google Cloud CLI, consultez la documentation de référence sur gcloud logging sinks.

Arrêter l'ingestion de journaux

Pour chaque projet Cloud, Logging crée automatiquement deux buckets de journal : _Required et _Default. Logging crée automatiquement deux récepteurs de journaux, _Required et _Default, qui acheminent les journaux vers les buckets nommés respectivement.

Vous ne pouvez pas désactiver le récepteur _Required. ni les tarifs d'ingestion et les tarifs de stockage ne s'appliquent pas aux données de journaux stockées dans le bucket de journaux _Required. Vous pouvez désactiver le récepteur _Default pour arrêter l'ingestion de journaux dans le bucket _Default. Vous pouvez également désactiver les récepteurs définis par l'utilisateur.

Lorsque vous arrêtez l'ingestion de journaux dans le bucket _Default en désactivant tous les récepteurs de votre projet Cloud qui envoient des journaux au bucket _Default, aucuns frais d'ingestion Cloud Logging ne sont facturés par votre projet Cloud pour le bucket _Default. Le bucket _Default est vide lorsque tous les journaux précédemment ingérés dans le bucket _Default ont atteint la durée de conservation du bucket.

Pour désactiver les récepteurs de votre projet Cloud qui acheminent les journaux vers le bucket _Default, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Explorateur de journaux :

    Accéder au routeur de journaux

  2. Pour rechercher l'ensemble des récepteurs qui acheminent les journaux vers le bucket _Default, filtrez-les par destination, puis saisissez _Default.

    Recherchez tous les récepteurs qui acheminent les journaux vers le bucket par défaut.

  3. Pour chaque récepteur, sélectionnez Menu , puis Disable sink (Désactiver le récepteur).

Les récepteurs sont désormais désactivés et les récepteurs de votre projet Cloud n'acheminent plus de journaux de routage vers le bucket _Default.

Pour réactiver un récepteur désactivé et redémarrer les journaux de routage vers la destination du récepteur, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Explorateur de journaux :

    Accéder au routeur de journaux

  2. Pour rechercher l'ensemble des récepteurs désactivés précédemment configurés pour acheminer les journaux vers le bucket _Default, filtrez les récepteurs par destination, puis saisissez _Default.

  3. Pour chaque récepteur, sélectionnez Menu , puis Disable sink (Désactiver le récepteur).

API

  1. Pour afficher les récepteurs de votre projet Cloud, appelez la méthode API Logging projects.sinks.list.

    Identifiez les récepteurs qui sont acheminés vers le bucket _Default.

  2. Par exemple, pour désactiver le récepteur _Default, appelez projects.sink.update et définissez la propriété disabled sur true.

Le récepteur _Default est maintenant désactivé ; il n'achemine plus les journaux vers le bucket _Default.

Pour désactiver les autres récepteurs de votre projet Cloud qui sont acheminés vers le bucket _Default, répétez les étapes ci-dessus.

Pour réactiver un récepteur, appelez projects.sink.update et définissez la propriété disabled sur false.

gcloud

  1. Pour afficher la liste des récepteurs pour votre projet Cloud, utilisez la commandegcloud logging sinks list, qui correspond à la méthode API Logging.projects.sinks.list :

    gcloud logging sinks list
    
  2. Identifiez les récepteurs qui sont acheminés vers le bucket _Default. Pour décrire un récepteur, y compris son nom de destination, utilisez la commandegcloud logging sinks describe, qui correspond à la méthode API Logging.projects.sinks.get :

    gcloud logging sinks describe SINK_NAME
    
  3. Par exemple, pour désactiver le récepteur _Default, utilisez la commande gcloud logging sinks update et ajoutez l'option --disabled :

    gcloud logging sinks update _Default  --disabled
    

Le récepteur _Default est maintenant désactivé ; il n'achemine plus les journaux vers le bucket _Default.

Pour désactiver les autres récepteurs de votre projet Cloud qui sont acheminés vers le bucket _Default, répétez les étapes ci-dessus.

Pour réactiver un récepteur, utilisez la commande gcloud logging sinks update, supprimez l'option --disabled et ajoutez l'option --no-disabled :

gcloud logging sinks update _Default  --no-disabled

Définir les autorisations de la destination

Cette section explique comment accorder à Logging les autorisations Identity and Access Management pour écrire des journaux dans la destination de votre récepteur. Pour obtenir la liste complète des rôles et des autorisations dans Logging, consultez la page Contrôle des accès.

Cloud Logging crée un compte de service partagé pour une ressource lorsqu'un récepteur de journaux est créé, sauf si le compte de service requis existe déjà. Le compte de service peut exister, car le même compte de service est utilisé pour tous les récepteurs de la ressource sous-jacente. Il peut s'agir d'un projet Google Cloud, d'une organisation, d'un dossier ou d'un compte de facturation.

L'identité du rédacteur d'un récepteur est l'identifiant du compte de service associé à ce récepteur. Tous les récepteurs ont une identité de rédacteur, à l'exception des récepteurs qui écrivent dans un bucket de journaux du projet Cloud actuel. Lorsque la destination d'un récepteur est un bucket de journaux dans le projet Cloud actuel, le récepteur ne nécessite aucune autorisation de destination supplémentaire. Par conséquent, la valeur du champ d'identité du rédacteur est répertoriée comme None dans la console, et elle n'est pas signalée par l'API ni par les commandes de Google Cloud CLI.

Les instructions ci-dessous permettent de définir les autorisations au niveau du projet Cloud pour que votre récepteur achemine les journaux vers sa destination. Au lieu d'un projet Cloud, vous pouvez spécifier un compte de facturation, un dossier ou une organisation :

Console

  1. Pour obtenir l'identité du rédacteur du récepteur (une adresse e-mail) à partir du nouveau récepteur, procédez comme suit:

    1. Dans la console Google Cloud, accédez à la page Explorateur de journaux :

      Accéder au routeur de journaux

    2. Sélectionnez menu, puis Afficher les détails du récepteur. L'identité du rédacteur apparaît dans le panneau Détails du récepteur.

  2. Si la valeur du champ writerIdentity contient une adresse e-mail, passez à l'étape suivante. Lorsque la valeur est None, vous n'avez pas besoin de configurer les autorisations de destination pour le récepteur.

  3. Cliquez sur Copier pour copier l'identité du rédacteur du récepteur dans votre presse-papiers.

  4. Si vous avez un accès Propriétaire à la destination, ajoutez le compte de service à celle-ci de la façon suivante :

    • Pour les destinations Cloud Storage, ajoutez l'identité du rédacteur du récepteur à votre bucket à votre bucket Cloud Storage et attribuez-lui le rôle Créateur des objets de l'espace de stockage.
    • Pour les destinations BigQuery, ajoutez l'identité du rédacteur du récepteur à votre ensemble de données et attribuez-lui le rôle Éditeur de données BigQuery.
    • Pour Pub/Sub, y compris Splunk, ajoutez l'identité du rédacteur du récepteur à votre sujet et attribuez-lui le rôle Éditeur Pub/Sub.
    • Pour les destinations du bucket Logging dans différents projets Cloud, ajoutez l'identité de rédacteur du récepteur au bucket de journaux de destination et attribuez-lui l'autorisation roles/logging.bucketWriter.

    Si vous ne disposez pas d'un accès Propriétaire à la destination du récepteur, envoyez le nom du compte de service de l'identité du rédacteur à une personne qui possède cet accès. Celle-ci doit ensuite suivre les instructions de l'étape précédente pour ajouter l'identité de rédacteur à la destination du récepteur.

API

  1. Appelez la méthode API projects.sinks.list pour répertorier les récepteurs de votre projet Google Cloud.

  2. Recherchez le récepteur dont vous souhaitez modifier les autorisations. Si les détails du récepteur contiennent une clé JSON nommée "writerIdentity", passez à l'étape suivante. Lorsque les détails n'incluent pas de champ "writerIdentity", vous n'avez pas besoin de configurer les autorisations de destination pour le récepteur.

  3. Si vous disposez d'un accès Propriétaire IAM à la destination, ajoutez le compte de service à celle-ci de la façon suivante :

    • Pour les destinations Cloud Storage, ajoutez l'identité du rédacteur du récepteur à votre bucket à votre bucket Cloud Storage et attribuez-lui le rôle Créateur des objets de l'espace de stockage.
    • Pour les destinations BigQuery, ajoutez l'identité du rédacteur du récepteur à votre ensemble de données et attribuez-lui le rôle Éditeur de données BigQuery.
    • Pour Pub/Sub, y compris Splunk, ajoutez l'identité du rédacteur du récepteur à votre sujet et attribuez-lui le rôle Éditeur Pub/Sub.
    • Pour les destinations des buckets Logging dans différents projets Cloud, ajoutez l'identité de rédacteur du récepteur au bucket de journaux de destination et attribuez-lui l'autorisation roles/logging.bucketWriter.

    Si vous ne disposez pas d'un accès Propriétaire à la destination du récepteur, envoyez le nom du compte de service de l'identité du rédacteur à une personne qui possède cet accès. Celle-ci doit ensuite suivre les instructions de l'étape précédente pour ajouter l'identité de rédacteur à la destination du récepteur.

gcloud

  1. Obtenez le compte de service à partir du champ writerIdentity de votre récepteur :

    gcloud logging sinks describe SINK_NAME
    
  2. Recherchez le récepteur dont vous souhaitez modifier les autorisations et, si les détails du récepteur contiennent une ligne avec writerIdentity, passez à l'étape suivante. Lorsque les détails n'incluent pas de champ writerIdentity, vous n'avez pas besoin de configurer les autorisations de destination pour le récepteur.

    La valeur du champ SERVICE_ACCOUNT dans les étapes suivantes correspond à l'identité du rédacteur, qui ressemble à ceci:

    serviceAccount:service-p-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  3. Si vous disposez d'un accès Propriétaire IAM à la destination, ajoutez le compte de service à celle-ci de la façon suivante :

    • Pour les destinations Cloud Storage, ajoutez l'identité du rédacteur du récepteur à votre bucket à votre bucket Cloud Storage et attribuez-lui le rôle Créateur des objets de l'espace de stockage.
    • Pour les destinations BigQuery, ajoutez l'identité du rédacteur du récepteur à votre ensemble de données et attribuez-lui le rôle Éditeur de données BigQuery.
    • Pour Pub/Sub, y compris Splunk, ajoutez l'identité du rédacteur du récepteur à votre sujet et attribuez-lui le rôle Éditeur Pub/Sub.
    • Pour les destinations des buckets Logging dans différents projets Cloud, ajoutez l'identité de rédacteur du récepteur au bucket de journaux de destination et attribuez-lui l'autorisation roles/logging.bucketWriter.

    Si vous ne disposez pas d'un accès Propriétaire à la destination du récepteur, envoyez le nom du compte de service de l'identité du rédacteur à une personne qui possède cet accès. Celle-ci doit ensuite suivre les instructions de l'étape précédente pour ajouter l'identité de rédacteur à la destination du récepteur.

    Par exemple, si vous acheminez les journaux entre des buckets Logging dans différents projets Cloud, vous devez ajouter roles/logging.bucketWriter au compte de service comme suit :

    1. Téléchargez la stratégie Identity and Access Management du projet Cloud de destination et écrivez-la dans un fichier local au format JSON :

      gcloud projects get-iam-policy DESTINATION_PROJECT_ID --format json > output.json
      
    2. Ajoutez une condition IAM qui permet au compte de service d'écrire uniquement dans le bucket Cloud Logging que vous avez créé. Exemple :

      {
      "bindings": [
       {
         "members": [
           "user:username@gmail.com"
         ],
         "role": "roles/owner"
       },
       {
         "members": [
           "SERVICE_ACCOUNT"
         ],
         "role": "roles/logging.bucketWriter",
         "condition": {
             "title": "Bucket writer condition example",
             "description": "Grants logging.bucketWriter role to service account SERVICE_ACCOUNT used by log sink [SINK_NAME]",
             "expression":
               "resource.name.endsWith(\'locations/global/buckets/BUCKET_ID\')"
         }
       }
      ],
      "etag": "BwWd_6eERR4=",
      "version": 3
      }
    3. Mettez à jour la stratégie IAM :

      gcloud projects set-iam-policy DESTINATION_PROJECT_ID output.json
      

Exemples de code

Pour configurer les récepteurs dans le langage de votre choix à l'aide du code de la bibliothèque cliente, consultez la page Bibliothèques clientes Logging : récepteurs de journaux.

Exemples de filtres

Voici quelques exemples de filtres particulièrement utiles pour créer des récepteurs.

Pour obtenir des exemples supplémentaires pouvant être utiles lors de la création de vos filtres d'inclusion et de vos filtres d'exclusion, consultez la section Exemples de requêtes.

Restaurer le filtre de récepteur _Default

Si vous avez modifié le filtre du récepteur _Default, vous souhaitez peut-être en restaurer le filtre par défaut. Pour ce faire, saisissez le filtre d'inclusion suivant :

  NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT \
  LOG_ID("externalaudit.googleapis.com/activity") AND NOT \
  LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT \
  LOG_ID("externalaudit.googleapis.com/system_event") AND NOT \
  LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT \
  LOG_ID("externalaudit.googleapis.com/access_transparency")

Exclure les journaux de conteneurs et de pods Google Kubernetes Engine

Pour exclure les journaux de conteneur et de pod Google Kubernetes Engine du système GKE namespaces, utilisez le filtre suivant:

resource.type = ("k8s_container" OR "k8s_pod")
resource.labels.namespace_name = (
"cnrm-system" OR
"config-management-system" OR
"gatekeeper-system" OR
"gke-connect" OR
"gke-system" OR
"istio-system" OR
"knative-serving" OR
"monitoring-system" OR
"kube-system")

Pour exclure les journaux de nœud Google Kubernetes Engine pour le système GKE logNames, utilisez le filtre suivant :

resource.type = "k8s_node"
logName:( "logs/container-runtime" OR
"logs/docker" OR
"logs/kube-container-runtime-monitor" OR
"logs/kube-logrotate" OR
"logs/kube-node-configuration" OR
"logs/kube-node-installation" OR
"logs/kubelet" OR
"logs/kubelet-monitor" OR
"logs/node-journal" OR
"logs/node-problem-detector")

Pour afficher le volume des données des journaux de nœud, de pod et de conteneur Google Kubernetes Engine ingérées dans Cloud Logging, utilisez l'explorateur de métriques dans Cloud Monitoring.

Exclure les journaux Dataflow non requis pour assurer la compatibilité

Pour exclure les journaux Dataflow qui ne sont pas requis pour la compatibilité, utilisez le filtre suivant :

resource.type="dataflow_step"
labels."dataflow.googleapis.com/log_type"!="system" AND labels."dataflow.googleapis.com/log_type"!="supportability"

Pour afficher le volume des données de journaux Dataflow ingérées dans Cloud Logging, utilisez l'explorateur de métriques dans Cloud Monitoring.

Assistance

Bien que Cloud Logging vous permette d'exclure les journaux d'ingestion, vous pouvez envisager de les assurer la compatibilité. Ces journaux peuvent vous aider à identifier et résoudre rapidement les problèmes liés à vos applications

Par exemple, les journaux système GKE sont utiles pour résoudre les problèmes liés à vos applications et clusters GKE, car ils sont générés pour les événements qui se produisent dans votre cluster. Ces journaux peuvent vous aider à déterminer si votre code d'application ou le cluster GKE sous-jacent est à l'origine de l'erreur de l'application. Les journaux système GKE incluent également les journaux d'audit Kubernetes générés par le composant de serveur de l'API Kubernetes, qui inclut les modifications apportées à l'aide de la commande kubectl et les événements Kubernetes.

Pour Dataflow, nous vous recommandons d'ingérer au minimum vos journaux système (labels."dataflow.googleapis.com/log_type"="system") et vos journaux de compatibilité (labels."dataflow.googleapis.com/log_type"="supportability"). Ces journaux sont essentiels pour que les développeurs puissent observer et dépanner leurs pipelines Dataflow. Il est possible que les utilisateurs ne puissent pas utiliser la page Détails de la tâche de Dataflow pour afficher les journaux des tâches.

Étapes suivantes