Créer et gérer des portées de journaux

Ce document explique comment créer et gérer des champs d'application de journal, qui vous permettent de trouver efficacement les entrées de journal que vous souhaitez afficher ou analyser. Si vous souhaitez uniquement afficher et analyser les entrées de journal provenant d'un projet, d'un dossier ou d'une organisation, ce document n'est pas fait pour vous. Toutefois, si vous utilisez des récepteurs de journaux pour acheminer des journaux vers d'autres projets ou vers des buckets de journaux définis par l'utilisateur, ou si vous utilisez des vues de journaux, les informations de ce document peuvent vous aider à trouver efficacement des entrées de journal spécifiques.

Ce document n'explique pas comment afficher vos journaux. Pour en savoir plus sur ce sujet, consultez la section Afficher les journaux à l'aide de l'explorateur de journaux.

À propos des champs d'application des journaux

Les champs d'application des journaux sont des ressources persistantes au niveau du projet qui listent un ensemble de ressources. Il peut s'agir de projets, de dossiers, d'organisations et de vues de journaux. Par exemple, vous pouvez définir un champ d'action de journaux qui liste les projets contenant des ressources utilisées pour la production ou qui liste les vues de journaux qui incluent des entrées de journal pour un type de ressource spécifique.

Lorsque vous créez un projet, un dossier ou une ressource d'organisation Google Cloud, la journalisation crée un champ d'application des journaux nommé _Default. Ce champ d'application inclut le projet, le dossier ou l'organisation créés. Lorsque la ressource recherchée est un projet, un dossier ou une organisation Google Cloud, les résultats incluent les entrées de journal provenant de la ressource, puis stockées dans un bucket de journaux. Lorsqu'un projet est recherché, les résultats incluent également les entrées de journal qui sont acheminées vers le projet par un récepteur dans un autre projet, puis stockées dans un bucket de journaux.

Vous pouvez créer des champs d'application des journaux. Vous pouvez également modifier et supprimer les portées de journal que vous créez. Toutefois, vous ne pouvez pas modifier ni supprimer le champ d'application des journaux nommé _Default.

Vous utilisez un champ d'action des journaux pour contrôler les ressources pour lesquelles la page Explorateur de journaux recherche des données de journal. Lorsque vous ouvrez cette page et sélectionnez un champ d'application de journal, la page recherche les ressources listées dans ce champ d'application, puis actualise l'affichage.

Vous pouvez également utiliser une portée de journal pour contrôler les ressources pour lesquelles un panneau de journaux recherche des données de journal. Un panneau de journaux est un widget de tableau de bord personnalisé qui affiche les données de journal. Chaque panneau de journaux a sa propre configuration, ce qui vous permet de créer un tableau de bord contenant plusieurs panneaux de journaux, chacun affichant des données de journal différentes. Pour en savoir plus, consultez la section Afficher les journaux et les erreurs dans un tableau de bord personnalisé.

Pour les projets, le champ d'application des journaux par défaut détermine l'ensemble de ressources que la page Explorateur de journaux recherche lors de son ouverture. Toutefois, vos rôles IAM (Identity and Access Management) sur les ressources recherchées et le paramètre de période déterminent les entrées de journal extraites du stockage. Lorsque des projets sont créés, le champ d'application des journaux nommé _Default est désigné comme champ d'application des journaux par défaut. Vous pouvez définir le champ d'action des journaux par défaut.

Différences entre les portées de journal et le stockage centralisé des journaux

Le stockage centralisé des journaux et les portées de journaux vous permettent de consulter les données de journaux provenant de différents projets.

Lorsque vous configurez un bucket de journaux centralisé, les entrées de journal reçues par Google Cloudsont acheminées vers un seul emplacement de stockage. Le stockage centralisé permet de rechercher des données de journal à un seul et même endroit, ce qui simplifie vos requêtes lorsque vous recherchez des tendances ou que vous étudiez des problèmes. Du point de vue de la sécurité, vous disposez également d'un seul emplacement de stockage, ce qui peut simplifier les tâches de vos analystes de sécurité.

Lorsqu'une requête est envoyée aux ressources listées dans le champ d'application d'un journal, les résultats de la requête individuelle sont combinés. Un champ d'action de journal facilite l'agrégation des données de journal au moment de la lecture, qui peuvent être stockées à différents endroits. Toutefois, une portée de journal peut également être utilisée pour fournir un accès en lecture à une ou plusieurs vues de journaux sur un bucket de journaux centralisé.

Lorsque la page Explorateur de journaux s'ouvre, elle émet des requêtes aux ressources listées dans le champ d'action des journaux par défaut. Par conséquent, configurez la portée par défaut afin que la page affiche les données que vous souhaitez généralement consulter. Par exemple, vous pouvez définir la portée des journaux par défaut pour afficher une vue de journal qui, lorsqu'elle est interrogée, renvoie les données de journal d'une application App Hub.

Bonnes pratiques

Étant donné que les portées de journalisation vous permettent de définir et d'enregistrer une configuration pour une utilisation ultérieure, nous vous recommandons de créer des portées de journalisation pour les configurations de recherche complexes.

Par exemple, supposons que vous résolvez un problème et que vous souhaitiez afficher les entrées de journal de toutes les instances de machine virtuelle (VM) appartenant à votre équipe. Pour ce faire, vous pouvez procéder comme suit:

  1. Vous déterminez que les entrées de journal que vous souhaitez afficher sont stockées dans plusieurs buckets de journaux et dans plusieurs projets. Pour la plupart des buckets de journaux, une vue de journal existe et inclut les entrées de journal que vous souhaitez analyser. Si aucune vue de journal n'existe, vous pouvez en créer une.

  2. Vous décidez de créer une portée de journalisation, car vous prévoyez d'avoir une tâche de dépannage similaire à l'avenir.

  3. Vous ouvrez la page Explorateur de journaux dans la console Google Cloud, puis utilisez le menu Affiner la portée pour sélectionner votre nouvelle portée de journal.

  4. Vous examinez les entrées de journal et trouvez les informations dont vous avez besoin pour résoudre le problème que vous examiniez.

  5. Une fois le problème résolu, vous partagez la cause de l'échec avec vos collègues. Vous indiquez également que vous vous attendez à voir des échecs similaires à l'avenir. Vous avez donc créé une portée de journal qui vous permettra, ou à toute personne qui enquêtera sur l'échec, de trouver rapidement les entrées de journal pertinentes.

Applications App Hub et portées des journaux

Vos applications App Hub peuvent écrire des données de journal dans plusieurs projets. Vos données de journal peuvent être stockées dans le projet d'où elles proviennent, ou un administrateur de l'organisation peut avoir configuré un stockage centralisé. Pour afficher les données de journal de votre application, créez une portée de journal pour votre projet hôte App Hub et configurez-la pour lister les projets ou les vues de journal qui stockent les données de journal de votre application. Nous vous recommandons de définir votre champ d'application de journal personnalisé comme champ d'application de journal par défaut. Une fois ces étapes effectuées, la page Explorer des journaux affiche automatiquement les données écrites par votre application, même si elles sont stockées dans différents projets ou dans un bucket de journaux centralisé.

Limites

  • Vous ne pouvez pas supprimer ni modifier le champ d'application de journal nommé _Default.
  • Seuls les projets Google Cloud acceptent un champ d'application de journal par défaut.
  • Vous ne pouvez pas ajouter de dossiers ni d'organisations à une portée de journal définie par l'utilisateur.
  • Les portées de journalisation sont créées dans l'emplacement global.

Avant de commencer

  • Pour obtenir les autorisations nécessaires pour créer et afficher des portées de journal, et pour définir la portée de journal par défaut, demandez à votre administrateur de vous accorder les rôles IAM suivants:

    • Pour créer et afficher des champs d'action de journaux, ou pour obtenir le champ d'action des journaux par défaut : Rédacteur de configuration des journaux (roles/logging.configWriter) sur votre projet, votre dossier ou votre organisation
    • Pour définir ou obtenir le champ d'application des journaux par défaut : Éditeur d'observabilité (roles/observability.editor) sur votre projet, votre dossier ou votre organisation

    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.

    Ces rôles prédéfinis contiennent les autorisations requises pour créer et afficher des portées de journalisation, et pour définir la portée de journalisation par défaut. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

    Autorisations requises

    Vous devez disposer des autorisations suivantes pour créer et afficher des portées de journalisation, et pour définir la portée de journalisation par défaut:

    • Pour définir la portée des journaux par défaut : observability.scopes.{get, update}
    • Pour créer et gérer des portées de journaux : logging.logScopes.{create, delete, get, list, update}

    Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

  • 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.

    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.

    Terraform

    Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

    1. Install the Google Cloud CLI.
    2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    3. To initialize the gcloud CLI, run the following command:

      gcloud init
    4. If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.

    Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.

    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.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.

Lister les champs d'application de journaux

Console

Pour lister les portées de journalisation, procédez comme suit:

  1. Accédez à la page  Paramètres dans la console Google Cloud.

    Accéder aux paramètres

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  2. Sélectionnez l'onglet Champ d'application des journaux.

    Le tableau liste vos champs d'application des journaux. Lorsque vous avez sélectionné un projet Google Cloud, une entrée du tableau s'affiche avec une icône "Par défaut", , qui indique que ce champ d'action des journaux liste les ressources recherchées par l'explorateur de journaux lorsque cette page est ouverte.

gcloud

Pour répertorier les portées de journalisation d'un projet, exécutez la commande gcloud logging scopes list:

 gcloud logging scopes list --project=PROJECT_ID

Avant d'exécuter la commande, mettez à jour les champs suivants:

  • PROJECT_ID: identifiant du projet.

Pour obtenir les détails d'une portée de journal dans un projet, utilisez la commande gcloud logging scopes describe:

 gcloud logging scopes describe LOG_SCOPE --project=PROJECT_ID

Avant d'exécuter la commande, mettez à jour les champs suivants:

  • PROJECT_ID: identifiant du projet.
  • LOG_SCOPE: nom de la portée du journal. Exemple :my-scope

Terraform

Vous pouvez utiliser Terraform pour créer et modifier une portée de journal. Toutefois, vous ne pouvez pas utiliser Terraform pour lister les champs d'application des journaux.

REST

L'API Cloud Logging contient des commandes qui listent les portées de journal dans une ressource ou qui indiquent les détails d'une portée de journal spécifique. Pour obtenir la liste complète des commandes, consultez la documentation de référence sur les API.

Pour les projets Google Cloud, utilisez les commandes suivantes:

Dans la commande de l'API, définissez le champ locations sur global.

Définir le champ d'action des journaux par défaut

Cette section ne s'applique pas aux dossiers ni aux organisations. Pour les dossiers et les organisations, lorsque la page Explorateur de journaux s'ouvre, elle recherche les entrées de journal provenant du dossier ou de l'organisation.

Lorsqu'un projet est créé, un champ d'application des journaux nommé _Default est créé. Ce champ d'application liste une seule ressource, à savoir votre projet, et est désigné comme champ d'application des journaux par défaut. Si vous créez un projet et que vous ne modifiez pas le champ d'action des journaux par défaut, la page Explorateur de journaux recherche toutes les entrées de journal provenant du projet lorsqu'elle s'ouvre.

Vous pouvez créer votre propre champ d'application des journaux et le désigner comme champ d'application des journaux par défaut. Cette fonctionnalité vous permet de configurer les ressources pour lesquelles la page Explorateur de journaux recherche des entrées de journal.

Console

Pour définir le champ d'application des journaux par défaut d'un projet, procédez comme suit:

  1. Enable the Observability API.

    Enable the API

    Avant d'activer l'API Observabilité, assurez-vous que le bon projet est sélectionné. Pour les configurations App Hub, sélectionnez le projet hôte App Hub.

  2. Accédez à la page  Paramètres dans la console Google Cloud.

    Accéder aux paramètres

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

    La page Paramètres contient plusieurs onglets. Chaque onglet affiche la configuration de la portée pour un type de télémétrie particulier.

  3. Sélectionnez l'onglet Champ d'application des journaux.

  4. Recherchez la portée de journal que vous souhaitez désigner comme portée de journal par défaut, cliquez sur  Plus, puis sélectionnez Définir comme valeur par défaut.

    Le champ d'action des journaux que vous avez sélectionné est associé à l'icône "Par défaut", .

gcloud

Non compatible

Terraform

Vous pouvez utiliser Terraform pour créer et modifier une portée de journal. Toutefois, vous ne pouvez pas utiliser Terraform pour définir le champ d'action des journaux par défaut.

REST

Pour utiliser l'API Observability afin d'obtenir ou de définir la portée de journalisation par défaut, procédez comme suit:

  1. Assurez-vous que l'API Observabilité est activée:

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Définissez le projet par défaut pour la Google Cloud CLI:

      gcloud config set project PROJECT_ID
      

      Avant d'exécuter la commande précédente, remplacez les éléments suivants:

      • PROJECT_ID: identifiant du projet. Pour les configurations App Hub, sélectionnez le projet hôte App Hub.
    3. Enable the Observability API:

      gcloud services enable observability.googleapis.com
  2. Effectuez l'une des opérations suivantes :

    • Pour obtenir le champ d'application des journaux par défaut d'un projet, envoyez une requête au point de terminaison projects.locations.scopes.get. Vous devez spécifier un paramètre de chemin d'accès. La réponse est un objet Scope, qui liste la portée de journalisation par défaut.

    • Pour mettre à jour le champ d'application des journaux par défaut d'un projet, envoyez une requête au point de terminaison projects.locations.scopes.patch. Vous devez spécifier un paramètre de chemin, des paramètres de requête et fournir un objet Scope. Les paramètres de requête identifient les champs modifiés. La réponse est un objet Scope.

      Le paramètre de chemin d'accès des deux points de terminaison se présente sous la forme suivante:

      projects/PROJECT_ID/locations/LOCATION/scopes/OBSERVABILITY_SCOPE_ID
      

      Les champs de l'expression précédente ont la signification suivante:

      • PROJECT_ID: identifiant du projet. Pour les configurations App Hub, sélectionnez le projet hôte App Hub.
      • LOCATION: le champ d'emplacement doit être défini sur global.
      • OBSERVABILITY_SCOPE_ID: nom d'un objet Scope. Ce champ doit être défini sur _Default. L'objet Scope portant le nom _Default stocke des informations sur la portée des journaux par défaut et est créé automatiquement.

Créer un champ d'application de journal

Vous pouvez créer 100 champs d'application des journaux par projet. Un champ d'application des journaux peut inclure un total de 100 vues de journal et de projets. Toutefois, il ne peut inclure que cinq projets. Vous ne pouvez pas ajouter de dossiers ni d'organisations à une portée de journal.

Console

Pour créer un champ d'application des journaux, procédez comme suit:

  1. Accédez à la page  Paramètres dans la console Google Cloud.

    Accéder aux paramètres

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  2. Sélectionnez l'onglet Champs d'application des journaux, puis cliquez sur Créer un champ d'application des journaux.
  3. Pour ajouter un ou plusieurs projets, cliquez sur Ajouter des projets, puis renseignez la boîte de dialogue.

    Une fois que vous avez ajouté un projet, vos rôles IAM sur ce projet déterminent les entrées de journal que vous pouvez afficher. Par exemple, votre rôle IAM peut vous permettre d'afficher uniquement les entrées de journal accessibles via une vue de journal spécifique sur un bucket de journaux. Pour en savoir plus sur les rôles, consultez la section Rôles de journalisation.

  4. Pour ajouter une ou plusieurs vues de journaux, cliquez sur Ajouter des vues de journaux, puis remplissez la boîte de dialogue.

    La boîte de dialogue liste toutes les vues de journaux contenant des entrées de journal provenant du projet en cours ou acheminées vers le projet en cours par un collecteur dans un autre projet. Par exemple, si vous n'avez configuré aucun récepteur, cette boîte de dialogue liste les vues de journaux de votre projet actuel.

    Pour afficher les vues de journaux stockées dans un autre projet Google Cloud, cliquez sur  Importer un projet, puis sélectionnez le projet Google Cloud.

    Une fois que vous avez ajouté une vue de journal, vos rôles IAM dans la vue de journal ou dans le projet qui la stocke déterminent les entrées de journal auxquelles vous pouvez accéder. Pour en savoir plus, consultez la page Contrôler l'accès à une vue de journal.

  5. Dans la section Nommer la portée des journaux, saisissez le nom et la description que vous souhaitez afficher dans l'onglet Portées des journaux.

    Le nom d'un champ d'application de journal ne peut pas être modifié et doit être unique dans le projet.

  6. Cliquez sur Créer une portée de journalisation.

gcloud

Pour créer une portée de journalisation dans un projet, exécutez la commande gcloud logging scopes create:

 gcloud logging scopes create LOG_SCOPE --project=PROJECT_ID \
   --description=DESCRIPTION \
   --resource-names=RESOURCE_NAMES

Avant d'exécuter la commande, mettez à jour les champs suivants:

  • PROJECT_ID: identifiant du projet.
  • LOG_SCOPE: nom de la portée du journal. Exemple :my-scope

  • DESCRIPTION : facultatif. Description du champ d'application du journal. Mettez en forme la description sous forme de chaîne.

  • RESOURCE_NAMES: liste des noms complets des projets ou des vues de journaux, séparés par une virgule. Par exemple, pour inclure my-project dans le champ d'application des journaux, spécifiez projects/my-project.

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base. Pour en savoir plus, consultez la documentation de référence du fournisseur Terraform.

Pour créer une portée de journal dans un projet, un dossier ou une organisation à l'aide de Terraform, utilisez la ressource Terraform google_logging_log_scope.

Dans la commande, définissez les champs suivants:

  • parent: nom complet de votre projet, dossier ou organisation. Par exemple, vous pouvez définir ce champ sur "projects/PROJECT_ID", où PROJECT_ID correspond à l'ID de votre projet Google Cloud.
  • Définissez locations sur "global".
  • name: défini sur le nom complet de la portée du journal. Pour les projets, le format de ce champ est le suivant:

    "projects/PROJECT_ID/locations/global/logScopes/LOG_SCOPE"
    

    Dans l'expression précédente, LOG_SCOPE correspond au nom d'un champ d'application des journaux, tel que "production".

  • resource_names: tableau de projets et de vues de journaux, où chaque projet et chaque vue de journal est spécifié à l'aide de son nom complet.

  • description: brève description (par exemple, "Champ d'application des ressources de production").

REST

L'API Cloud Logging permet également de créer des portées de journaux dans un dossier ou une organisation. Pour en savoir plus, consultez la documentation de référence sur les API.

Pour les projets Google Cloud, utilisez la commande suivante:

Dans la commande de l'API, définissez le champ locations sur global.

Modifier ou supprimer une portée de journal

Console

Pour modifier ou supprimer une portée de journal que vous ou un collègue avez créée, procédez comme suit:

  1. Accédez à la page  Paramètres dans la console Google Cloud.

    Accéder aux paramètres

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  2. Sélectionnez l'onglet Champ d'application des journaux.
  3. Recherchez les champs d'application des journaux que vous souhaitez modifier ou supprimer, cliquez sur  Plus, puis effectuez l'une des actions suivantes:

    • Pour le modifier, sélectionnez Modifier le champ d'application, puis remplissez la boîte de dialogue.
    • Pour supprimer la portée, sélectionnez Delete scope (Supprimer la portée), puis remplissez la boîte de dialogue.

gcloud

Pour modifier la description de la liste des ressources dans une portée de journal d'un projet, utilisez la commande gcloud logging scopes update:

 gcloud logging scopes update LOG_SCOPE --project=PROJECT_ID \
   --description=DESCRIPTION \
   --resource-names=RESOURCE_NAMES

Avant d'exécuter la commande, mettez à jour les champs suivants:

  • PROJECT_ID: identifiant du projet.
  • LOG_SCOPE: nom de la portée du journal. Exemple :my-scope

  • DESCRIPTION: description de la portée des journaux. Mettez en forme la description sous forme de chaîne. Omettre ce champ lorsque vous ne souhaitez pas modifier la description de la portée des journaux

  • RESOURCE_NAMES: liste des noms complets des projets ou des vues de journaux, séparés par une virgule. Omettre ce champ lorsque vous ne souhaitez pas modifier la liste des ressources

Pour supprimer une portée de journal dans un projet, utilisez la commande gcloud logging scopes delete:

 gcloud logging scopes delete LOG_SCOPE --project=PROJECT_ID

Avant d'exécuter la commande, mettez à jour les champs suivants:

  • PROJECT_ID: identifiant du projet.
  • LOG_SCOPE: nom de la portée du journal. Exemple :my-scope

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base. Pour en savoir plus, consultez la documentation de référence du fournisseur Terraform.

Pour modifier la portée des journaux dans un projet, un dossier ou une organisation à l'aide de Terraform, utilisez la ressource Terraform google_logging_log_scope.

REST

L'API Cloud Logging contient des commandes permettant de modifier ou de supprimer une portée de journal. Pour obtenir la liste complète des commandes, consultez la documentation de référence sur les API.

Pour les projets Google Cloud, utilisez les commandes suivantes:

Dans la commande de l'API, définissez le champ locations sur global.

Étape suivante