Résoudre les problèmes de configuration d'Observability Analytics

L'Analyse de l'observabilité vous permet d'exécuter des requêtes SQL pour analyser vos journaux, créer des vues d'analyse, associer des buckets de journaux à des ensembles de données BigQuery et surveiller les résultats des requêtes à l'aide de règles d'alerte. Si vous rencontrez des erreurs lors de la configuration ou de l'interrogation de l'Analyse de l'observabilité, vous pouvez suivre les instructions de ce document pour les identifier et les résoudre. Pour les problèmes liés à la mise à niveau d'un bucket de journaux, consultez Résoudre les problèmes de mise à niveau d'un bucket pour utiliser l'Analyse de l'observabilité.

Messages d'erreur

Cette section décrit les messages d'erreur que vous pouvez rencontrer et comment résoudre les conditions d'erreur correspondantes.

Message d'erreur No completion signal within allotted timeframe

Saisissez une requête SQL, puis sélectionnez Exécuter la requête. La requête ne se termine pas et le message d'erreur suivant s'affiche :

The query failed to execute and return results due to error: No completion signal within allotted timeframe.

Pour résoudre cette erreur, effectuez l'une des opérations suivantes :

  • Réduisez l'intervalle d'interrogation des journaux, puis réessayez d'exécuter la requête. Par exemple, si l'intervalle de requête est de 14 jours, réduisez-le à 7 jours, puis exécutez la requête.

  • Créez un ensemble de données BigQuery associé, puis exécutez la requête à partir de l'interface BigQuery. L'interface BigQuery accepte les requêtes qui nécessitent un temps d'exécution plus long que l'interface Cloud Logging. Pour en savoir plus, consultez Créer un ensemble de données BigQuery associé.

Message d'erreur pour les requêtes sur des buckets avec des clés CMEK distinctes

Vous saisissez une requête SQL qui interroge plusieurs buckets de journaux, puis vous sélectionnez Exécuter la requête. La requête ne se termine pas et le message d'erreur suivant s'affiche :

Queries against buckets with distinct CMEK keys must have a key configured in the LogSettings.

Pour résoudre ce problème, effectuez l'une des opérations suivantes :

  • Configurez vos buckets de journaux pour qu'ils utilisent la même clé Cloud Key Management Service (Cloud KMS).
  • Lorsque les buckets de journaux se trouvent au même emplacement, vous pouvez configurer un dossier ou une organisation qui est une ressource parente pour les buckets de journaux avec une clé Cloud KMS par défaut. La clé par défaut du parent doit se trouver au même emplacement que les buckets de journaux. Avec cette configuration, la clé par défaut du parent chiffre toutes les données temporaires générées par la requête d'analyse de l'observabilité. Pour en savoir plus, consultez Restrictions de l'analyse de l'observabilité.

Message d'erreur FROM clause must contain exactly one log view

Vous saisissez une requête SQL dans le volet de requête de la page Analyse de l'observabilité de la console Google Cloud , mais l'analyseur SQL affiche l'erreur suivante :

FROM clause must contain exactly one log view

L'erreur précédente est signalée lorsque la table spécifiée dans l'instruction FROM ne peut pas être résolue en une vue de journal spécifique.

Pour résoudre cette erreur, assurez-vous que le nom de votre table respecte la syntaxe appropriée :

  • Assurez-vous que le nom de la table respecte la syntaxe requise par le schéma d'attribution de noms de l'Analyse de l'observabilité. BigQuery et l'analyse de l'observabilité ont des exigences différentes pour le nom de la table. Pour trouver la syntaxe requise pour le nom de la table, affichez la requête par défaut.

  • Si l'ID du projet, la région, l'ID du bucket ou l'ID de la vue d'un bucket de journaux Google Cloud contient des points, (.), assurez-vous que chacun de ces champs est entouré d'accents graves simples, (`).

    Par exemple, si l'ID d'un projet Google Cloud est example.com:bluebird, pour interroger la vue _AllLogs du bucket de journaux _Default, utilisez la syntaxe suivante pour spécifier la table :

    
    SELECT *
    FROM `example.com:bluebird`.`global`.`_Default`.`_AllLogs`
    

    La requête précédente suppose que le bucket _Default se trouve dans la région global.

Impossible d'enregistrer une requête

Vous souhaitez enregistrer votre requête actuelle. Vous l'exécutez, puis vous cliquez sur Enregistrer, mais l'option Enregistrer la requête est désactivée ou vous ne pouvez pas suivre les étapes de la boîte de dialogue.

Cet échec est dû à un conflit entre une règle d'administration et les paramètres de ressources par défaut pour Cloud Logging. Pour une organisation ou un dossier, vous pouvez configurer des paramètres de ressources par défaut pour Cloud Logging qui spécifient un emplacement. Cet emplacement est l'endroit où vos requêtes enregistrées sont stockées. Toutefois, si l'emplacement est en conflit avec une règle d'administration, vos requêtes ne peuvent pas être enregistrées.

Pour résoudre ce problème, demandez à l'administrateur de votre organisation de mettre à jour les paramètres de ressources par défaut pour Cloud Logging afin que le paramètre de localisation soit autorisé par votre règle d'administration. Pour en savoir plus, consultez Configurer les paramètres de ressources par défaut pour Cloud Logging.

Si l'option Enregistrer la requête est activée, mais que vous ne parvenez pas à remplir la boîte de dialogue et à enregistrer la requête, procédez comme suit :

  1. Assurez-vous que la requête ne contient pas d'erreurs de syntaxe. Vous ne pouvez enregistrer que des requêtes valides.
  2. Facultatif : copiez la requête dans votre presse-papiers.
  3. Actualisez la page.
  4. Si vous avez copié la requête dans votre presse-papiers, collez-la dans le volet Requête, exécutez-la, puis effectuez l'opération d'enregistrement.

Impossible de créer une vue d'analyse

Vous souhaitez créer une vue d'analyse. Vous saisissez et exécutez une requête SQL, puis vous cliquez sur Enregistrer, mais l'option Enregistrer en tant que vue d'analyse est désactivée.

Pour résoudre ce problème, assurez-vous que vos rôles IAM incluent les autorisations suivantes :

  • observability.analyticsViews.{get, list, create, update, delete}

Ces autorisations ne sont incluses dans aucun rôle Cloud Logging prédéfini. Pour en savoir plus sur les rôles requis, consultez Créer et interroger des vues d'analyse : avant de commencer.

Impossible d'interroger une vue d'analyse

Vous souhaitez interroger une vue d'analyse, mais le volet Vues de la page Analyse de l'observabilité n'affiche aucune vue d'analyse.

Pour résoudre ce problème, procédez comme suit :

  • Assurez-vous que vos rôles IAM incluent les autorisations suivantes :

    • observability.analyticsViews.{get, list}

    Ces autorisations ne sont incluses dans aucun rôle Cloud Logging prédéfini. Pour en savoir plus sur les rôles requis, consultez Créer et interroger des vues d'analyse : avant de commencer.

  • Assurez-vous que des vues d'analyse existent dans votre projet Google Cloud .

Accès refusé à la page Analyse de l'observabilité

Vous ouvrez la page Analyse de l'observabilité dans la console Google Cloud , et un message d'erreur d'autorisation refusée s'affiche.

Pour obtenir les autorisations nécessaires pour charger la page Analyse de l'observabilité, exécuter des requêtes et afficher les journaux, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :

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

Les autorisations dont vous avez besoin pour afficher les entrées de journal et exécuter des requêtes sur la page Analyse de l'observabilité sont les mêmes que 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 sur des buckets définis par l'utilisateur ou pour interroger la vue _AllLogs du bucket de journaux _Default, consultez Rôles Cloud Logging.

Échec de la création d'un bucket de journaux en raison d'une contrainte d'emplacement

Vous essayez de créer un bucket de journaux, mais l'action échoue avec un message semblable à celui-ci :

Constraint `constraints/gcp.resourceLocations` violated for `<CONTAINER>` attempting to change `<BUCKET_NAME>` with location `<LOCATION>`. The location must be in the allowed location list configured by the organization policy administrator.

Le message d'erreur précédent indique que l'emplacement que vous avez sélectionné pour le nouveau bucket de journaux n'est pas accepté par votre organisation.

Pour résoudre ce problème, sélectionnez un emplacement compatible avec votre organisation.

Échec de la création d'un ensemble de données BigQuery associé

Vous modifiez un bucket de journaux pour créer un ensemble de données BigQuery associé ou vous créez un bucket de journaux et sélectionnez l'option permettant de créer un ensemble de données BigQuery associé. Toutefois, l'ensemble de données BigQuery associé n'est pas créé.

Pour résoudre cette erreur, demandez à l'administrateur système du projet Google Cloud de vous accorder un rôle IAM incluant l'autorisation suivante :

  • logging.links.create

L'autorisation précédente est incluse dans les rôles Administrateur Logging (roles/logging.admin) et Rédacteur de configuration des journaux (roles/logging.configWriter).

Pour en savoir plus sur les rôles et les autorisations, consultez Contrôle des accès avec IAM.

Échec de la suppression d'un ensemble de données BigQuery associé

Vous ne souhaitez plus utiliser l'ensemble de données BigQuery associé, mais l'option permettant de le supprimer est désactivée.

Pour résoudre cette erreur, demandez à l'administrateur système du projet Google Cloud de vous accorder un rôle IAM incluant l'autorisation suivante :

  • logging.links.delete

L'autorisation précédente est incluse dans les rôles Administrateur Logging (roles/logging.admin) et Rédacteur de configuration des journaux (roles/logging.configWriter).

Cette autorisation vous permet de supprimer l'ensemble de données BigQuery associé de la page Stockage des journaux de la console Google Cloud . Pour en savoir plus sur les rôles et les autorisations, consultez Contrôle des accès avec IAM.

Analyse de l'observabilité affiche un avertissement concernant les métadonnées sensibles

La page Analyse de l'observabilité affiche un message semblable à celui-ci :

This SQL query is configured to run on the BigQuery engine using [PROJECT_ID],
and references resources from [RESOURCE, ...]. Sensitive metadata,
including table contents, may be written to [PROJECT_ID].

Le message d'avertissement indique que la requête dépasse les limites de propriété et vous permet de la vérifier avant son exécution. Les limites de propriété sont déterminées par plusieurs facteurs, dont la hiérarchie des ressources utilisées par la requête.

Vous ne pouvez pas empêcher l'affichage de ces avertissements.

Si la page Analyse de l'observabilité affiche une boîte de dialogue d'avertissement, vous pouvez effectuer l'une des opérations suivantes :

  • Si vous savez que la requête peut être exécutée en toute sécurité et que vous souhaitez afficher les résultats de la requête, cliquez sur Confirmer et exécuter.

  • Analyser la requête et, si nécessaire, la supprimer. Par exemple, vous pouvez effectuer les opérations suivantes :

    1. Inspectez la requête. Lors de votre inspection, tenez compte des données interrogées, de la taille potentielle de l'ensemble de données interrogé et du moteur de requête. Les requêtes exécutées sur le service BigQuery peuvent entraîner des frais.
    2. Si vous avez reçu un lien vers la page Analyse de l'observabilité, vérifiez que l'expéditeur est une source fiable.

Google Cloud fournit des fonctionnalités qui peuvent aider à empêcher l'exfiltration de données par hameçonnage, par des attaques internes ou par des entités externes. Pour en savoir plus, consultez Sécurité des données avec l'Analyse de l'observabilité.

Échec de l'interrogation d'un ensemble de données BigQuery associé, car l'ensemble de données est introuvable

Vous envoyez une requête à un ensemble de données BigQuery associé, et la commande échoue avec un message d'erreur semblable à "Ensemble de données introuvable".

Pour résoudre ce problème, procédez comme suit :

  • Vérifiez que le chemin d'accès au nom de l'ensemble de données est correct.
  • Exécutez la commande gcloud logging links list suivante et vérifiez que la réponse liste votre ensemble de données BigQuery associé.

    Si votre ensemble de données BigQuery associé n'est pas listé, il est orphelin. Pour résoudre ce problème, supprimez l'ensemble de données BigQuery associé.

    Un projet peut avoir un ensemble de données BigQuery associé orphelin si vous révoquez les attributions de rôles IAM d'un compte de service que Google Cloud Observability utilise pour gérer les données, puis que vous supprimez l'association sur le bucket de journaux. Dans ce cas, Google Cloud Observability ne peut pas supprimer l'ensemble de données BigQuery associé.

Impossible de définir le moteur de requête sur BigQuery

Le menu Paramètres de ne propose pas l'option BigQuery.

Pour activer cette option, assurez-vous de disposer d'un ensemble de données BigQuery associé sur le bucket de journaux interrogé.

Le bouton "Exécuter sur BigQuery" est désactivé

Si le bouton Exécuter sur BigQuery s'affiche, mais qu'il est désactivé, cela signifie qu'une vue de journal référencée par votre requête ne dispose pas d'un ensemble de données BigQuery associé. Pour exécuter votre requête sur le moteur BigQuery, créez un ensemble de données BigQuery associé sur votre bucket de journaux.

Aucun compte de service Monitoring

Vous souhaitez créer une règle d'alerte pour surveiller les résultats d'une requête SQL. Les étapes de configuration nécessitent que vous accordiez des rôles IAM au compte de service Monitoring, mais ce compte n'existe pas.

Le compte de service Monitoring est appelé agent de service, car il est créé et géré parGoogle Cloud. Le compte est créé automatiquement lorsque vous configurez une ressource ou un service qui en a besoin. Par exemple, si vous créez un canal de notification Pub/Sub, cette action peut entraîner la création du compte de service Monitoring.

Pour créer le compte de service Monitoring et lui accorder les autorisations requises pour les règles d'alerte basées sur SQL, procédez comme suit :

  1. Créez le compte de service Monitoring. Pour en savoir plus, consultez Créer et attribuer des rôles aux agents de service.

  2. Attribuez les rôles suivants au compte de service Monitoring :

Erreur d'autorisation refusée pour le compte de service Monitoring

Vous souhaitez créer une règle d'alerte pour surveiller les résultats d'une requête SQL. Cependant, une erreur PermissionDenied s'affiche avec un message commençant par Error authenticating service account.

Pour résoudre ce problème, attribuez les rôles suivants au compte de service Monitoring :

Il y a des entrées de journal en double dans mes résultats d'Analyse de l'observabilité

Vous exécutez une requête qui compte ou signale des entrées en double. Comme l'explorateur de journaux supprime les entrées en double en fonction du nom du journal, du code temporel et de l'ID d'insertion, vous vous attendez à ce que l'analyse de l'observabilité déduplique les entrées de journal avant l'exécution d'une requête.

L'analyse de l'observabilité n'effectue pas le même type de déduplication que l'explorateur de journaux.

Pour résoudre les problèmes d'entrées de journal en double, essayez les solutions suivantes :

  1. Déterminez si les entrées de journal en double ont des valeurs de code temporel de réception différentes. Lorsque les codes temporels diffèrent, cela indique que les mêmes données ont été écrites plusieurs fois dans Logging.

    Pour résoudre les écritures en double, recherchez les messages d'erreur ou les erreurs de configuration dans votre intégration de journalisation.

  2. Si votre bucket est configuré pour utiliser des clés Cloud Key Management Service, assurez-vous de respecter le quota et que votre clé est toujours accessible. Le dépassement du quota ou la perte de l'accès à la clé peuvent entraîner des entrées de journal en double.

    Pour résoudre ces échecs, assurez-vous de ne pas dépasser votre quota et que votre clé est accessible.

  3. Modifiez votre requête pour supprimer les entrées de journal en double.

    Par exemple, supposons que la charge utile JSON contienne fieldA et fieldB, où le premier est une chaîne et le second est une valeur numérique. Supposons également que la charge utile JSON contienne un champ intitulé server, qui contient une chaîne. Ensuite, considérez la requête suivante :

    SELECT
      JSON_VALUE(json_payload.fieldA) AS fieldA,
      SUM(IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0)) AS sum_fieldB
    FROM
      `VIEW`
    WHERE
      JSON_VALUE(json_payload.server) = "test"
    GROUP BY
      fieldA;
    

    Vous pouvez modifier la requête pour supprimer les entrées de journal en double, où le nom du journal, l'horodatage et l'ID d'insertion sont examinés pour déterminer si une entrée de journal est un doublon :

    WITH
      deduplicated AS (
      SELECT
        JSON_VALUE(json_payload.fieldA) AS fieldA,
        IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0) AS fieldB
      FROM
        `VIEW` a
      WHERE
        JSON_VALUE(json_payload.server) = "test"
      QUALIFY
        ROW_NUMBER() OVER (PARTITION BY a.log_name, a.timestamp, a.insert_id ) = 1 )
    
    SELECT
      fieldA,
      SUM(fieldB) AS sum_fieldB
    FROM
      deduplicated
    GROUP BY
      fieldA;