Vous pouvez utiliser des récepteurs de journaux dans Cloud Logging pour acheminer les entrées de journal de votre projet Google Cloud vers des destinations compatibles pour le stockage à long terme, l'analyse de données ou le streaming.
Un sink effectue une action d'écriture et doit donc être autorisé à écrire dans la destination. Lorsque la destination est un bucket de journaux dans le même projet que le récepteur, le récepteur est automatiquement autorisé. Pour toutes les autres destinations, le récepteur doit être associé à un compte de service auquel ont été accordées les autorisations nécessaires pour écrire des données dans la destination.
Lorsqu'un compte de service est requis, Cloud Logging le crée et le gère automatiquement. Toutefois, vous devrez peut-être modifier les autorisations accordées au compte de service. Vous n'êtes pas obligé d'utiliser le compte de service créé par Logging. Vous pouvez créer et gérer un compte de service utilisé par des collecteurs dans plusieurs projets. Pour en savoir plus, consultez Configurer des récepteurs de journaux avec des comptes de service gérés par l'utilisateur.
Présentation
Ce document explique comment créer un récepteur et configurer les options que vous pouvez voir lorsque vous utilisez la console Google Cloud , la Google Cloud CLI ou l'API.
Les récepteurs appartiennent à une ressource Google Cloud donnée : un projet Google Cloud , un compte de facturation, un dossier ou une organisation. Lorsque la ressource reçoit une entrée de journal, chaque récepteur de la ressource la traite. Lorsqu'une entrée de journal correspond aux filtres du récepteur, elle est acheminée vers la destination du récepteur.
En règle générale, les récepteurs ne routent que les entrées de journal provenant d'une ressource. Toutefois, vous pouvez créer des récepteurs agrégés pour les dossiers et les organisations. Ces récepteurs acheminent les entrées de journaux provenant du dossier ou de l'organisation, ainsi que de ses ressources enfants. Ce document ne traite pas des récepteurs agrégés. Pour en savoir plus, consultez Présentation 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 la Google Cloud CLI. Nous vous recommandons d'utiliser la console Google Cloud pour les raisons suivantes :
- Vous pouvez configurer des destinations de récepteur dans le flux pour créer un récepteur.
- Vous pouvez prévisualiser les entrées de journal qui correspondent aux filtres du récepteur.
- Certaines étapes d'autorisation sont simplifiées.
Nous vous recommandons de vérifier la configuration de votre récepteur de journaux chaque fois que vous modifiez le stockage de vos journaux. Par exemple, si vous supprimez la destination d'un récepteur de journaux, supprimez le récepteur de journaux correspondant.
Pour savoir comment afficher et gérer vos récepteurs de journaux, consultez la section Gérer les récepteurs de ce document.
Destinations compatibles
La destination d'un récepteur peut se trouver dans une ressource différente de celle du récepteur. Par exemple, vous pouvez utiliser un récepteur de journaux pour acheminer des entrées de journaux d'un projet vers un bucket de journaux stocké dans un autre projet.
Les destinations suivantes sont acceptées :
- ProjetGoogle Cloud
Sélectionnez cette destination lorsque vous souhaitez que les récepteurs de journaux du projet de destination réacheminent vos entrées de journal ou lorsque vous avez créé un récepteur agrégé d'interception. Les récepteurs de journaux du projet de destination peuvent rediriger les entrées de journal vers n'importe quelle destination compatible, à l'exception d'un projet.
Les récepteurs de journaux créés par le système dans le projet de destination excluent les entrées de journal qui sont acheminées vers le bucket de journaux
_Requireddu projet source. Par exemple, si vous routez les journaux d'activité d'administration vers un autre projet, les récepteurs de journaux_Requiredet_Defaultdu projet de destination excluent ces entrées de journal. Pour stocker ces entrées de journal, mettez à jour le récepteur de journaux_Defaultou créez un récepteur de journaux personnalisé dans le projet de destination.
- Bucket de journaux
- Sélectionnez cette destination lorsque vous souhaitez stocker vos données de journaux dans des ressources gérées par Cloud Logging. Les données de journaux stockées dans des buckets de journaux peuvent être affichées et analysées à l'aide de services tels que l'explorateur de journaux.
- Sujet Pub/Sub
- Sélectionnez cette destination lorsque vous souhaitez exporter vos données de journaux depuisGoogle Cloud , puis utiliser une intégration tierce. Les entrées de journaux sont mises en forme au format JSON, puis acheminées vers un sujet Pub/Sub.
Limites de destination
Cette section décrit les limites spécifiques aux destinations :
- Lorsque vous configurez une destination de récepteur, indiquez le chemin d'accès complet et utilisez le point de terminaison mondial du service.
Les points de terminaison de service régionaux (REPs), tels que
pubsub.LOCATION.rep.googleapis.com, ne sont pas acceptés.
L'acheminement des journaux vers un sujet Pub/Sub qui applique des restrictions en transit n'est pas pris en charge. La journalisation ne peut pas garantir que les requêtes de publication proviennent d'une région autorisée, ce qui entraîne des erreurs de configuration
topic_region_not_allowedet des journaux supprimés.Les limites suivantes s'appliquent lorsque la destination d'un récepteur de journaux est un projet Google Cloud :
- Il existe une limite d'un saut.
- Le récepteur de journaux
_Requireddu projet de destination achemine les entrées de journal vers le bucket de journaux_Requireddu projet lorsque les entrées de journal correspondent au filtre du récepteur et proviennent du projet de destination. - Le récepteur de journaux
_Defaultdu projet de destination route les entrées de journal qui correspondent à son filtre "Inclure" et à aucun filtre "Exclure". Le récepteur de journaux_Defaultexclut certaines entrées de journaux. Par exemple, ce récepteur ne route pas les entrées de journaux d'activité d'administration et d'événements système. Vous pouvez modifier ce collecteur. - Seuls les récepteurs agrégés qui se trouvent dans la hiérarchie des ressources d'une entrée de journal traitent l'entrée.
Par exemple, supposons que la destination d'un récepteur de journaux dans le projet
Asoit le projetB. Dans ce cas, les règles suivantes s'appliquent :- En raison de la limite d'un saut, les collecteurs de journaux du projet
Bne peuvent pas rediriger les entrées de journal vers un autre projet Google Cloud . - Le bucket de journaux
_Requireddu projetBne stocke que les entrées de journal provenant du projetB. Ce bucket de journaux ne stocke aucune entrée de journal provenant d'une autre ressource, y compris celles provenant du projetA. - Si les hiérarchies de ressources des projets
AetBsont différentes, une entrée de journal qu'un récepteur de journaux du projetAachemine vers le projetBn'est pas envoyée aux récepteurs agrégés de la hiérarchie de ressources du projetB. - Si les projets
AetBont la même hiérarchie de ressources, les entrées de journaux sont envoyées aux récepteurs agrégés de cette hiérarchie. Si une entrée de journal n'est pas interceptée par un récepteur agrégé, le routeur de journaux l'envoie aux récepteurs du projetA.
Avant de commencer
Les instructions de ce document décrivent la création et la gestion de récepteurs au niveau du projetGoogle Cloud . Vous pouvez utiliser la même procédure pour créer un récepteur qui achemine les entrées de journal provenant d'une organisation, d'un dossier ou d'un compte de facturation.
Pour commencer, procédez comme suit :
-
Activez l'API Cloud Logging, si ce n'est pas déjà fait.
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles. Assurez-vous que votre projet Google Cloud contient des entrées de journal que vous pouvez consulter dans l'explorateur de journaux.
-
Pour obtenir les autorisations nécessaires pour créer, modifier ou supprimer un récepteur, demandez à votre administrateur de vous accorder le rôle IAM Rédacteur de configuration des journaux (
roles/logging.configWriter) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Pour en savoir plus sur l'attribution de rôles IAM, consultez le guide du contrôle des accès de Logging.
Assurez-vous de disposer d'une ressource dans une destination compatible ou de pouvoir en créer une.
Pour acheminer des entrées de journal vers une destination, celle-ci doit exister avant que vous ne créiez le récepteur. Vous pouvez créer la destination dans n'importe quel projetGoogle Cloud de n'importe quelle organisation.
Avant de créer un récepteur, consultez les limites qui s'appliquent à la destination du récepteur. Pour en savoir plus, consultez la section Limites des destinations de ce document.
Sélectionnez l'interface que vous prévoyez d'utiliser :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud , vous n'avez pas besoin de configurer l'authentification.
gcloud
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée. Après vous être connecté, initialisez la Google Cloud CLI en exécutant la commande suivante :
gcloud initREST
Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .
Créer un récepteur
Cette section explique comment créer un récepteur dans un projet Google Cloud .
Vous pouvez créer jusqu'à 200 destinations par projet Google Cloud .
Pour afficher le nombre et le volume d'entrées de journal routées, consultez les métriques logging.googleapis.com/exports/.
Vous utilisez le langage de requête Logging pour créer une expression de filtre qui correspond aux entrées de journal que vous souhaitez inclure. N'incluez pas d'informations sensibles dans les filtres de récepteur. Les filtres de récepteur sont traités comme des données de service.
Lorsqu'une requête contient plusieurs instructions, vous pouvez spécifier la manière dont ces instructions sont jointes ou vous fier à Cloud Logging qui ajoute implicitement la restriction conjonctive AND entre les instructions. Par exemple, supposons qu'une boîte de dialogue de requête ou de filtre contienne deux instructions, resource.type = "gce_instance" et severity >= "ERROR".
La requête réelle est resource.type = "gce_instance" AND severity >= "ERROR".
Cloud Logging accepte les restrictions disjonctives (OR) et conjonctives (AND). Lorsque vous utilisez des instructions OR, nous vous recommandons de regrouper les clauses avec des parenthèses.
Pour créer un récepteur, procédez comme suit :
Console
-
Dans la console Google Cloud , accédez à la page Routeur de journaux :
Accéder à la page routeur de journaux
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.
Sélectionnez le projet Google Cloud dans lequel les entrées de journal que vous souhaitez acheminer sont générées.
Par exemple, si vous souhaitez acheminer vos entrées de journal d'accès aux données du projet nommé
Project-Avers un bucket de journaux du projet nomméProject-B, sélectionnezProject-A.Sélectionnez Créer un récepteur.
Dans le panneau Détails du récepteur, saisissez les informations suivantes :
Nom du récepteur : saisissez un identifiant pour le récepteur. 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.
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. Effectuez l'une des opérations suivantes :
Pour acheminer les entrées de journal vers un service qui se trouve dans le même projetGoogle Cloud , sélectionnez l'une des options suivantes :
- Bucket Cloud Logging : sélectionnez ou créez un bucket Logging.
- Sujet Pub/Sub : sélectionnez ou créez le sujet pour recevoir les entrées de journal routées.
Pour acheminer les entrées de journal vers un autre projet Google Cloud , sélectionnez Google Cloud projet, puis saisissez le nom complet de la destination :
logging.googleapis.com/projects/DESTINATION_PROJECT_IDPour acheminer les entrées de journal vers un service qui se trouve dans un autre projetGoogle Cloud , procédez comme suit :
- Sélectionnez Autre ressource.
- Saisissez le nom complet de la destination. Pour en savoir plus sur la syntaxe, consultez Formats des chemins de destination.
Spécifiez les entrées de journaux à inclure :
Accédez au panneau Choisir des journaux à inclure dans le récepteur.
Dans le champ Créer un filtre d'inclusion, saisissez une expression de filtre qui correspond aux entrées de journal que vous souhaitez inclure. Pour en savoir plus sur la syntaxe, consultez Langage de requête Logging.
Si vous ne définissez pas de filtre, toutes les entrées de journal de la ressource sélectionnée sont acheminées vers la destination.
Par exemple, pour acheminer toutes les entrées de journal d'accès aux données vers un bucket Logging, vous pouvez utiliser le filtre suivant :
log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")La longueur d'un filtre ne doit pas dépasser 20 000 caractères.
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.
(Facultatif) Configurez un filtre d'exclusion pour éliminer certaines des entrées de journaux incluses :
Accédez au panneau Choisir des journaux à exclure du récepteur.
Dans le champ Nom du filtre d'exclusion, saisissez un nom.
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
samplepour 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.
Sélectionnez Créer un récepteur.
Accordez au compte de service du récepteur l'autorisation d'écrire des entrées de journal dans la destination du récepteur. Pour en savoir plus, consultez Définir les autorisations de destination.
gcloud
Pour créer un récepteur, procédez comme suit :
Exécutez la commande
gcloud logging sinks createsuivante :gcloud logging sinks create SINK_NAME SINK_DESTINATION
Avant d'exécuter la commande, effectuez les remplacements suivants :
- SINK_NAME : nom du récepteur de journaux. Une fois le récepteur créé, vous ne pouvez plus le renommer.
SINK_DESTINATION : service ou projet vers lequel vous souhaitez que vos entrées de journal soient acheminées. Définissez SINK_DESTINATION sur le chemin d'accès approprié, comme décrit dans Formats des chemins de destination.
Par exemple, si la destination de votre récepteur est un sujet Pub/Sub, SINK_DESTINATION se présente comme suit :
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Vous pouvez également fournir 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 fournissez pas de valeur pour le filtre "Inclure", ce filtre correspond à toutes les entrées de journal.--exclusion: utilisez cette option pour définir un filtre "Exclure" pour les entrées de journal que vous ne souhaitez pas que votre récepteur route. Vous pouvez également utiliser la fonctionsamplepour 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 "Exclure" par récepteur.--description: utilisez cette option pour décrire l'objectif ou le cas d'utilisation du récepteur.
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 la Google Cloud CLI, consultez la référence
gcloud logging sinks.Si la réponse de la commande contient une clé JSON intitulée
"writerIdentity", accordez au compte de service du récepteur l'autorisation d'écrire dans la destination du récepteur. Pour en savoir plus, consultez Définir les autorisations de destination.Vous n'avez pas besoin de définir les autorisations de destination lorsque la réponse ne contient pas de clé JSON libellée
"writerIdentity".
REST
Pour créer un récepteur de journaux dans votre projet Google Cloud , utilisez
projects.sinks.createdans l'API Logging. Dans l'objetLogSink, fournissez les valeurs requises appropriées dans le corps de la requête de la méthode :name: identifiant du récepteur. 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 entrées de journal. Pour acheminer les entrées de journal vers un autre projet ou vers une destination située dans un autre projet, définissez le champdestinationsur le chemin d'accès approprié, comme décrit dans Formats des chemins d'accès de destination.Par exemple, si la destination de votre récepteur est un sujet Pub/Sub,
destinationse présente comme suit :pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Dans l'objet
LogSink, fournissez les informations facultatives appropriées :filter: définissez le champfilterpour qu'il corresponde aux entrées de journal que vous souhaitez inclure dans votre récepteur. Si vous ne définissez pas de filtre, toutes les entrées de journal de votre projetGoogle Cloud sont acheminées vers la destination. Notez que la longueur d'un filtre ne peut pas dépasser 20 000 caractères.exclusions: définissez ce champ pour qu'il corresponde aux entrées de journal que vous souhaitez exclure de votre récepteur. Vous pouvez également utiliser la fonctionsamplepour 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 ce champ pour décrire l'objectif ou le cas d'utilisation du récepteur.
Appelez
projects.sinks.createpour créer le récepteur.Si la réponse de l'API contient une clé JSON libellée
"writerIdentity", accordez au compte de service du récepteur l'autorisation d'écrire dans la destination du récepteur. Pour en savoir plus, consultez Définir les autorisations de destination.Vous n'avez pas besoin de définir d'autorisations de destination lorsque la réponse de l'API ne contient pas de clé JSON intitulée
"writerIdentity".
Pour en savoir plus sur la création de récepteurs à l'aide de l'API Logging, consultez la référence LogSink.
Si vous recevez des notifications d'erreur, consultez Résoudre les problèmes de routage et de récepteurs.
Formats des chemins de destination
Lorsque vous configurez une destination de récepteur, indiquez le chemin d'accès complet et utilisez le point de terminaison global du service.
Les points de terminaison de service régionaux (REPs), tels que pubsub.LOCATION.rep.googleapis.com, ne sont pas acceptés.
Dans les formats de chemin d'accès suivants, DESTINATION_PROJECT_ID fait référence à l'ID ou au numéro du projet de destination :
Bucket de journaux Cloud Logging :
logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
Un autre projet Google Cloud :
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
Sujet Pub/Sub :
pubsub.googleapis.com/projects/DESTINATION_PROJECT_ID/topics/TOPIC_ID
Définir les autorisations de la destination
Cette section explique comment accorder à Logging les autorisations Identity and Access Management nécessaires pour écrire des entrées de journal dans la destination de votre récepteur. Pour obtenir la liste complète des rôles et autorisations Logging, consultez Contrôle des accès.
Cloud Logging crée un compte de service partagé pour une ressource lorsqu'un récepteur est créé, sauf si le compte de service requis existe déjà. Il est possible que le compte de service existe, car le même compte de service est utilisé pour tous les récepteurs de la ressource sous-jacente. Une ressource peut être un projet Google Cloud , une organisation, un dossier ou 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 de ceux qui écrivent dans un bucket de journaux du même projet Google Cloud que celui d'où proviennent les entrées de journal. Pour cette dernière configuration, aucun compte de service n'est requis. Par conséquent, le champ Identité de l'auteur du récepteur est indiqué comme None dans la console. L'API et les commandes Google Cloud CLI ne signalent pas d'identité de rédacteur.
Les instructions suivantes s'appliquent aux projets, aux dossiers, aux organisations et aux comptes de facturation :
Console
Assurez-vous de disposer d'un accès Propriétaire au projetGoogle Cloud contenant la destination. Si vous ne disposez pas de l'accès Propriétaire à la destination du récepteur, demandez à un propriétaire du projet d'ajouter l'identité du rédacteur en tant que compte principal.
Pour obtenir l'identité du rédacteur du récepteur (une adresse e-mail) à partir du nouveau récepteur, procédez comme suit :
-
Dans la console Google Cloud , accédez à la page Routeur de journaux :
Accéder à la page routeur de journaux
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.
- Dans la barre d'outils, sélectionnez le projet contenant le récepteur.
- Sélectionnez more_vert Menu, puis Afficher les détails du récepteur. L'identité du rédacteur apparaît dans le panneau Détails du récepteur.
-
Si la valeur du champ
writerIdentitycontient une adresse e-mail, passez à l'étape suivante. Lorsque la valeur estNone, vous n'avez pas besoin de configurer les autorisations de destination pour le récepteur.Copiez l'identité du rédacteur du récepteur dans votre presse-papiers.
L'adresse e-mail identifie le compte principal. Le préfixe
serviceAccount:spécifie le type de compte.Accordez au compte principal spécifié dans l'identité du rédacteur du récepteur l'autorisation d'écrire des données de journaux dans la destination :
-
Dans la console Google Cloud , accédez à la page IAM :
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est IAM et administration.
Dans la barre d'outils, assurez-vous que le projet sélectionné est celui qui stocke la destination ou qu'il s'agit de la destination du récepteur. Par exemple, si la destination est un bucket de journaux, assurez-vous que la barre d'outils affiche le projet qui stocke le bucket de journaux.
Sélectionnez Accorder l'accès.
Attribuez au compte principal spécifié dans l'identité du rédacteur du récepteur un rôle IAM en fonction de la destination du récepteur de journaux :
- Pour toutes les destinations, accordez le rôle "Auteur de journaux" (
roles/logging.logWriter). Plus précisément, un compte principal a besoin de l'autorisationlogging.logEntries.route. - Attribuez l'un des rôles suivants en fonction de la destination :
- Bucket de journaux : accordez le rôle Rédacteur de bucket de journaux (
roles/logging.bucketWriter). - Sujet Pub/Sub : accordez le rôle Éditeur Pub/Sub (
roles/pubsub.publisher).
- Bucket de journaux : accordez le rôle Rédacteur de bucket de journaux (
- Pour toutes les destinations, accordez le rôle "Auteur de journaux" (
-
gcloud
Assurez-vous de disposer d'un accès Propriétaire au projetGoogle Cloud contenant la destination. Si vous ne disposez pas de l'accès Propriétaire à la destination du récepteur, demandez à un propriétaire du projet d'ajouter l'identité du rédacteur en tant que compte principal.
Obtenez le compte de service à partir du champ
writerIdentityde votre récepteur :gcloud logging sinks describe SINK_NAME
Recherchez le récepteur dont vous souhaitez modifier les autorisations. Si les détails du récepteur contiennent une ligne avec
writerIdentity, passez à l'étape suivante. Lorsque les détails n'incluent pas de champwriterIdentity, vous n'avez pas besoin de configurer les autorisations de destination pour le récepteur.L'identité du rédacteur pour le compte de service ressemble à ce qui suit :
serviceAccount:service-123456789012@gcp-sa-logging.
Accordez à l'identité du rédacteur du récepteur l'autorisation d'écrire des données de journaux dans la destination en appelant la commande
gcloud projects add-iam-policy-binding.Avant d'utiliser la commande suivante, effectuez les remplacements suivants :
- PROJECT_ID : identifiant du projet. Spécifiez le projet qui stocke la destination du récepteur de journaux. Si la destination est un projet, spécifiez-le.
- PRINCIPAL : identifiant du compte principal auquel vous souhaitez accorder le rôle. Les identifiants des comptes principaux se présentent généralement sous la forme suivante :
PRINCIPAL-TYPE:ID. Par exemple,. Pour obtenir la liste complète des formats que peut avoirPRINCIPAL, consultez Identifiants principaux. ROLE : un rôle IAM. Attribuez un rôle IAM à l'identité du rédacteur du récepteur en fonction de la destination du récepteur de journaux :
- Pour toutes les destinations, accordez le rôle "Auteur de journaux" (
roles/logging.logWriter). Plus précisément, un compte principal a besoin de l'autorisationlogging.logEntries.route. - Attribuez l'un des rôles suivants en fonction de la destination :
- Bucket de journaux : accordez le rôle Rédacteur de bucket de journaux (
roles/logging.bucketWriter). - Sujet Pub/Sub : accordez le rôle Éditeur Pub/Sub (
roles/pubsub.publisher).
- Bucket de journaux : accordez le rôle Rédacteur de bucket de journaux (
- Pour toutes les destinations, accordez le rôle "Auteur de journaux" (
Exécutez la commande
gcloud projects add-iam-policy-binding:gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
REST
Nous vous recommandons d'utiliser la console Google Cloud ou la Google Cloud CLI pour attribuer un rôle au compte de service.
Filtrer les exemples
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 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 pour le récepteur _Default, vous pouvez le restaurer dans sa configuration d'origine. Une fois créé, le récepteur _Default est configuré avec le filtre « Inclure » suivant et un filtre « Exclure » vide :
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 entrées de journaux de conteneurs et de pods 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 entrées de journal de nœud Google Kubernetes Engine pour les valeurs log_id du système GKE, utilisez le filtre suivant :
resource.type = "k8s_node"
(log_id("container-runtime") OR
log_id("docker") OR
log_id("kube-container-runtime-monitor") OR
log_id("kube-logrotate") OR
log_id("kube-node-configuration") OR
log_id("kube-node-installation") OR
log_id("kubelet") OR
log_id("kubelet-monitor") OR
log_id("node-journal") OR
log_id("node-problem-detector"))
Assistance
Bien que Cloud Logging vous permette d'exclure des entrées de journaux et d'empêcher leur stockage dans un bucket de journaux, vous pouvez envisager de conserver les entrées de journaux qui facilitent la prise en charge. L'utilisation de ces entrées de journal peut vous aider à résoudre et à identifier les problèmes liés à vos applications.
Par exemple, les entrées de journaux système GKE sont utiles pour résoudre les problèmes liés à vos applications et clusters GKE, car elles sont générées pour les événements qui se produisent dans votre cluster. Ces entrées de journal peuvent vous aider à déterminer si le code de votre application ou le cluster GKE sous-jacent est à l'origine d'une erreur d'application. Les journaux système GKE incluent également la journalisation d'audit Kubernetes générée par le composant de serveur d'API Kubernetes, qui inclut les modifications apportées à l'aide de la commande kubectl et des événements Kubernetes.