Analyser les données de journaux avec BigQuery

Ce document explique comment analyser vos données de journaux à l'aide des services BigQuery, qui peuvent interroger des ensembles de données BigQuery associés. Si vous créez un ensemble de données BigQuery associé sur un bucket de journaux, vous pouvez interroger vos données de journaux à l'aide de BigQuery ou de Data Studio. Vous pouvez également configurer la page Observability Analytics pour exécuter des requêtes sur le moteur BigQuery. Vous pouvez créer des règles d'alerte qui surveillent les résultats des requêtes SQL exécutées sur le moteur BigQuery.

Vous ne pouvez pas créer d'ensemble de données BigQuery associé pour une vue Analytics.

Si vous ne connaissez pas Observability Analytics, consultez la présentation d'Observability Analytics .

Quand avez-vous besoin d'un ensemble de données associé ?

Vous n'avez pas besoin d'un ensemble de données BigQuery associé lorsque vous souhaitez interroger vos données de journaux ou vos données de journaux et de trace. Dans ces cas, vous pouvez utiliser la page Observability Analytics. Vous pouvez également enregistrer et partager vos requêtes, et les enregistrer dans un tableau de bord personnalisé. Pour en savoir plus sur l'interrogation de vos données de trace, consultez Interroger et analyser des traces.

Vous avez besoin d'un ensemble de données BigQuery associé lorsque vous souhaitez effectuer l'une des opérations suivantes :

Un ensemble de données BigQuery associé pour un bucket de journaux permet à BigQuery de lire les données dans le bucket de journaux.

Comment les buckets de journaux et les vues de journaux sont-ils mappés aux objets BigQuery ?

Lorsque vous créez un ensemble de données BigQuery associé pour un bucket de journaux, un nouvel ensemble de données devient disponible pour BigQuery. Vous spécifiez le nom de l'ensemble de données associé lors du processus d'association. Toutes les vues de journaux du bucket de journaux sont automatiquement mappées à des vues virtuelles dans l'ensemble de données. Le nom d'une vue virtuelle est identique à celui de la vue de journal correspondante.

Supposons, par exemple, que le projet my_project comporte un bucket de journaux nommé example, et que ce bucket de journaux comporte une vue de journaux nommée _AllLogs. Si vous créez un ensemble de données associé pour ce bucket de journaux avec le nom my_dataset, la page Explorer de BigQuery affiche une entrée my_project. Un enfant de l'entrée my_project est un ensemble de données nommé my_dataset, et cet ensemble de données répertorie une vue virtuelle nommée _AllLogs.

Implications du contrôle des accès lors de l'utilisation d'ensembles de données associés

Lorsqu'un compte principal interroge une vue sur un ensemble de données BigQuery associé, cette requête s'exécute via la couche d'autorisation BigQuery, et non via la couche d'autorisation Cloud Logging. Par conséquent, les rôles et autorisations BigQuery accordés au compte principal sur l'ensemble de données associé déterminent s'il peut interroger l'ensemble de données.

Vous ne pouvez pas limiter un compte principal à une vue virtuelle spécifique dans un ensemble de données associé. Lorsqu'un compte principal a accès à l'ensemble de données associé, il peut interroger toutes les vues de cet ensemble de données.

Moteurs de requête disponibles

Observability Analytics vous permet d'exécuter vos requêtes SQL sur le moteur Logging par défaut ou sur le moteur BigQuery. Si vous exécutez une requête sur votre moteur BigQuery, votre ensemble de données BigQuery associé est interrogé, ce qui signifie que vos autorisations BigQuery sont validées.

Pour en savoir plus, consultez Choisir votre moteur de requête Observability Analytics.

Avant de commencer

Cette section décrit les étapes que vous devez suivre avant de pouvoir utiliser Observability Analytics.

Configurer des buckets de journaux

Assurez-vous que vos buckets de journaux ont été mis à niveau pour utiliser Observability Analytics :

  1. Dans la Google Cloud console, accédez à la page Stockage des journaux :

    Accéder à la page Stockage des journaux

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

  2. Pour chaque bucket de journaux comportant une vue de journaux que vous souhaitez interroger, assurez-vous que la colonne Observability Analytics disponible affiche Ouvrir. Si Mettre à niveau s'affiche, cliquez sur Mettre à niveau et remplissez la boîte de dialogue.

Configurer des rôles et des autorisations IAM

Cette section décrit les rôles ou autorisations IAM requis pour utiliser Observability Analytics :

  • Pour obtenir les autorisations nécessaires pour utiliser Observability Analytics et interroger des vues de journaux, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :

    Vous pouvez limiter un compte principal à une vue de journaux spécifique en ajoutant une condition IAM à l'attribution du rôle Accesseur de vues de journaux effectuée au niveau du projet, ou en ajoutant une liaison IAM au fichier de stratégie de la vue de journaux. Pour en savoir plus, consultez Contrôler l'accès à une vue de journaux.

    Il s'agit des mêmes autorisations que celles dont vous avez besoin pour afficher les entrées de journal sur la page Explorateur de journaux. Pour en savoir plus sur les rôles supplémentaires dont vous avez besoin pour interroger des vues sur des buckets définis par l'utilisateur ou pour interroger la vue _AllLogs du bucket de journaux _Default, consultez Rôles Cloud Logging.

  • Pour obtenir les autorisations nécessaires pour créer et interroger des ensembles de données associés, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet qui stocke le bucket de journaux :

    • Pour créer et afficher des ensembles de données associés : Rédacteur de configuration des journaux (roles/logging.configWriter)
    • Pour exécuter des requêtes sur des ensembles de données associés à l'aide de slots BigQuery :
    • Pour afficher des ensembles de données associés dans BigQuery Studio, accordez tous les rôles mentionnés dans cette étape, ainsi que le rôle suivant. Vous pouvez accorder ce rôle à un ensemble de données ou à votre projet: Lecteur de données BigQuery (roles/bigquery.dataViewer)

Vérifier votre édition BigQuery

Si vous souhaitez interroger vos données de journaux à partir de la page Observability Analytics en exécutant des requêtes sur des slots BigQuery et si vous utilisez des projets avec les contrôles des services de cloud privé virtuel (VPC), assurez-vous d'utiliser l'édition Enterprise de BigQuery. Pour en savoir plus, consultez Comprendre les éditions BigQuery.

Lorsque vous souhaitez utiliser les fonctionnalités de BigQuery pour analyser vos données de journaux, mettez à niveau un bucket de journaux pour utiliser Observability Analytics, puis créez un ensemble de données associé. Avec cette configuration, Logging stocke vos données de journaux, mais BigQuery peut les lire.

Google Cloud Console

Pour créer un lien vers un ensemble de données BigQuery pour un bucket de journaux existant, procédez comme suit :

  1. Dans la Google Cloud console, accédez à la page Stockage des journaux :

    Accéder à la page Stockage des journaux

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

  2. Recherchez le bucket de journaux et vérifiez que la colonne Observability Analytics disponible affiche Ouvrir.

    Si cette colonne affiche Mettre à niveau, cela signifie que le bucket de journaux n'a pas été mis à niveau pour utiliser Observability Analytics. Configurez Observability Analytics :

    1. Cliquez sur Mettre à niveau.
    2. Cliquez sur Confirmer dans la boîte de dialogue.

    Une fois la mise à niveau terminée, passez à l'étape suivante.

  3. Dans le bucket de journaux, cliquez sur Plus, puis sur Modifier le bucket.

    La boîte de dialogue Modifier le bucket de journaux s'ouvre.

  4. Sélectionnez Créer un ensemble de données BigQuery associé à ce bucket , puis saisissez le nom du nouvel ensemble de données.

    Le nom de l'ensemble de données doit être unique pour chaque Google Cloud projet. Si vous saisissez le nom d'un ensemble de données existant, l'erreur suivante s'affiche : Dataset name must be unique in the selected region.

  5. Cliquez sur Terminé , puis sur Mettre à jour le bucket.

    Une fois que Logging affiche le nom de l'ensemble de données associé sur la page Stockage des journaux, BigQuery peut mettre plusieurs minutes à reconnaître l'ensemble de données.

gcloud

Pour créer un ensemble de données associé pour un bucket de journaux mis à niveau pour utiliser Observability Analytics, exécutez la gcloud logging links create commande :

gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION

Le LINK_ID que vous fournissez est utilisé comme nom de l'ensemble de données BigQuery, et la valeur de ce champ doit être unique pour votre Google Cloud projet.

La commande links create est asynchrone. Le retour d'une méthode asynchrone est un Operation objet, et il contient des informations sur la progression de la méthode. Une fois la méthode terminée, l'objet Operation contient l'état. Pour en savoir plus, consultez Méthodes d'API asynchrones.

L'exécution de la commande links create prend plusieurs minutes.

Par exemple, la commande suivante crée un ensemble de données associé nommé mylink pour le bucket de journaux nommé my-bucket :

gcloud logging links create mylink --bucket=my-bucket --location=global

Le nom de l'ensemble de données doit être unique pour chaque Google Cloud projet. Si vous tentez de créer un ensemble de données portant le même nom qu'un ensemble de données existant, l'erreur suivante s'affiche :

BigQuery dataset with name "LINK_ID" already exists.

Si vous tentez de créer un ensemble de données associé pour un bucket de journaux qui n'est pas mis à niveau pour utiliser Observability Analytics, l'erreur suivante est signalée :

A link can only be created for an analytics-enabled bucket.

REST

Pour créer un ensemble de données BigQuery associé pour un bucket de journaux existant mis à niveau pour utiliser Observability Analytics, appelez la méthode asynchrone projects.locations.buckets.links.create de l'API Cloud Logging.

Préparez les arguments de la méthode comme suit :

  1. Créez le corps de la requête pour la commande create. Le corps de la requête est mis en forme en tant qu'objet Link.
  2. Pour le paramètre de requête de la commande, utilisez linkId=LINK_ID. Le LINK_ID que vous fournissez est utilisé comme nom de l'ensemble de données BigQuery, et la valeur de ce champ doit être unique pour votre Google Cloud projet.

La réponse aux méthodes asynchrones est un Operation objet. Cet objet contient des informations sur la progression de la méthode. Une fois la méthode terminée, l'objet Operation contient l'état. Pour en savoir plus, consultez Méthodes d'API asynchrones.

L'exécution de la méthode links.create prend plusieurs minutes.

Le nom de l'ensemble de données doit être unique pour chaque Google Cloud projet. Si vous tentez de créer un ensemble de données portant le même nom qu'un ensemble de données existant, l'erreur suivante s'affiche :

BigQuery dataset with name "LINK_ID" already exists.

Si vous tentez de créer un ensemble de données associé pour un bucket de journaux qui n'est pas mis à niveau pour utiliser Observability Analytics, l'erreur suivante est signalée :

A link can only be created for an analytics-enabled bucket.

Exécuter des requêtes à partir de BigQuery

Lorsque vous disposez d'un bucket de journaux qui utilise Observability Analytics et des ensembles de données associés, vous pouvez afficher et interroger vos ensembles de données associés à l'aide de la page BigQuery Studio. Avec cette configuration, vous pouvez analyser vos ensembles de données à l'aide de commandes, de workflows et d'ensembles de données disponibles uniquement dans BigQuery Studio.

Pour ouvrir BigQuery à partir d'Observability Analytics, puis interroger l'ensemble de données associé, procédez comme suit :

  1. Assurez-vous qu'un ensemble de données associé existe pour le bucket de journaux qui héberge la vue de journaux que vous souhaitez interroger :

    1. Dans la Google Cloud console, accédez à la page Stockage des journaux :

      Accéder à la page Stockage des journaux

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

    2. Recherchez le bucket de journaux et vérifiez que la colonne Ensemble de données BigQuery associé affiche une URL. Si l'entrée est vide, vous devez créer un ensemble de données associé. Pour en savoir plus sur ces étapes, consultez Créer un ensemble de données BigQuery associé

  2. Dans la Google Cloud console, accédez à la page Analyse de journaux :

    Accéder à l'Analyse de journaux

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

  3. Dans la liste Vues de journaux, recherchez et sélectionnez la vue de journaux.

  4. Dans le volet Schéma, sélectionnez Requête.

    Une requête par défaut est insérée dans le volet Requête. Vous pouvez également saisir une requête dans le volet Requête ou modifier une requête affichée.

  5. Dans la barre d'outils, développez le bouton Exécuter la requête ou Exécuter sur BigQuery, puis sélectionnez Ouvrir dans BigQuery.

    La page BigQuery Studio s'ouvre. L'FROM instruction de la requête est modifiée pour spécifier le chemin d'accès à la vue de journaux sur l' ensemble de données associé à l'aide de la syntaxe du chemin d'accès à la table BigQuery .

    Vous pouvez également modifier la requête affichée.

  6. Sur la page BigQuery Studio, cliquez sur Exécuter la requête.

Exécuter des requêtes Observability Analytics sur des slots BigQuery

Lorsque vous souhaitez surveiller les résultats de votre requête SQL avec une règle d'alerte, exécutez vos requêtes sur le moteur BigQuery en procédant comme suit :

  1. Assurez-vous qu'un ensemble de données associé existe pour le bucket de journaux qui héberge la vue de journaux que vous souhaitez interroger :

    1. Dans la Google Cloud console, accédez à la page Stockage des journaux :

      Accéder à la page Stockage des journaux

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

    2. Recherchez le bucket de journaux et vérifiez que la colonne Ensemble de données BigQuery associé affiche une URL. Si l'entrée est vide, alors créez un ensemble de données BigQuery associé.

  2. Configurez Observability Analytics pour exécuter vos requêtes sur le moteur BigQuery :

    1. Dans la Google Cloud console, accédez à la page Analyse de journaux :

      Accéder à l'Analyse de journaux

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

    2. Dans la liste Vues de journaux, recherchez la vue, puis sélectionnez Requête ou saisissez une requête.

      Si le volet de requête affiche un message d'erreur faisant référence à l'instruction FROM, cela signifie que la table ne peut pas être résolue en une vue de journaux spécifique. Pour en savoir plus sur la résolution de cet échec, consultez Erreur FROM clause must contain exactly one log view.

    3. Accédez à la barre d'outils et vérifiez qu'un bouton libellé Exécuter sur BigQuery s'affiche.

      Si la barre d'outils affiche Exécuter la requête, alors cliquez sur Paramètres et sélectionnez BigQuery.

      Si le bouton Exécuter sur BigQuery est désactivé, vous devez créer un ensemble de données associé.

    4. Exécutez votre requête.

      Vous pouvez utiliser les options de la barre d'outils pour mettre en forme votre requête, l'effacer et ouvrir la documentation de référence SQL BigQuery.

Étape suivante