Ce document explique comment créer et gérer des récepteurs, qui acheminent les entrées de journal provenant d'un projet Google Cloud vers des destinations compatibles.
Lorsqu'un récepteur n'est pas un bucket de journaux dans le projet Google Cloud à partir duquel une entrée de journal provient, un compte de service est requis. Cloud Logging crée et gère automatiquement ce compte de service. Toutefois, vous devrez peut-être modifier les autorisations accordées à ce compte de service. Vous pouvez créer et gérer un compte de service utilisé par des sinks dans plusieurs projets. Pour en savoir plus, consultez la section Configurer des destinations de journaux avec des comptes de service gérés par l'utilisateur.
Présentation
Les Sinks déterminent la manière dont Cloud Logging achemine les entrées de journal. En utilisant des récepteurs, vous pouvez acheminer une partie ou l'intégralité de vos entrées de journal vers les destinations suivantes:
Bucket Cloud Logging: permet de stocker des données dans Cloud Logging. Un bucket de journaux peut stocker des entrées de journal reçues par plusieurs projets Google Cloud. Le bucket de journaux peut se trouver dans le même projet que les entrées de journal ou dans un autre projet. Pour savoir comment afficher les entrées de journal stockées dans des buckets de journaux, consultez les pages Présentation de l'interrogation et de l'affichage des journaux et Afficher les journaux acheminés vers des buckets Cloud Logging.
Vous pouvez combiner vos données de journalisation dans le cloud avec d'autres données en mettant à niveau un bucket de journaux pour utiliser Log Analytics, puis en créant un ensemble de données associé, qui est un ensemble de données en lecture seule pouvant être interrogé par les pages BigQuery Studio et Looker Studio.
Ensemble de données BigQuery: permet de stocker les entrées de journal dans un ensemble de données BigQuery enregistrable. L'ensemble de données BigQuery peut se trouver dans le même projet que les entrées de journal ou dans un autre projet. Vous pouvez utiliser les fonctionnalités d'analyse des données massives sur les entrées de journal stockées. Pour savoir comment afficher les entrées de journal routées vers BigQuery, consultez la section Afficher les journaux routés vers BigQuery.
- Bucket Cloud Storage: permet de stocker les entrées de journal dans Cloud Storage. Le bucket Cloud Storage peut se trouver dans le même projet que les entrées de journal ou dans un autre projet. Les entrées de journaux sont stockées sous forme de fichiers JSON. Pour en savoir plus sur l'affichage des entrées de journal acheminées vers Cloud Storage, consultez la section Afficher les journaux acheminés vers Cloud Storage.
Sujet Pub/Sub: permet d'intégrer des tiers. Les entrées de journal sont mises en forme au format JSON, puis acheminées vers un sujet Pub/Sub. Le sujet peut se trouver dans le même projet que les entrées de journal ou dans un autre projet. Pour savoir comment afficher les entrées de journal acheminées vers Pub/Sub, consultez la section Afficher les journaux acheminés vers Pub/Sub.
Projet Google Cloud: redirigez les entrées de journal vers un autre projet Google Cloud. Dans cette configuration, les récepteurs du projet de destination traitent les entrées de journal.
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 n'acheminent que les entrées de journal provenant d'une ressource. Toutefois, pour les dossiers et les organisations, vous pouvez créer des récepteurs agrégés, qui acheminent les entrées de journal du dossier ou de l'organisation, ainsi que les ressources qu'il contient. Ce document ne traite pas des collecteurs agrégés. Pour en savoir plus, consultez la section Générer et acheminer des journaux au niveau de l'organisation vers des destinations compatibles.
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:
- La page Routeur de journaux liste tous les récepteurs et propose des options pour les gérer.
- Lorsque vous créez un récepteur, vous pouvez prévisualiser les entrées de journal qui correspondent aux filtres du récepteur.
- Vous pouvez configurer les destinations de récepteur lorsque vous en créez un.
- Certaines étapes d'autorisation sont effectuées pour vous.
Avant de commencer
Les instructions de ce document expliquent comment créer et gérer des récepteurs au niveau du projet Google 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:
-
Enable the Cloud Logging API.
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 collecteur, demandez à votre administrateur de vous accorder le rôle IAM Rédacteur de la configuration des journaux (
roles/logging.configWriter
) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.Vous pouvez également obtenir les autorisations requises via 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.
Vous disposez d'une ressource dans une destination compatible ou vous pouvez en créer une.
Pour acheminer les entrées de journal vers une destination, celle-ci doit exister avant de créer le récepteur. Vous pouvez créer la destination dans n'importe quel projet Google 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.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
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
Les instructions ci-dessous permettent de créer un récepteur dans un projet Google Cloud. Vous pouvez utiliser la même procédure pour acheminer les entrées de journal provenant d'une organisation, d'un dossier ou d'un compte de facturation:
- Vous pouvez créer jusqu'à 200 récepteurs par projet Google Cloud.
- N'ajoutez pas d'informations sensibles dans les filtres de l'évier. Les filtres de destination sont traités comme des données de service.
- Le démarrage de l'acheminement des entrées de journal vers les nouveaux récepteurs vers des buckets Cloud Storage peut prendre plusieurs heures. Les récepteurs vers Cloud Storage sont traités toutes les heures, tandis que les autres types de destinations sont traités en temps réel.
Les entonnoirs ne peuvent pas acheminer les entrées de journal vers des ensembles de données BigQuery associés, qui sont en lecture seule. Si vous souhaitez acheminer des entrées de journal vers BigQuery, l'ensemble de données de destination doit être activé en écriture.
Les récepteurs ne définissent pas le schéma des ensembles de données BigQuery. À la place, la première entrée de journal reçue par BigQuery détermine le schéma de la table de destination. Pour en savoir plus, consultez la page Schéma BigQuery des journaux acheminés.
Pour savoir comment afficher les entrées de journal dans la destination d'un récepteur, consultez la section Afficher les journaux acheminés vers des buckets Cloud Logging.
Pour afficher le nombre et le volume des entrées de journal acheminées, consultez les métriques
logging.googleapis.com/exports/
.Lorsqu'une requête contient plusieurs instructions, vous pouvez spécifier comment elles sont jointes ou vous pouvez vous fier à Cloud Logging pour ajouter 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"
etseverity >= "ERROR"
. La requête réelle estresource.type = "gce_instance" AND severity >= "ERROR"
. Cloud Logging accepte à la fois les restrictions disjonctives (OR
) et les restrictions conjonctives (AND
). Lorsque vous utilisez des instructionsOR
, nous vous recommandons de regrouper les clauses entre parenthèses. Pour en savoir plus, consultez la page Langage de requête Logging.
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 au 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 à partir duquel proviennent les entrées de journal que vous souhaitez acheminer.
Par exemple, si vous souhaitez acheminer vos entrées de journal d'accès aux données du projet nommé
Project-A
vers un bucket de journaux du projet nomméProject-B
, sélectionnezProject-A
.Cliquez sur Créer un récepteur.
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.
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 appartenant au même projet Google Cloud, sélectionnez l'une des options suivantes:
- Bucket Cloud Logging : sélectionnez ou créez un bucket Logging.
- Ensemble de données BigQuery: sélectionnez ou créez l'ensemble de données en lecture-écriture qui recevra les entrées de journal acheminées. Vous pouvez également utiliser des tables partitionnées.
- Bucket Cloud Storage: sélectionnez ou créez le bucket Cloud Storage spécifique qui recevra les entrées de journal routées.
- Sujet Pub/Sub: sélectionnez ou créez le sujet particulier qui recevra les entrées de journal routées.
- Splunk : sélectionnez le sujet Pub/Sub du service Splunk.
Pour acheminer les entrées de journal vers un autre projet Google Cloud, sélectionnez Projet Google Cloud, puis saisissez le nom complet de la destination. Pour en savoir plus sur la syntaxe, consultez la section Formats de chemin de destination.
Pour acheminer des entrées de journal vers un service situé dans un autre projet Google Cloud, procédez comme suit:
- Sélectionnez Autre ressource.
- Saisissez le nom complet de la destination. Pour en savoir plus sur la syntaxe, consultez la section Formats de chemin de destination.
Spécifiez les entrées de journal à inclure:
Accédez au panneau Sélectionner les journaux à inclure dans le récepteur.
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, 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 de journalisation, 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 supprimer certaines des entrées de journal 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
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.
Cliquez sur Créer un récepteur.
Accordez au compte de service du récepteur l'autorisation d'écrire des entrées de journal sur la destination de votre récepteur. Pour en savoir plus, consultez la section Définir les autorisations des destinations.
gcloud
Pour créer un récepteur, procédez comme suit :
Exécutez la commande
gcloud logging sinks create
suivante :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 collecteur créé, vous ne pouvez plus modifier son nom.
SINK_DESTINATION: service ou projet vers lequel vous souhaitez acheminer vos entrées de journal. Définissez SINK_DESTINATION avec le chemin d'accès approprié, comme décrit dans la section Formats de chemin d'accès 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
: 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 spécifiez pas de valeur pour le filtre d'inclusion, ce filtre correspond à toutes les entrées de journal.--exclusion
: cette option permet de définir un filtre d'exclusion pour les entrées de journal que vous souhaitez exclure du routage de votre récepteur. Vous pouvez également utiliser la fonctionsample
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.
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 sinks à l'aide de la Google Cloud CLI, consultez la documentation de référence sur
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 sur la destination du récepteur. Pour en savoir plus, consultez la section Définir les autorisations des destinations.Vous n'avez pas besoin de définir les autorisations de destination lorsque la réponse ne contient pas de clé JSON étiquetée
"writerIdentity"
.
REST
Pour créer un récepteur de journalisation dans votre projet Google Cloud, utilisez
projects.sinks.create
dans l'API Logging. Dans l'objetLogSink
, 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 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 champdestination
avec le chemin d'accès approprié, comme décrit dans la section Formats de chemin d'accès de destination.Par exemple, si la destination de votre récepteur est un sujet Pub/Sub,
destination
se présente comme suit:pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Dans l'objet
LogSink
, indiquez les informations facultatives appropriées:filter
: définissez le champfilter
pour 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 projet Google 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 fonctionsample
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 ce champ pour décrire l'objectif ou le cas d'utilisation du récepteur.
Appelez
projects.sinks.create
pour créer le récepteur.Si la réponse de l'API contient une clé JSON étiquetée
"writerIdentity"
, accordez au compte de service du collecteur l'autorisation d'écrire à la destination du collecteur. Pour en savoir plus, consultez la section Définir les autorisations des destinations.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 libellé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
.Si vous recevez des notifications d'erreur, consultez la section Résoudre les problèmes de routage et de récepteur.
Formats de chemin de destination
Si vous acheminez des entrées de journal vers un service situé dans un autre projet, vous devez fournir au récepteur le nom complet du service. De même, si vous acheminez des entrées de journal vers un autre projet Google Cloud, vous devez fournir au collecteur le nom complet 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
Ensemble de données BigQuery:
bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
Cloud Storage :
storage.googleapis.com/BUCKET_NAME
Sujet Pub/Sub:
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Gérer les récepteurs
Une fois les récepteurs créés, vous pouvez y effectuer les actions suivantes. L'application des modifications apportées à un évier peut prendre quelques minutes:
- Afficher les détails
- Mettre à jour
Désactiver
- Vous ne pouvez pas désactiver le récepteur
_Required
. - Vous pouvez désactiver le récepteur
_Default
pour l'empêcher de router les entrées de journal vers le bucket Logging_Default
. - Si vous souhaitez désactiver le récepteur
_Default
pour tous les nouveaux projets ou dossiers Google Cloud créés dans votre organisation, envisagez de configurer les paramètres de ressources par défaut.
- Vous ne pouvez pas désactiver le récepteur
Supprimer
- Vous ne pouvez pas supprimer les récepteurs
_Default
ou_Required
. - Lorsque vous supprimez un récepteur, il n'achemine plus les entrées de journal.
- Si le récepteur dispose d'un compte de service dédié, la suppression de ce récepteur entraîne également la suppression du compte de service. Les exécutions créées avant le 22 mai 2023 disposent de comptes de service dédiés. Les exécutions créées le 22 mai 2023 ou après disposent d'un compte de service partagé. La suppression du récepteur ne supprime pas le compte de service partagé.
- Vous ne pouvez pas supprimer les récepteurs
Résoudre les échecs
- Afficher le volume et les taux d'erreur des journaux
Les instructions ci-dessous permettent de gérer un récepteur dans un projet Google Cloud. Au lieu d'un projet Google Cloud, vous pouvez spécifier un compte de facturation, un dossier ou une organisation:
Console
-
Dans la console Google Cloud, accédez à la page Routeur de journaux :
Accéder au 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 la ressource contenant votre évier. La ressource peut être un projet, un dossier, une organisation ou un compte de facturation.
La page Routeur de journaux affiche les récepteurs de la ressource sélectionnée. 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 sont 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.
Pour chaque ligne du tableau, le menu more_vert Autres actions fournit 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 entrées de journal vers la destination du récepteur. Pour en savoir plus sur la désactivation des récepteurs, consultez la section Arrêter le stockage des journaux dans des buckets de journaux.
- Activer le récepteur: permet d'activer un récepteur désactivé et de redémarrer les entrées de journal de routage vers la destination du récepteur.
- Supprimer le récepteur: permet de supprimer le récepteur et d'arrêter le routage des entrées de journal 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 liées au récepteur.
- Afficher le volume et les taux d'erreur des journaux de récepteurs: ouvre l'explorateur de métriques, dans lequel vous pouvez afficher et analyser les données du récepteur.
Pour trier le tableau en fonction d'une colonne, sélectionnez son nom.
gcloud
Pour afficher la liste des récepteurs pour votre projet Google Cloud, utilisez la commande
gcloud logging sinks list
, qui correspond à la méthode API Loggingprojects.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 Loggingprojects.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 APIprojects.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éemy-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 APIprojects.sink.update
, et ajoutez l'option--disabled
:gcloud logging sinks update SINK_NAME --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 SINK_NAME --no-disabled
Pour supprimer un récepteur, utilisez la commande
gcloud logging sinks delete
, qui correspond à la méthode APIprojects.sinks.delete
:gcloud logging sinks delete SINK_NAME
Pour en savoir plus sur la gestion des embases à l'aide de la Google Cloud CLI, consultez la documentation de référence sur
gcloud logging sinks
.
REST
Pour afficher les récepteurs de votre projet Google 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, définissez le champ
disabled
de l'objetLogSink
surtrue
, puis appelezprojects.sink.update
.Pour réactiver le récepteur, définissez le champ
disabled
de l'objetLogSink
surfalse
, puis appelezprojects.sink.update
.Pour supprimer un récepteur, appelez
projects.sinks.delete
.Pour en savoir plus sur la gestion des récepteurs à l'aide de l'API Logging, consultez la documentation de référence sur
LogSink
.
Arrêter de stocker des entrées de journal dans des buckets de journaux
Vous pouvez désactiver le récepteur
_Default
et les récepteurs définis par l'utilisateur. Lorsque vous désactivez un récepteur, il cesse d'acheminer les entrées de journal vers sa destination. Par exemple, si vous désactivez le récepteur_Default
, aucune entrée de journal n'est acheminée vers le bucket_Default
. Le bucket_Default
devient vide lorsque toutes les entrées de journal précédemment stockées ont atteint la durée de conservation du bucket.Les instructions suivantes montrent comment désactiver les récepteurs de votre projet Google Cloud qui acheminent les entrées de journal vers les buckets de journaux
_Default
:Console
-
Dans la console Google Cloud, accédez à la page Routeur de journaux :
Accéder au 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.
- Pour rechercher l'ensemble des récepteurs qui acheminent les entrées de journal vers le bucket de journaux
_Default
, filtrez-les par destination, puis saisissez_Default
. Pour chaque récepteur, sélectionnez more_vert 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 Google Cloud n'acheminent plus d'entrées de journal vers le bucket
_Default
.
Pour réactiver un récepteur désactivé et redémarrer les entrées de journal de routage vers la destination du récepteur, procédez comme suit:
-
Dans la console Google Cloud, accédez à la page Routeur de journaux :
Accéder au 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.
- Pour rechercher l'ensemble des récepteurs qui acheminent les entrées de journal vers le bucket de journaux
_Default
, filtrez-les par destination, puis saisissez_Default
. - Pour chaque récepteur, sélectionnez more_vert Menu, puis Enable sink (Activer le récepteur).
gcloud
Pour afficher la liste des récepteurs pour votre projet Google Cloud, utilisez la commande
gcloud logging sinks list
, qui correspond à la méthode API Loggingprojects.sinks.list
:gcloud logging sinks list
Identifiez les récepteurs qui sont acheminés vers le bucket de journaux
_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
Exécutez la commande
gcloud logging sinks update
en incluant l'option--disabled
. Par exemple, pour désactiver le récepteur_Default
, utilisez la commande suivante:gcloud logging sinks update _Default --disabled
Le récepteur
_Default
est maintenant désactivé ; il n'achemine plus les entrées de journal vers le bucket de journaux_Default
.
Pour désactiver les autres récepteurs de votre projet Google Cloud qui sont acheminés vers le bucket
_Default
, répétez les étapes précédentes.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
REST
Pour afficher les récepteurs de votre projet Google Cloud, appelez la méthode API Logging
projects.sinks.list
.Identifiez les récepteurs qui sont acheminés vers le bucket
_Default
.Par exemple, pour désactiver le récepteur
_Default
, définissez le champdisabled
de l'objetLogSink
surtrue
, puis appelezprojects.sink.update
.Le récepteur
_Default
est maintenant désactivé ; il n'achemine plus les entrées de journal vers le bucket_Default
.
Pour désactiver les autres récepteurs de votre projet Google Cloud qui sont acheminés vers le bucket
_Default
, répétez les étapes précédentes.Pour réactiver un récepteur, définissez le champ
disabled
de l'objetLogSink
surfalse
, puis appelezprojects.sink.update
.Définir les autorisations de la destination
Cette section explique comment accorder à Logging les autorisations Identity and Access Management pour écrire des entrées de journal 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 collecteur 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 collecteurs de la ressource sous-jacente. Les ressources peuvent être un projet Google Cloud, une organisation, un dossier ou un compte de facturation.
L'identité de l'auteur d'un collecteur est l'identifiant du compte de service associé à ce collecteur. Tous les récepteurs ont une identité d'auteur, à l'exception de ceux qui écrivent dans un bucket de journaux du même projet Google Cloud d'où provient l'entrée de journal. Pour cette dernière configuration, un compte de service n'est pas requis. Par conséquent, le champ writerIdentity du récepteur est répertorié comme
None
dans la console. L'API et les commandes Google Cloud CLI ne signalent pas d'identité d'auteur.Les instructions suivantes s'appliquent aux projets, dossiers, organisations et comptes de facturation:
Console
Assurez-vous de disposer d'un accès Propriétaire au projet Google Cloud contenant la destination. Si vous ne disposez pas d'un 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 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 au 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 sink.
- 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
writerIdentity
contient 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.
Si la destination est un service dans un autre projet ou s'il s'agit d'un autre projet, sélectionnez le projet de destination dans la barre d'outils.
Ajoutez le compte de service en tant que principal IAM dans le projet de 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.
Sélectionnez le projet de destination.
Cliquez sur
Accorder l'accès.Attribuez au compte de service le rôle IAM requis:
- Pour les destinations Cloud Storage, ajoutez l'identité du rédacteur du récepteur en tant que principal à l'aide d'IAM, puis attribuez-lui le rôle Créateur d'objets Storage (
roles/storage.objectCreator
). - Pour les destinations BigQuery, ajoutez l'identité du rédacteur du récepteur en tant qu'entité principale à l'aide d'IAM, puis attribuez-lui le rôle Éditeur de données BigQuery (
roles/bigquery.dataEditor
). - Pour les destinations Pub/Sub, y compris Splunk, ajoutez l'identité du rédacteur du récepteur en tant que principal à l'aide d'IAM, puis attribuez-lui le rôle Éditeur Pub/Sub (
roles/pubsub.publisher
). - Pour les destinations des buckets Logging situées dans des projets Google Cloud différents, ajoutez l'identité du rédacteur du récepteur en tant que principal à l'aide d'IAM, puis attribuez-lui le rôle Écrivain de bucket de journaux (
roles/logging.bucketWriter
). - Pour les destinations de projets Google Cloud, ajoutez l'identité du rédacteur du récepteur en tant que principal à l'aide d'IAM, puis attribuez-lui le rôle Rédacteur de journaux (
roles/logging.logWriter
). Plus précisément, un principal a besoin de l'autorisationlogging.logEntries.route
.
- Pour les destinations Cloud Storage, ajoutez l'identité du rédacteur du récepteur en tant que principal à l'aide d'IAM, puis attribuez-lui le rôle Créateur d'objets Storage (
-
gcloud
Assurez-vous de disposer d'un accès Propriétaire au projet Google Cloud contenant la destination. Si vous ne disposez pas d'un 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 principal.
Obtenez le compte de service à partir du champ
writerIdentity
de 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 du compte de service se présente comme suit:
serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
Ajoutez le compte de service en tant que principal IAM dans le projet de destination:
Avant d'utiliser la commande suivante, effectuez les remplacements suivants:
- PROJECT_ID: identifiant du projet.
- PRINCIPAL: identifiant du compte principal auquel vous souhaitez accorder le rôle. Les identifiants principaux se présentent généralement sous la forme suivante :
PRINCIPAL-TYPE:ID
. Par exemple,user:my-user@example.com
. Pour obtenir la liste complète des formats pouvant être utilisés pourPRINCIPAL
, consultez la section Identifiants principaux. ROLE: rôle IAM.
- Pour les destinations Cloud Storage, ajoutez l'identité du rédacteur du récepteur en tant que principal à l'aide d'IAM, puis attribuez-lui le rôle Créateur d'objets Storage (
roles/storage.objectCreator
). - Pour les destinations BigQuery, ajoutez l'identité du rédacteur du récepteur en tant qu'entité principale à l'aide d'IAM, puis attribuez-lui le rôle Éditeur de données BigQuery (
roles/bigquery.dataEditor
). - Pour les destinations Pub/Sub, y compris Splunk, ajoutez l'identité du rédacteur du récepteur en tant que principal à l'aide d'IAM, puis attribuez-lui le rôle Éditeur Pub/Sub (
roles/pubsub.publisher
). - Pour les destinations des buckets Logging situées dans des projets Google Cloud différents, ajoutez l'identité de rédacteur du récepteur en tant que principal à l'aide d'IAM, puis attribuez-lui le rôle Écrivain de bucket de journaux (
roles/logging.bucketWriter
). - Pour les destinations de projets Google Cloud, ajoutez l'identité du rédacteur du récepteur en tant que principal à l'aide d'IAM, puis attribuez-lui le rôle Rédacteur de journaux (
roles/logging.logWriter
). Plus précisément, un principal a besoin de l'autorisationlogging.logEntries.route
.
- Pour les destinations Cloud Storage, ajoutez l'identité du rédacteur du récepteur en tant que principal à l'aide d'IAM, puis attribuez-lui le rôle Créateur d'objets Storage (
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 Google Cloud CLI pour attribuer un rôle à un compte de service.
Limites des destinations
Cette section décrit les limites spécifiques à la destination:
- Si vous acheminez des entrées de journal vers un bucket de journaux dans un autre projet Google Cloud, Error Reporting ne les analyse pas. Pour en savoir plus, consultez la présentation d'Error Reporting.
- Si vous acheminez des entrées de journal vers BigQuery, l'ensemble de données BigQuery doit être activé en écriture. Vous ne pouvez pas acheminer les entrées de journal vers des ensembles de données associés, qui sont en lecture seule.
Les limites suivantes s'appliquent lorsque vous acheminez vos entrées de journal vers différents projets Google Cloud:
Il est limité à un saut.
Par exemple, si vous acheminez les entrées de journal du projet
A
vers le projetB
, vous ne pouvez pas acheminer les entrées de journal du projetB
vers un autre projet.Les journaux d'audit ne sont pas acheminés vers le bucket de journaux
_Required
du projet de destination.Par exemple, si vous acheminez les entrées de journal du projet
A
vers le projetB
, le bucket de journaux_Required
du projetA
contient les journaux d'audit du projetA
. Les journaux d'audit du projetA
ne sont pas acheminés vers le projetB
. Pour acheminer ces entrées de journal, créez un récepteur dont la destination est un bucket de journaux.Lorsque le projet de destination se trouve dans un autre dossier ou une autre organisation, les récepteurs agrégés de ce dossier ou de cette organisation n'acheminent pas l'entrée de journal.
Par exemple, supposons que le projet
A
se trouve dans le dossierX
. Lorsqu'une entrée de journal provient du projetA
, elle est traitée par les récepteurs agrégés du dossierX
et les récepteurs du projetA
. Supposons maintenant que le projetA
contienne un récepteur qui achemine ses entrées de journal vers le projetB
, qui se trouve dans le dossierY
. Les entrées de journal du projetA
passent par les récepteurs du projetB
. Toutefois, elles ne passent pas par les récepteurs agrégés du dossierY
.
Pour utiliser l'explorateur de journaux afin d'afficher les entrées de journal acheminées vers un projet à l'aide d'un collecteur agrégé, définissez le champ Affiner le champ d'application sur le champ d'application de stockage, puis sélectionnez une vue de journal qui permet d'accéder à ces entrées de journal.
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 pour le récepteur
_Default
, vous pouvez rétablir sa configuration d'origine. Lors de sa création, le récepteur_Default
est configuré avec le filtre d'inclusion suivant et un filtre d'exclusion 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 journal de conteneur et de pod 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 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 entrées de journal de nœud, de pod et de conteneur Google Kubernetes Engine stockées dans des buckets de journaux, utilisez l'explorateur de métriques:
- Afficher le volume d'entrée de journal du nœud
- Afficher le volume d'entrée de journal du pod
- Afficher le volume d'entrée de journal du conteneur
Exclure les journaux Dataflow non requis pour assurer la compatibilité
Pour exclure les entrées de journal Dataflow qui ne sont pas requises 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 journaux Dataflow stockés dans des buckets de journaux, utilisez l'explorateur de métriques.
Assistance
Bien que Cloud Logging vous permette d'exclure des entrées de journal et de les empêcher d'être stockées dans un bucket de journaux, vous pouvez envisager de conserver les entrées de journal 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 journal 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 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'écrire 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"
) dans des buckets de journaux. 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.Étape suivante
Si vous rencontrez des problèmes lors de l'utilisation de récepteurs pour acheminer des entrées de journal, consultez la page Résoudre les problèmes de routage des journaux.
Pour savoir comment afficher les entrées de journal dans leurs destinations, et découvrir comment les journaux sont formatés et organisés, consultez la page Afficher les journaux dans les destinations de récepteur.
Pour en savoir plus sur les requêtes et le filtrage avec le langage de requête Logging, consultez la page Langage de requête Logging.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/12/22 (UTC).