Configurer les récepteurs

Ce document explique comment créer et gérer des récepteurs pour acheminer les entrées de journal à l'aide de Cloud Console, de l'API Cloud Logging et de l'outil de ligne de commande gcloud.

En résumé, vous routez les journaux en créant un ou plusieurs récepteurs qui incluent une expression de filtre et une destination. Lorsque Logging reçoit de nouvelles entrées de journal, elles sont comparées à chaque récepteur. Si une entrée de journal correspond au filtre d'un récepteur, une copie de l'entrée de journal est écrite sur la destination du récepteur. Pour obtenir une présentation conceptuelle plus large des récepteurs, consultez la page Présentation du routage et du stockage: récepteurs.

Cloud Console vous permet d'effectuer les opérations suivantes :

  • 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 le créer.
  • Créez et autorisez des destinations pour vos récepteurs.

Toutefois, Cloud Console ne peut créer ou afficher des récepteurs que dans les projets Cloud. Pour créer des récepteurs dans des organisations, des dossiers ou des comptes de facturation à l'aide de l'outil de ligne de commande gcloud ou de l'API Cloud Logging, consultez la section Récepteurs agrégés.

Destinations compatibles

Vous pouvez acheminer les journaux au sein du même projet Cloud ou entre des projets Cloud 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. Accepte 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

Pour créer des récepteurs dans des organisations, des dossiers ou des comptes de facturation, consultez la section Récepteurs agrégés.

Avant de commencer

Avant de créer un récepteur, 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 envoyez des 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 pouvez en créer une.

    La destination des récepteurs de journaux doit être créée avant le récepteur, via l'outil de ligne de commande gcloud, Cloud Console ou les API Google Cloud. Vous pouvez créer la destination dans n'importe quel projet Cloud dans n'importe quelle organisation, mais vous devez vous assurer que le compte de service du récepteur dispose d'autorisations d'écriture dans la destination.

Créer un récepteur

Voici les instructions permettant de créer un récepteur dans un projet Cloud à l'aide de Cloud Console ou de l'outil de ligne de commande gcloud.

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

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

Console

  1. Dans Cloud Console, accédez à la page Journaux > Routeur 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 Informations sur le récepteur, saisissez les informations suivantes:

    • Nom du récepteur: indiquez un identifiant pour le récepteur. Notez qu'une fois le récepteur créé, 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:

    • Sélectionner le service du récepteur: sélectionnez le service vers lequel vous souhaitez router les journaux.

    Selon le service que vous sélectionnez, vous pouvez choisir l'une des destinations 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 acheminés. Vous pouvez également utiliser des tables partitionnées.
    • Bucket Cloud Storage: sélectionnez ou créez le bucket Cloud Storage spécifique pour recevoir les journaux acheminé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 pour votre service Splunk.
    • Autre projet Cloud: ajoutez manuellement les informations de service et de destination Logging, BigQuery, Cloud Storage ou Pub/Sub au format suivant:

      SERVICE.googleapis.com/projects/PROJECT_ID/SINK_DESTINATION/DESTINATION_ID
      

      Par exemple, si la destination de votre récepteur est un ensemble de données BigQuery, la destination du récepteur est la suivante:

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

      Notez que si vous routez des journaux entre des projets Cloud, vous avez toujours besoin des autorisations de destination appropriées.

  6. Choisissez les journaux à inclure dans le récepteur dans le panneau Créer un filtre d'inclusion.

    1. Saisissez une expression de filtre correspondant aux entrées de journal que vous souhaitez inclure. Si vous ne définissez pas de filtre, tous les journaux de votre projet Cloud 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 le filtre ne doit 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) Sélectionnez les journaux à exclure du récepteur dans le panneau Créer un filtre d'exclusion:

    1. Saisissez un nom dans le champ Nom du filtre d'exclusion.

    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 requises appropriées dans le corps de la requête de la méthode:

    • name: identifiant du récepteur. Notez qu'une fois le récepteur créé, vous ne pouvez pas renommer le récepteur, 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 la destination de votre récepteur est un ensemble de données BigQuery, destination se présentera comme suit:

      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
      
  2. Dans l'objet LogSink, fournissez 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 projects.sinks.create pour créer le récepteur.

  4. Récupérez le nom du compte de service dans le champ writer_identity renvoyé à partir de la réponse de l'API.

  5. Accordez à ce compte de service l'autorisation d'écrire dans votre destination de récepteur.

    Si vous n'êtes pas autorisé à apporter cette modification à la destination du récepteur, envoyez le nom du compte de service à une personne en mesure d'effectuer cette modification pour vous.

    Pour en savoir plus sur l'octroi d'autorisations de comptes de service pour les ressources, consultez la section Définir les autorisations de destination.

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 de la commande comme suit:

  • SINK_NAME: identifiant du récepteur. Notez qu'une fois le récepteur créé, 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 se présente comme suit:

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

    • --log-filter : utilisez cette option pour définir un filtre qui correspond 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: utilisez cette option pour 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 l'outil de ligne de commande gcloud, y compris d'autres options et exemples, consultez la documentation de référence sur gcloud logging sinks. (Installation de Python groupée).

Pour en savoir plus sur l'affichage des journaux dans les destinations de récepteurs, consultez la section Rechercher des journaux routé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écepteurs.

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

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

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

  • Attribuez au compte de service de votre récepteur le rôle roles/logging.bucketWriter pour écrire dans la destination. Pour en savoir plus, consultez la section Autorisations de destination.

  • Disposez de 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 les récepteurs créés, vous pouvez y effectuer les actions suivantes:

  • Afficher les détails du récepteur
  • Récepteurs de mise à jour
  • Désactiver des récepteurs
  • Supprimer des récepteurs

Pour afficher et gérer vos récepteurs, procédez comme suit:

Console

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

Accéder au Routeur de journaux

Assurez-vous d'avoir sélectionné le projet Cloud contenant votre récepteur à l'aide du sélecteur de ressources depuis Cloud Console:

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 le récepteur.

La page Routeur de journaux contient un récapitulatif des récepteurs de table. 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, fourni lors de la création du récepteur (par exemple, _Default).
  • Description: description du récepteur, telle que fournie lors de la création du récepteur.
  • Destination: nom complet de la destination vers laquelle les entrées de journal acheminées seront envoyées.
  • Created (Date de création) : date et heure de création du récepteur.
  • 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 de destination, la destination, et 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 les journaux de routage vers sa destination.
  • Supprimer le récepteur : permet de supprimer le récepteur et d'arrêter le routage des journaux vers la destination du récepteur. Les récepteurs _Default et _Required ne peuvent pas être supprimés, mais le récepteur _Default peut être désactivé pour arrêter l'acheminement des journaux vers le bucket de journalisation _Default.

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.

    Notez que si vous supprimez un récepteur, les entrées de journal ne sont plus acheminées depuis celui-ci.

    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 de votre projet Cloud, utilisez la gcloud 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 qui contient 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 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 de votre récepteur nommé my-project-sink vers une nouvelle destination de bucket Cloud Storage nommée my-second-gcs-bucket, votre 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, exécutez la commande gcloud logging sinks update, supprimez l'option --disabled et incluez l'option --no-disabled:

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

    gcloud logging sinks delete SINK_NAME
    

    Notez que si vous supprimez un récepteur, les entrées de journal ne sont plus acheminées depuis celui-ci.

    Pour en savoir plus sur la gestion des récepteurs à l'aide de l'outil de ligne de commande gcloud, 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 journaux: _Required et _Default. Logging crée automatiquement deux récepteurs de journaux, _Required et _Default, qui acheminent les journaux vers les buckets correspondants.

Vous ne pouvez pas désactiver le récepteur _Required. ni les tarifs d'ingestion, ni les tarifs de stockage ne s'appliquent aux données de journaux stockées dans le bucket de journaux _Required. Vous pouvez désactiver le récepteur _Default pour empêcher l'ingestion des 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 pour le bucket _Default en désactivant tous les récepteurs de votre projet Cloud qui envoient des journaux au bucket _Default, aucune nouvelle ingestion Cloud Logging n'est requise. Des frais sont engendré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 rempli les conditions de 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. Accédez au routeur de journaux:

    Accéder au Routeur de journaux

  2. Pour rechercher les 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 sélectionnez Désactiver le récepteur.

Les récepteurs sont maintenant désactivés et votre projet Cloud ne récepteur 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 sa destination, procédez comme suit:

  1. Accédez à la page Routeur de journaux:

    Accéder au Routeur de journaux

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

  3. Pour chaque récepteur, sélectionnez Menu , puis Activer 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 de votre projet Cloud, utilisez la gcloud 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 voir son nom de destination, utilisez la commande suivante :gcloud 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, exécutez la commande gcloud logging sinks update en incluant 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, exécutez la commande gcloud logging sinks update, supprimez l'option --disabled et incluez l'option --no-disabled:

gcloud logging sinks update _Default  --no-disabled

Définir les autorisations de destination

Cette section explique comment accorder à Logging des autorisations pour gérer l'authentification et les accès afin d'écrire des journaux sur la destination de votre récepteur. Pour obtenir la liste complète des rôles et des autorisations Logging, consultez la page Contrôle des accès.

Lorsque vous créez un récepteur, Stackdriver Logging crée un compte de service pour celui-ci, appelé identité du rédacteur unique La destination du récepteur doit autoriser ce compte de service à écrire des entrées de journal. Vous ne pouvez pas gérer ce compte de service directement, car il est détenu et géré par Cloud Logging. Si le récepteur est supprimé, le compte de service l'est également.

Si vous utilisez un récepteur pour acheminer les journaux entre les buckets Logging d'un même projet Cloud, aucun compte de service n'est créé. Le récepteur fonctionne sans l'identité du rédacteur unique. Si vous utilisez un récepteur pour acheminer les journaux entre les buckets Logging de différents projets Cloud, un compte de service est créé.

Pour définir les autorisations permettant d'acheminer votre récepteur vers sa destination, procédez comme suit:

Console

  1. Obtenez l'identité du rédacteur du récepteur (une adresse e-mail) à partir du nouveau récepteur. Accédez à la page Routeur de journaux et sélectionnez menu > Afficher les détails du récepteur. L'identité du rédacteur apparaît dans le panneau Informations sur le récepteur.

  2. Si vous disposez d'un accès Propriétaire à la destination, ajoutez le compte de service à celle-ci en procédant comme suit:

    • Pour les destinations Cloud Storage, ajoutez l'identité du rédacteur du récepteur à 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 de buckets Logging dans différents projets Cloud, ajoutez l'identité du rédacteur du récepteur au bucket de journal 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 disposant de cette autorisation. Cette personne doit ensuite suivre les instructions de l'étape précédente pour ajouter l'identité du rédacteur à la destination du récepteur.

API

  1. Appelez la méthode API projects.sinks.create ou projects.sinks.update pour créer ou modifier le récepteur.

    Définissez uniqueWriterIdentity sur true. Lors de la mise à jour d'un récepteur, vous pouvez passer d'un rédacteur partagé à un rédacteur unique. Si le récepteur existant utilise déjà un rédacteur unique, le récepteur mis à jour utilise le même rédacteur.

    Les méthodes renvoient le nouveau récepteur, qui contient la nouvelle identité du rédacteur.

  2. Si vous disposez d'un accès IAM de propriétaire à la destination, ajoutez le compte de service à celle-ci en procédant comme suit:

    • Pour les destinations Cloud Storage, ajoutez l'identité du rédacteur du récepteur à 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 de buckets Logging dans différents projets Cloud, ajoutez l'identité du rédacteur du récepteur au bucket de journal 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 disposant de cette autorisation. Cette personne doit ensuite suivre les instructions de l'étape précédente pour ajouter l'identité du 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
    

    Le compte de service ressemble à ceci :

    serviceAccount:p123456789012-12345@gcp-sa-logging.iam.gserviceaccount.com
    
  2. Si vous disposez d'un accès IAM de propriétaire à la destination, ajoutez le compte de service à celle-ci en procédant comme suit:

    • Pour les destinations Cloud Storage, ajoutez l'identité du rédacteur du récepteur à 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 de buckets Logging dans différents projets Cloud, ajoutez l'identité du rédacteur du récepteur au bucket de journal 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 disposant de cette autorisation. Cette personne doit ensuite suivre les instructions de l'étape précédente pour ajouter l'identité du rédacteur à la destination du récepteur.

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

    1. Obtenez la stratégie de gestion de l'authentification et des accès pour le projet Cloud de destination, puis é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 seulement 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 des 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 lors de la création de récepteurs.

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

Restaurer le filtre de récepteur _Default

Si vous avez modifié le filtre pour le récepteur _Default, vous souhaiterez peut-être restaurer son 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 conteneur et de pod de Google Kubernetes Engine

Pour exclure les journaux de conteneur et de pod de Google Kubernetes Engine pour le 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 connaître le volume de Google Kubernetes Enginenœud ;série d'annonces etconteneur journaux ingérés dans Cloud Logging, utilisezExplorateur de métriques dans Cloud Monitoring (Installation de Python groupée).

Exclure les journaux Dataflow non requis pour l'assistance

Pour exclure les journaux Dataflow qui ne sont pas nécessaires 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 de 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 de l'ingestion, vous pouvez envisager de conserver les journaux pour plus de compatibilité. Ces journaux peuvent vous aider à résoudre et à identifier 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 le code de votre application ou le cluster GKE sous-jacent génère l'erreur de votre application. Les journaux système de GKE incluent également les journaux d'audit Kubernetes générés par le composant serveur d'API Kubernetes, qui incluent les modifications apportées à l'aide de la commande kubectl et des événements Kubernetes.

Pour Dataflow, nous vous recommandons d'ingérer, au minimum, les journaux système (labels."dataflow.googleapis.com/log_type"="system") et les journaux d'assistance (labels."dataflow.googleapis.com/log_type"="supportability"). Ces journaux sont essentiels pour permettre aux développeurs d'observer et de dépanner leurs pipelines Dataflow. Par ailleurs, les utilisateurs peuvent ne pas être en mesure d'afficher les journaux de tâches sur la page Informations sur la tâche de Dataflow.

Étape suivante