Représenter graphiquement les résultats d'une requête avec l'Analyse de journaux

Ce document explique comment représenter sous forme graphique les résultats de vos requêtes d'Analyse de journaux afin d'identifier des modèles et des tendances dans vos données de journaux. L'Analyse de journaux vous permet de rechercher et d'agréger des journaux pour générer des insights utiles à l'aide de requêtes SQL.

Après avoir exécuté une requête, les résultats peuvent être affichés dans une table ou convertis en graphique. Par exemple, pour voir les types de gravités générés par vos journaux, créez un graphique affichant le nombre de journaux générés au cours des 12 dernières heures et répartissez les journaux par severity. La capture d'écran suivante illustre les points de données répartis en différents types de gravité:

Exemple de graphique illustrant une répartition par niveau de gravité.

Avant de commencer

  • Pour obtenir les autorisations nécessaires pour charger la page Analyse de journaux et pour exécuter des requêtes, demandez à votre administrateur de vous attribuer le rôle IAM Lecteur de journaux (roles/logging.viewer) sur Cloud Logging. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

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

    Les autorisations dont vous avez besoin pour afficher les entrées de journal et exécuter des requêtes sur la page Analyse de journaux sont identiques à celles dont vous avez besoin pour afficher les journaux sur la page Explorateur de journaux. Pour en savoir plus sur les rôles supplémentaires dont vous avez besoin pour interroger des vues dans des buckets définis par l'utilisateur ou pour interroger la vue _AllLogs du bucket de journaux _Default, consultez la page Rôles Cloud Logging.

  • Pour obtenir les autorisations nécessaires pour créer et gérer des tableaux de bord à l'aide de la console Google Cloud, demandez à votre administrateur de vous attribuer le rôle IAM Éditeur Monitoring (roles/monitoring.editor) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

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

Sélectionner les données à représenter dans le graphique

Pour configurer les données à afficher dans un graphique, créez une requête à l'aide de SQL. Lorsque vous sélectionnez l'onglet Chart (Graphique), Logging génère automatiquement un graphique en fonction des résultats de votre requête. Une fois que la requête a été exécutée et qu'un graphique a été généré, vous pouvez personnaliser sa configuration en modifiant son type et en sélectionnant des colonnes pour afficher différentes données.

Pour afficher les résultats de votre requête sous forme de graphique, exécutez une requête en procédant comme suit:

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez Logging, puis Analyse de journaux :

    Accéder à l'Analyse de journaux

  2. Dans le volet Requête, saisissez une requête, puis cliquez sur Exécuter.

  3. Une fois la requête terminée, dans l'onglet Résultats, sélectionnez la manière dont vous souhaitez afficher les résultats de la requête:

    • Table: affiche uniquement une table des résultats de la requête.

    • Graphique: affichez uniquement un graphique des résultats de la requête.

    • Les deux: affichez un tableau et un graphique côte à côte.

  4. Si vous avez sélectionné l'onglet Graphique ou Les deux, vous pouvez personnaliser la configuration du graphique en modifiant son type et en personnalisant les lignes et les colonnes qui doivent y figurer. Pour en savoir plus sur la configuration des graphiques, consultez Personnaliser la configuration des graphiques.

Personnaliser la configuration du graphique

Vous pouvez personnaliser la configuration du graphique en modifiant le type, en sélectionnant la dimension et la mesure à représenter, et en appliquant une répartition. La dimension permet de regrouper ou de classer les lignes. Il s'agit de la valeur de l'axe X. La mesure, ou valeur de l'axe Y, est une série de données représentée sur l'axe Y.

Modifier le type de graphique

Vous pouvez sélectionner l'un des types de graphiques suivants, en fonction du type de lignes et de colonnes que vous avez sélectionné comme dimension et mesure, et de la manière dont vous souhaitez visualiser ces données.

  • Graphique à barres (par défaut)

    Les graphiques à barres tracent les données sur deux axes. Si votre graphique utilise une catégorie ou une chaîne comme dimension, vous pouvez définir sa configuration sur "horizontal" ou "vertical", où les axes de dimension et de mesure sont intervertis.

  • Graphique en courbes

    Les graphiques linéaires peuvent être utilisés pour montrer l'évolution des données au fil du temps. Lorsque vous utilisez un graphique en courbes, chaque série temporelle est affichée par une ligne différente correspondant à la ou les mesures que vous avez sélectionnées.

    Si l'axe des X est basé sur le temps, chaque point de données est placé au début d'un intervalle de temps. Chaque point de données est relié par une interpolation linéaire.

  • Graphique en aires Un graphique en aires est basé sur un graphique en courbes, et la zone en dessous de chaque ligne est ombrée. Dans les graphiques en aires, les séries de données sont empilées. Par exemple, si vous avez deux séries identiques, elles se chevauchent dans un graphique en courbes, mais la zone ombrée est empilée dans un graphique en aires.

  • Graphique à secteurs

    Un graphique à secteurs montre la relation entre les catégories d'un ensemble de données et l'ensemble de données complet, en utilisant un cercle pour représenter l'ensemble de données complet et des coins du cercle pour représenter les catégories de l'ensemble de données. La taille d'un support incliné indique la contribution de la catégorie à l'ensemble, souvent sous forme de pourcentage.

Modifier la dimension et la mesure

Vous pouvez choisir les lignes et les colonnes à représenter dans le graphique en sélectionnant les champs de dimension et de mesure.

  • Dimension

    La dimension doit être une colonne d'horodatage, numérique ou de chaînes. Par défaut, la dimension est définie sur la première colonne basée sur l'horodatage du schéma. Si aucun code temporel n'est présent dans la requête, la première colonne de chaîne est sélectionnée en tant que dimension. Vous pouvez également personnaliser la dimension dans le panneau Affichage du graphique. Lorsqu'une colonne d'horodatage est sélectionnée comme dimension, le graphique indique l'évolution des données au fil du temps.

    Par défaut, l'intervalle des horodatages est défini automatiquement, mais vous pouvez également sélectionner un intervalle personnalisé. Les intervalles automatiques modifient les valeurs en fonction du sélecteur de période pour conserver des groupes de taille similaire.

    Vous pouvez également désactiver l'intervalle, ce qui vous permet de spécifier vos propres agrégations et plages de temps dans la requête pour une analyse plus complexe. La désactivation de l'intervalle définit la fonction d'agrégation des mesures sur none. Seules les mesures numériques sont autorisées lorsque l'intervalle de dimension est désactivé.

  • Mesure

    Vous pouvez sélectionner plusieurs mesures dans le panneau Affichage du graphique. Lorsque vous sélectionnez une mesure, vous devez également sélectionner la fonction d'agrégation à effectuer sur ses valeurs groupées, telles que count, sum, average et percentile-99. Par exemple, count-distinct renvoie le nombre de valeurs uniques dans une colonne donnée.

    Si vous cochez la case Désactiver l'intervalle pour la dimension, l'option de la fonction d'agrégation none est disponible. Si la dimension est une valeur de chaîne, la case Désactiver l'intervalle ne s'affiche pas. Toutefois, la définition des fonctions d'agrégation d'une mesure sur none désactive également l'intervalle.

Ajouter une répartition

Pour diviser une série de données en plusieurs séries de données basées sur une autre colonne, ajoutez une répartition.

Lorsque vous sélectionnez une répartition, choisissez des colonnes contenant un petit nombre d'étiquettes courtes et significatives, comme region_name, plutôt que des champs qui peuvent contenir un grand nombre de chaînes ou des chaînes longues, comme textPayload.

Par exemple, reportez-vous à la configuration de graphique suivante, dans laquelle le champ Dimension est défini sur type, le champ Mesurer est défini sur Count rows (Nombre de lignes) et le champ Comparison (Répartition) est défini sur Gravité:

Exemple de configuration de graphique qui ajoute une répartition.

Le graphique suivant est un exemple de graphique avec une répartition supplémentaire:

Exemple de graphique avec une répartition par niveau de gravité.

Dans la capture d'écran précédente, vous voyez une série de données empilées, où le type de ressource k8s_container est divisé en différents types severity. Cela vous permet d'identifier le nombre de journaux de chaque type de gravité qui ont été générés par une ressource donnée.

Enregistrer un graphique dans un tableau de bord personnalisé

Après avoir généré un graphique à partir de votre requête, vous pouvez l'enregistrer dans un tableau de bord personnalisé. Les tableaux de bord personnalisés vous permettent d'afficher et d'organiser les informations qui vous sont utiles à l'aide de divers types de widgets. Par exemple, vous pouvez créer un tableau de bord qui fournit des détails sur l'utilisation de vos buckets Cloud Storage:

Exemple de tableau de bord montrant l'utilisation de vos buckets Cloud Storage

Pour enregistrer votre graphique dans un tableau de bord, procédez comme suit:

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez Logging, puis Analyse de journaux :

    Accéder à l'Analyse de journaux

  2. Exécutez une requête pour générer un graphique, puis cliquez sur Enregistrer le graphique dans l'onglet Graphique.

  3. Dans la boîte de dialogue Enregistrer dans le tableau de bord, saisissez un titre pour votre graphique et sélectionnez le tableau de bord dans lequel vous souhaitez l'enregistrer.

  4. Facultatif: Pour afficher le tableau de bord personnalisé, dans le toast, cliquez sur Afficher le tableau de bord.

Pour afficher une liste de tableaux de bord personnalisés contenant des graphiques générés par des requêtes SQL d'Analyse de journaux, accédez au bouton Enregistrer le graphique, puis cliquez sur Menu.

Modifier un graphique enregistré dans un tableau de bord personnalisé

Pour modifier les graphiques générés par des requêtes SQL d'Analyse de journaux enregistrées dans un tableau de bord, consultez Modifier la configuration d'un widget. Dans la boîte de dialogue Configure widget (Configurer le widget), vous pouvez modifier la requête utilisée pour générer un graphique ou personnaliser la configuration du graphique pour visualiser différentes données.

Limites

  • Si votre projet Google Cloud se trouve dans un dossier qui utilise Assured Workloads, les graphiques que vous générez ne peuvent pas s'afficher dans un tableau de bord personnalisé.

  • Les filtres au niveau du tableau de bord ne s'appliquent pas aux graphiques générés à partir d'une requête SQL d'Analyse de journaux.

Exemples de requêtes

Cette section fournit des exemples de requêtes SQL permettant de représenter vos résultats de requête sous forme de graphique. Pour obtenir des insights plus utiles à partir de vos journaux, personnalisez la configuration du graphique. Pour utiliser les exemples de requêtes, procédez comme suit :

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez Logging, puis Analyse de journaux :

    Accéder à l'Analyse de journaux

  2. Identifiez le nom de table d'une vue de journal en exécutant la requête par défaut:

    Dans la liste Vues de journaux, localisez la vue de journal, puis sélectionnez Query (Requête). Le volet Requête contient une requête par défaut, qui inclut le nom de la table interrogée. Le nom de la table est au format project_ID.region.bucket_ID.view_ID.

    Pour en savoir plus sur l'accès à la requête par défaut, consultez la section Interroger une vue de journal.

  3. Remplacez TABLE par le nom de la table correspondant à la vue que vous souhaitez interroger, puis copiez la requête.

  4. Collez la requête dans le volet Requête, puis cliquez sur Exécuter la requête.

Représenter graphiquement les entrées de journal par emplacement et par gravité

La requête suivante sélectionne location et severity, avec l'emplacement converti en chaîne:

SELECT
  CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,
  severity,
FROM
  `TABLE`

Voici un exemple de graphique et de configuration:

Exemple de graphique représentant des entrées de journal selon leur emplacement et leur gravité.

Dans la capture d'écran précédente, la configuration du graphique est la suivante:

  • Type de graphique: graphique à barres, horizontal
  • Dimension: location, avec une limite de 10
  • Mesurer: compter les lignes
  • Répartition: severity, avec une limite de cinq

Représenter graphiquement les journaux d'audit des accès aux données par BigQuery

La requête suivante filtre les journaux d'audit BigQuery data_access et sélectionne certains champs, tels que user_email, ip, auth_permission et job_execution_project. Par exemple, vous pouvez créer un graphique qui visualise la fréquence d'utilisation de l'API BigQuery pour chaque compte principal au fil du temps.

SELECT
  timestamp,
  proto_payload.audit_log.authentication_info.principal_email as user_email,
  proto_payload.audit_log.request_metadata.caller_ip as ip,
  auth.permission as auth_permission,
  auth.granted as auth_granted,
  JSON_VALUE(data_access.resource.labels.project_id) AS job_execution_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(1)] AS referenced_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(3)] AS referenced_dataset,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(5)] AS referenced_table
FROM `TABLE` as data_access,
  UNNEST(proto_payload.audit_log.authorization_info) AS auth
WHERE
  log_id="cloudaudit.googleapis.com/data_access"
  AND data_access.resource.type = 'bigquery_dataset'

Voici un exemple de graphique et de configuration:

Exemple de graphique pour les journaux d'audit des accès aux données dans BigQuery

Dans la capture d'écran précédente, la configuration du graphique se présente comme suit:

  • Type de graphique: graphique à barres, vertical
  • Dimension: user_email, avec une limite de cinq
  • Mesurer: compter les lignes
  • Répartition: auth_permission, avec une limite de cinq

Limites

  • Les colonnes sélectionnées doivent comporter au moins une ligne avec une valeur non nulle.

  • Si vous enregistrez une requête et personnalisez la configuration du graphique, celle-ci n'est pas enregistrée.

  • Si votre requête contient déjà des agrégations, le graphique généré peut être différent en raison d'une agrégation supplémentaire automatiquement appliquée par l'Analyse de journaux.

  • Pour être représentés dans un graphique, les chemins d'accès JSON doivent être convertis en chaînes et en nombres.

Étapes suivantes