Récepteurs agrégés

Cette page explique comment créer un récepteur agrégé pouvant acheminer des entrées de journal à partir de tous les projets, dossiers et comptes de facturation Google Cloud d'une organisation Google Cloud. Par exemple, vous pouvez regrouper et acheminer des entrées de journaux d'audit depuis les projets Cloud d'une organisation vers une destination centrale.

Concept

Sans la fonctionnalité du récepteur agrégé, les récepteurs sont limités au routage des entrées de journal depuis la ressource exacte dans laquelle le récepteur a été créé: un projet, une organisation, un dossier ou un compte de facturation Google Cloud.

Pour utiliser des récepteurs agrégés, créez un récepteur dans une organisation ou un dossier Google Cloud, puis définissez son paramètre includeChildren sur True. Ce récepteur peut ensuite acheminer des entrées de journal depuis l'organisation ou le dossier, ainsi que depuis tous les dossiers, comptes de facturation ou projets qui s'y trouvent (de façon récursive). Vous pouvez utiliser le filtre du récepteur pour spécifier des entrées de journal de projets, de types de ressources ou de journaux nommés.

Pour en savoir plus sur les récepteurs et leur création, consultez la page Exporter des journaux dans l'API et la section Créer des récepteurs à partir de l'outil de ligne de commande.

Créer la destination

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.

Les destinations acceptées pour les récepteurs sont les suivantes :

La destination peut être créée dans n'importe quel projet Cloud de n'importe quelle organisation, si le compte de service du récepteur de journaux dispose des autorisations nécessaires pour écrire dans la destination.

Créer un récepteur agrégé

Pour créer un récepteur agrégé dans des dossiers, des comptes de facturation ou des organisations Google Cloud, vous pouvez utiliser l'une des méthodes suivantes :API Cloud Logging ou gcloud outil de ligne de commande s'affiche en haut de l'écran.

API

Pour créer un récepteur de journalisation, utilisez organizations.sinks.create, folders.sinks.create ou billingAccounts.sinks.create dans l'API Logging. Préparez les arguments de la méthode comme suit :

  1. Définissez le paramètre parent comme l'organisation, le dossier ou le compte de facturation Google Cloud dans lequel créer le récepteur. Le parent doit correspondre à l'un des éléments suivants :

    • organizations/ORGANIZATION_ID
    • folders/FOLDER_ID
    • billingAccounts/BILLING_ACCOUNT_ID
  2. Dans l'objet LogSink du corps de la requête de méthode, procédez comme suit:

    • Définissez includeChildren sur True.

    • Définissez la propriété filter. Logging associe toutes les entrées de journal de tous vos projets au filtre.

      Pour obtenir des exemples de filtres utiles, consultez la section Créer des filtres pour les récepteurs agrégés.

    • Définissez les champs LogSink restants comme vous le feriez pour n’importe quel récepteur. Pour en savoir plus, consultez la section Créer des récepteurs.

  3. Appelez la méthode organisations.sinks.create ou folders.sinks.create pour créer le récepteur.

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

  5. Autorisez ce compte de service à écrire sur la destination du 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 plus d'informations sur l'octroi des autorisations de comptes de service pour les ressources, consultez les liens suivants pour la destination de votre récepteur:

Ligne de commande

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

  1. Indiquez le nom du récepteur, sa destination, le filtre et l'ID du dossier, du compte de facturation ou de l'organisation.

    Par exemple, pour configurer un récepteur agrégé au niveau du dossier, procédez comme suit :

    gcloud logging sinks create SINK_NAME \
    storage.googleapis.com/BUCKET_NAME --include-children \
    --folder=FOLDER_ID --log-filter="logName:activity"

    Notes :

    • Pour créer un récepteur au niveau de l'organisation, remplacez --folder=[FOLDER_ID] par --organization=[ORGANIZATION_ID]. Pour un compte de facturation, remplacez cette ressource par --billing-account=[BILLING_ACCOUNT_ID].

    • Pour permettre au récepteur d'inclure tous les projets de l'organisation, vous devez spécifier l'option --include-children, même si l'option --organization est transmise à create. Lorsque cette option est définie sur false (valeur par défaut), le récepteur ne achemine que les journaux de la ressource hôte.

    • Vous devez disposer du rôle IAM Rédacteur de configuration des journaux pour que le parent puisse créer le récepteur. Pour plus d'informations sur les rôles IAM de Logging, consultez le guide du contrôle des accès.

    • Pour obtenir des exemples de filtres utiles, consultez les exemples de l'outil de ligne de commande gcloud pour créer des récepteurs.

  2. Récupérez le nom du compte de service utilisé pour créer le récepteur à partir du résultat de la commande.

  3. Autorisez ce compte de service à écrire sur la destination du 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 plus d'informations sur l'octroi des autorisations de comptes de service pour les ressources, consultez les liens suivants pour la destination de votre récepteur:

Créer des filtres pour les récepteurs agrégés

Comme tout récepteur, votre récepteur agrégé contient un filtre qui sélectionne les entrées de journal individuelles. Pour en savoir plus sur les filtres, consultez la page Langage de requête Logging.

Voici quelques exemples de comparaisons de filtres pouvant vous servir si vous utilisez la fonctionnalité de récepteurs agrégés. Certains exemples utilisent la notation suivante :

  • : désigne l'opérateur de la sous-chaîne. Ne remplacez pas l'opérateur =.
  • ... représente les comparaisons de filtres supplémentaires, le cas échéant.
  • Les variables sont indiquées par du texte en couleur. Remplacez-les par des valeurs valides.

Sélectionner la source des journaux

Pour acheminer des journaux à partir de projets, de dossiers ou d'organisations cloud spécifiques, utilisez l'un des exemples de comparaisons suivants:

logName:"projects/PROJECT_ID/logs/" AND ... 
logName:("projects/PROJECT_A_ID/logs/" OR "projects/PROJECT_B_ID/logs/") AND ... 
logName:"folders/FOLDER_ID/logs/" AND ... 
logName:"organizations/ORGANIZATION_ID/logs/" AND ... 

Sélectionner la ressource surveillée

Pour acheminer des journaux à partir d'une seule ressource surveillée spécifique dans un projet Cloud, utilisez plusieurs comparaisons afin de spécifier précisément la ressource:

logName:"projects/PROJECT_ID/logs" AND
resource.type=RESOURCE_TYPE AND
resource.labels.instance_id=INSTANCE_ID

Pour obtenir la liste des types de ressources, consultez la section Types de ressources surveillées.

Sélectionner un échantillon d'entrées de journal

Pour acheminer un échantillon aléatoire d'entrées de journal, ajoutez la fonction intégrée sample. Par exemple, pour acheminer uniquement 10 % des entrées de journal correspondant à votre filtre actuel, utilisez cette addition:

sample(insertId, 0.10) AND ...

Pour en savoir plus, consultez la section concernant la fonction sample.

Pour en savoir plus sur les filtres Cloud Logging, consultez la page Langage de requête Logging.

Tarifs

Aucuns frais ne sont facturés pour l'acheminement des journaux, mais des frais de destination peuvent s'appliquer. Pour en savoir plus, consultez la page des tarifs du produit concerné :