Résoudre les problèmes de routage et de stockage des journaux

Ce document décrit les problèmes courants liés au routage et au stockage, et explique comment utiliser le la console Google Cloud pour afficher et corriger les erreurs de configuration des résultats inattendus.

Pour obtenir des informations générales sur l'utilisation des journaux dans les destinations de vos récepteurs, consultez la page Affichez les journaux dans les destinations de récepteurs.

Résoudre les problèmes liés aux journaux de routage

Cette section explique comment résoudre les problèmes courants lors du routage de vos journaux.

La destination contient des journaux indésirables

Vous consultez les journaux acheminés vers une destination et vous constatez que contient des journaux indésirables.

Pour résoudre ce problème, mettez à jour filtres d'exclusion qui acheminent les journaux vers la destination. Les filtres d'exclusion vous permettent d'exclure les journaux sélectionnés d'être acheminés vers une destination.

Par exemple, supposons que vous créez récepteur agrégé pour acheminer les journaux une organisation à une destination. Pour exclure les journaux d'une règle projet d'être acheminé vers la destination, Ajoutez le filtre d'exclusion suivant au récepteur:

logName:projects/PROJECT_ID

Vous pouvez également exclure les journaux de plusieurs projets en utilisant l'opérateur logique OU pour joindre les clauses logName.

Journaux manquants sur la destination

Le problème de récepteur le plus courant est le fait d'avoir des journaux manquants sur une destination de récepteur.

Dans certains cas, il peut arriver qu'aucune erreur ne soit générée mais que les journaux soient indisponibles lorsque vous essayez d'y accéder dans votre destination. Si vous pensez que votre récepteur n'achemine pas correctement les journaux, puis vérifiez que les journaux système de votre récepteur metrics:

  • exports/byte_count : nombre d'octets dans les entrées de journal qui ont été acheminées.
  • exports/log_entry_count : nombre d'entrées de journal acheminées.
  • exports/error_count : nombre d'entrées de journal dont le routage a échoué.

Les métriques comportent des étiquettes qui enregistrent les décomptes par nom de récepteur et destination et vous indiquera si le récepteur achemine correctement les données de journaux ou en échec. Pour savoir comment afficher les métriques, consultez Affichez les métriques basées sur les journaux.

Si les métriques de votre récepteur indiquent que celui-ci ne fonctionne pas comme prévu, voici quelques-unes des causes possibles et des solutions permettant d'y remédier :

Latence

  • Aucune entrée de journal correspondante n'a été reçue depuis que vous avez créé ou mis à jour votre évier ; seules les nouvelles entrées de journal sont acheminées.

    Patientez une heure, puis vérifiez à nouveau votre destination.

  • Les entrées de journal arrivent en retard.

    Il peut y avoir un délai avant que vous puissiez afficher vos journaux dans la destination. Les journaux tardifs sont en particulier pour les récepteurs qui ont configuré Cloud Storage des buckets comme destinations. Patientez quelques heures, puis vérifiez votre vers la destination.

L'affichage du champ d'application/du filtre est incorrect

Erreur dans le filtre du récepteur

  • Le filtre du récepteur est incorrect et n'enregistre pas les journaux que vous attendiez voir dans votre destination.

    • Modifiez le filtre du récepteur en utilisant le routeur de journaux dans le console Google Cloud. Pour vérifier que vous avez saisi le bon filtre, Sélectionnez Prévisualiser les journaux dans le panneau Modifier le récepteur. Vous accédez ainsi Explorateur de journaux dans un nouvel onglet avec le filtre prérempli. Pour obtenir des instructions sur l'affichage et la gestion des récepteurs, consultez Gérer les récepteurs

Afficher les erreurs

Pour chacune des destinations de récepteur compatibles, Logging fournit des messages d'erreur pour les récepteurs mal configurés.

Il existe plusieurs façons d'afficher les erreurs liées au récepteur. Les méthodes correspondantes sont décrites dans les sections suivantes :

  • Afficher les journaux d'erreurs générés pour le récepteur.
  • Recevoir des notifications d'erreur de récepteur par e-mail.

Journaux d'erreurs

La méthode recommandée pour inspecter en détail les erreurs liées au récepteur consiste à afficher les entrées de journal d'erreurs générées par le récepteur. Pour en savoir plus sur l'affichage journaux, consultez la section Afficher les journaux à l'aide de l'explorateur de journaux.

Vous pouvez utiliser la requête suivante dans le volet de l'éditeur de requête dans le Explorateur de journaux pour examiner les journaux d'erreurs de votre récepteur. La même requête fonctionne dans l'API Logging et la gcloud CLI.

Avant de copier la requête, remplacez la variable SINK_NAME par la nom du récepteur que vous essayez de dépanner. Vous pouvez trouver le nom de votre lavabo sur la page Routeur de journaux de la console Google Cloud.

logName:"logging.googleapis.com%2Fsink_error"
resource.type="logging_sink"
resource.labels.name="SINK_NAME"

Par exemple, si le nom du récepteur est my-sink-123, l'entrée de journal peut avoir l'apparence suivante : semblable à ce qui suit:

{
   errorGroups: [
   0: {
   id: "COXu96aNws6BiQE"
   }]
   insertId: "170up6jan"
   labels: {
      activity_type_name: "LoggingSinkConfigErrorV2"
      destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
      error_code: "topic_not_found"
      error_detail: ""
      sink_id: "my-sink-123"
   }
   logName: "projects/my-project/logs/logging.googleapis.com%2Fsink_error"
   receiveTimestamp: "2024-07-11T14:41:42.578823830Z"
   resource: {
   labels: {
      destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
      name: "my-sink-123"
      project_id: "my-project"
   }
   type: "logging_sink"
   }
   severity: "ERROR"
   textPayload: "Cloud Logging sink configuration error in my-project, sink my-sink-123: topic_not_found ()"
   timestamp: "2024-07-11T14:41:41.296157014Z"
}

Le champ LogEntry labels et ses informations de clé-valeur imbriquées vous aident à cibler la source de l'erreur de récepteur. Ce champ contient la ressource concernée, le récepteur concerné et le code d'erreur. Le champ labels.error_code contient une description abrégée de l'erreur qui vous indique quel composant de votre récepteur doit être reconfiguré.

Pour résoudre ce problème, modifier votre récepteur. Par exemple, vous pouvez modifier votre récepteur à l'aide de la commande Page Routeur de journaux:

Accéder au routeur de journaux

Notifications par e-mail

Si vous êtes abonné à un projet Google Cloud ou à sa ressource parente en tant que contact technique principal, vous recevrez des notifications par e-mail pour les erreurs de configuration de récepteur. Si aucun contact technique principal n'est configuré pour une ressource, les utilisateurs bénéficiant du rôle IAM Propriétaire de projet roles/owner pour la ressource reçoivent la notification par e-mail.

L'e-mail contient les informations suivantes:

  • ID de ressource: nom du projet Google Cloud ou d'un autre Ressource Google Cloud dans laquelle le récepteur a été configuré.
  • Nom du récepteur : nom du récepteur contenant l'erreur de configuration.
  • Destination du récepteur: chemin d'accès complet à la destination de routage du récepteur pour exemple : pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
  • Code d'erreur: brève description de la catégorie d'erreur. Exemple : topic_not_found
  • Détails de l'erreur : informations détaillées sur l'erreur, y compris des recommandations pour la résoudre.

Pour afficher et gérer vos récepteurs, utilisez la page Routeur de journaux:

Accéder au routeur de journaux

Toutes les erreurs de configuration de récepteur qui s'appliquent à la ressource apparaissent dans la liste sous la forme Cloud Logging sink configuration error. Chaque erreur contient un lien vers l'une des entrées de journal générées par le récepteur défectueux. Pour examiner en détail les erreurs sous-jacentes, consultez la section Journaux d'erreurs.

Types d'erreurs de récepteur

Les sections suivantes décrivent des catégories générales d'erreurs liées aux récepteurs et indiquent comment les résoudre.

Destination incorrecte

Si vous avez configuré un récepteur, mais qu'une erreur de configuration s'affiche indiquant que la destination est introuvable lorsque Logging a tenté d'acheminer les journaux, voici Voici quelques raisons possibles:

  • La configuration de récepteur contient une faute d'orthographe ou une erreur de formatage dans la destination de récepteur spécifiée.

    Vous devez mettre à jour la configuration de récepteur pour spécifier correctement la destination existante.

  • La destination spécifiée a peut-être été supprimée.

    Vous pouvez modifier la configuration de récepteur pour utiliser une destination différente, ou recréer la destination avec le même nom.

Pour résoudre ces types de défaillances, modifier votre récepteur. Par exemple, vous pouvez modifier votre récepteur à l'aide de la commande Page Routeur de journaux:

Accéder au routeur de journaux

Votre récepteur commence à acheminer les journaux lorsque la destination est trouvée et que de nouveaux journaux correspondant à votre filtre sont reçus par Logging.

Gérer les problèmes liés aux récepteurs

Si vous désactivé un récepteur d'arrêter de stocker des journaux dans un bucket de journaux, mais tout de même de voir les journaux acheminés, puis attendez quelques minutes que les modifications soient appliquées au récepteur.

Problèmes d'autorisation

Lorsqu'un récepteur tente d'acheminer une entrée de journal, mais ne dispose pas des autorisations les autorisations IAM pour la destination du récepteur, celui-ci signale une erreur, que vous pouvez afficher, et ignore l'entrée de journal.

Lorsque vous créez un récepteur, le compte de service qui lui est associé doit disposer du rôle approprié autorisations des destinations. Si vous créez le récepteur dans la console Google Cloud dans le même projet Google Cloud, la console Google Cloud attribue généralement ces automatiquement les autorisations. Toutefois, si vous créez le récepteur dans un autre un projet Google Cloud, ou à l'aide de gcloud CLI ou de l'API Logging, vous devez configurer les autorisations manuellement.

Si vous constatez des erreurs liées aux autorisations pour votre récepteur, ajoutez les ou mettez à jour votre récepteur pour qu'il utilise vers votre destination. Pour savoir comment mettre à jour ces autorisations, consultez la section Autorisations de destination.

Un délai s'applique entre la création du récepteur et l'utilisation du nouveau compte de service du récepteur pour autoriser l'écriture sur la destination. Votre récepteur commence à acheminer les journaux lorsque les autorisations sont corrigées et que de nouveaux journaux correspondant à votre filtre sont reçus par Logging.

Problèmes liés aux règles d'administration

Si vous tentez d'acheminer une entrée de journal, mais que vous rencontrez une erreur des règles d'administration qui empêche Logging d'écrire dans la destination du récepteur, puis le récepteur ne peut pas acheminer les données vers la destination sélectionnée et signale une erreur.

Si vous rencontrez des erreurs liées aux règles d'administration, vous pouvez suivantes:

  • Mettez à jour la règle d'administration de la destination pour supprimer les contraintes empêcher le récepteur d'acheminer les entrées de journal ; cela présuppose que vous avez les autorisations appropriées pour mettre à jour la règle d’administration. Pour instructions, consultez la page Créer et modifier des règles.

  • Si vous ne pouvez pas mettre à jour la règle d'administration, mettez à jour votre récepteur dans le Routeur de journaux pour utiliser une destination conforme.

    Accéder au routeur de journaux

Votre récepteur commence à acheminer les journaux lorsque la règle d'administration ne l'empêche plus d'écrire sur la destination et que de nouveaux journaux correspondant au filtre sont reçus par Logging.

Problèmes liés aux clés de chiffrement

Si vous utilisez des clés de chiffrement, qu'elles soient gérées par Cloud Key Management Service ou par vous-même, pour chiffrer les données dans la destination du récepteur, des erreurs associées peuvent apparaître. Voici quelques problèmes possibles et les moyens de les résoudre:

  • La facturation n'est pas activée pour le projet Google Cloud contenant le Cloud KMS.

    • Même si le récepteur a été créé avec la bonne destination, Ce message d'erreur s'affiche s'il n'y a pas de compte de facturation valide associée au projet Google Cloud contenant la clé.

    • Assurez-vous qu'il existe un compte de facturation associé au projet Google Cloud qui contient la clé. Si aucun compte de facturation n'est associé d'un projet Google Cloud, activer la facturation pour ce projet ou utiliser une clé Cloud KMS contenue dans un projet Google Cloud est associé à un compte de facturation valide.

  • La clé Cloud KMS est introuvable.

    • Le projet Google Cloud contenant la clé Cloud KMS configuré pour chiffrer les données est introuvable.

    • Utilisez une clé Cloud KMS valide provenant d'une projet Google Cloud.

  • L'emplacement de la clé Cloud KMS ne correspond pas à l'emplacement de la destination.

    • Si le projet Google Cloud contenant la clé Cloud KMS est située dans une région différente de celle de la destination ; le chiffrement échoue et le récepteur ne peut pas acheminer les données vers cette destination.

    • Utiliser une clé Cloud KMS contenue dans un projet Google Cloud correspond à la destination du récepteur.

  • L'accès à la clé de chiffrement est refusé au compte de service du récepteur.

    • Même si le récepteur a bien été créé avec les autorisations de compte de service appropriées, ce message d'erreur s'affiche si la destination du récepteur utilise une clé de chiffrement qui ne donne pas au compte de service des autorisations suffisantes pour chiffrer ou déchiffrer les données.

    • Accordez le rôle Chiffreur/Déchiffreur de CryptoKey Cloud KMS au compte de service spécifié dans le champ writerIdentity du récepteur pour la clé utilisée dans la destination. Assurez-vous également que l'API Cloud KMS est activée.

Problèmes de quota

Lorsque les récepteurs écrivent des journaux, des quotas spécifiques à la destination s'appliquent Projets Google Cloud dans lesquels les récepteurs ont été créés. Si les quotas sont épuisés, le récepteur arrête d'acheminer les journaux vers la destination.

Par exemple, lors du routage de données vers BigQuery, une erreur peut indiquer que le quota d'insertion en flux continu par tableau est dépassé pour un certain tableau de votre ensemble de données. Dans ce cas, le récepteur achemine peut-être trop d'entrées de journal, trop rapidement. Le même concept s'applique aux autres destinations de récepteurs compatibles, par exemple aux sujets Pub/Sub.

Pour résoudre les problèmes d'épuisement des quotas, réduisez la quantité de données de journalisation acheminées en mettant à jour le filtre de votre récepteur afin de conserver moins d'entrées de journaux. Vous pouvez utiliser la fonction sample de votre filtre pour sélectionner une fraction du nombre total d'entrées de journal.

Votre récepteur commence à acheminer les journaux vers votre destination une fois que vous avez mis à jour votre récepteur pour conserver moins d'entrées de journal ou une fois que vos quotas sont renouvelés.

Pour en savoir plus sur les limites qui peuvent s'appliquer lors du routage des journaux, consultez les informations de quota de la destination correspondante :

Outre les types d'erreurs de récepteur généraux, voici les types d'erreurs de destination les plus courants ainsi que la façon de les résoudre.

Routage des erreurs vers Cloud Storage

Les erreurs les plus courantes lors du routage de journaux vers Cloud Storage sont les suivantes :

  • Entrées de journal tardives :

    • Les entrées de journal acheminées sont enregistrées par lot toutes les heures dans des buckets Cloud Storage. L'affichage des premières entrées peut prendre 2 à 3 heures.

    • Les partitions de fichiers journaux acheminées qui possèdent le suffixe An ("Append", ajout) contiennent les entrées de journal arrivées en retard. Si la destination Cloud Storage cesse de fonctionner, Cloud Logging conserve les données en mémoire tampon jusqu'à la fin de l'interruption.

  • Impossible d'accorder les autorisations appropriées à la destination :

    • Même si le récepteur a bien été créé avec les autorisations de compte de service appropriées, ce message d'erreur s'affiche si le modèle de contrôle d'accès du bucket Cloud Storage a été défini sur Accès uniforme lors de la création du bucket.

    • Pour les buckets Cloud Storage existants, vous pouvez modifier le modèle de contrôle d'accès au cours des 90 premiers jours suivant la création du bucket à l'aide de l'onglet Autorisations. Pour les nouveaux buckets, sélectionnez le modèle de contrôle d'accès précis défini lors de la création du bucket. Pour plus d'informations, consultez la section Créer des buckets Cloud Storage.

Erreurs de routage vers BigQuery

Voici les erreurs les plus courantes lors du routage des journaux vers BigQuery :

  • Schéma de table non valide :

    • Les journaux diffusés vers le tableau de votre ensemble de données BigQuery ne correspondent pas au schéma de tableau actuel. Les problèmes courants incluent la tentative de acheminer les entrées de journal avec différents types de données, ce qui provoque une le schéma n'est pas cohérent. Par exemple, l'un des champs de l'entrée de journal est un nombre entier, tandis que la colonne correspondante dans le schéma correspond à un type de chaîne.

    • Assurez-vous que vos entrées de journal correspondent au schéma du tableau. Après avoir corrigé la source de l'erreur, vous pouvez renommer votre tableau actuel et laisser Stackdriver Logging recréer le tableau.

    • BigQuery accepte le chargement de données imbriquées dans ses tables. Toutefois, lors du chargement de données depuis Logging, la limite maximale de profondeur des données imbriquées pour une colonne est de 13 niveaux.

    Lorsque BigQuery identifie une non-concordance des schémas, il crée un table dans l'ensemble de données correspondant pour stocker les informations sur les erreurs. Le type d'une table détermine son nom. Pour les tables segmentées par date, le format de nom est export_errors_YYYYMMDD. Pour les tables partitionnées, le format de nom est export_errors. En savoir plus sur le schéma des tables d'erreur et sur la façon d'éviter de futures incohérences au niveau des types de champ, consultez la section Incohérences dans le schéma.

  • Les entrées de journal dépassent les limites temporelles autorisées :

    • Les journaux diffusés vers la table BigQuery partitionnée sont en dehors des limites temporelles autorisées. BigQuery n'accepte pas les journaux trop éloignés dans le passé ou le futur.

    • Vous pouvez mettre à jour votre récepteur pour acheminer ces journaux vers Cloud Storage et utiliser une tâche de chargement BigQuery. Consultez la documentation BigQuery pour obtenir des instructions.

  • Un ensemble de données n'est pas autorisé à accéder au compte de service associé au récepteur de journaux :

    • Même si le récepteur a été créé avec succès autorisations de compte de service correctes, cette erreur s'affiche si aucun compte de facturation valide n'est associé à le projet Google Cloud contenant la destination du récepteur.

    • Assurez-vous qu'un compte de facturation associé à votre projet Google Cloud. Si un compte de facturation n'est pas associé à la destination du récepteur d'un projet Google Cloud, activer la facturation pour ce projet ou modifiez la destination du récepteur afin qu'elle se trouve dans un Un projet Google Cloud auquel un compte de facturation valide est associé.

  • L'ensemble de données contient des entrées de journal en double:

    • Des entrées de journal en double peuvent se produire en cas d'échec de la diffusion des journaux BigQuery, y compris en raison de nouvelles tentatives ou d'erreurs de configuration. Cloud Logging déduplique les entrées de journal ayant les mêmes valeurs timestamp et insertId au moment de la requête. BigQuery n'élimine pas des entrées de journal en double.

    • Pour ignorer les entrées de journal en double dans BigQuery, incluez le paramètre SELECT DISTINCT dans votre requête. Exemple :

    SELECT DISTINCT insertId, timestamp FROM TABLE_NAME
    

Routage des erreurs vers des buckets Cloud Logging

Il peut arriver que vous puissiez voir dans l'explorateur des journaux que vous avez exclus avec votre récepteur. Vous pouvez toujours consulter ces journaux si l'une des conditions suivantes est satisfaite :

  • Vous exécutez votre requête dans le projet Google Cloud qui a généré le journaux.

    Pour résoudre ce problème, assurez-vous d'exécuter votre requête dans projet Google Cloud.

  • Les journaux exclus ont été envoyés à plusieurs buckets de journaux et l'entrée que vous voyez est une copie du journal que vous souhaitez exclure.

    Pour résoudre ce problème, vérifiez vos récepteurs sur la page Routeur de journaux pour vous assurer que n'incluent pas les journaux dans les autres récepteurs des filtres.

  • Vous avez accès aux vues du bucket de journaux dans lequel les journaux ont été envoyés. Dans ce cas, vous pouvez voir ces journaux par défaut.

    Pour éviter de voir ces journaux dans l'explorateur de journaux, vous pouvez affiner la portée de votre recherche à votre projet ou bucket Google Cloud source.

Résoudre les problèmes de stockage des journaux

Pourquoi ne puis-je pas supprimer ce bucket ?

Si vous essayez de supprimer un bucket, procédez comme suit :

  • Assurez-vous de disposer des autorisations appropriées pour supprimer le bucket. Pour le des autorisations dont vous avez besoin, reportez-vous Contrôle des accès avec IAM

  • Déterminez si le bucket est verrouillé en répertoriant les attributs du bucket. Si le bucket est verrouillé, vérifiez sa durée de conservation. Vous ne pouvez pas supprimer un bucket verrouillé tant que tous les journaux qu'il contient n'ont pas atteint la date limite de conservation du bucket.

  • Vérifiez que le bucket de journaux n'est pas associé à un ensemble de données BigQuery. Vous ne pouvez pas supprimer un bucket de journaux associé à un ensemble de données.

    L'erreur suivante s'affiche en réponse à une commande delete sur une qui est associé à un ensemble de données:

    FAILED_PRECONDITION: This bucket is used for advanced analytics and has an active link. The link must be deleted first before deleting the bucket
    

    Pour répertorier les liens associés à un bucket de journaux, exécutez la [gcloud logging links list][link-list] ou exécutez la projects.locations.buckets.links.list .

Quels comptes de service acheminent les journaux vers mon bucket ?

Pour déterminer si des comptes de service disposent d'autorisations IAM pour acheminer les journaux vers votre bucket, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page IAM :

    Accéder à IAM

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

  2. À partir de l'onglet Autorisations, affichez la liste par Rôles. Vous voyez un tableau avec tous les rôles et comptes principaux IAM associés à votre projet Google Cloud.

  3. Dans la tableFiltre zone de texte, saisissez Rédacteur de bucket de journaux.

    Tous les comptes principaux dotés du rôle Rédacteur de bucket de journaux s'affichent. Si un compte principal est un compte de service, son ID contient la chaîne gserviceaccount.com.

  4. Facultatif: Si vous souhaitez supprimer un compte de service de l'acheminement dans votre projet Google Cloud, sélectionnez case à cocher pour le compte de service, puis cliquez sur Supprimer.

Pourquoi des journaux d'un projet Google Cloud s'affichent-ils alors que je les ai exclus de mon récepteur _Default ?

Vous pouvez consulter les journaux d'un bucket de journaux projet Google Cloud centralisé, qui regroupe les journaux de toute votre organisation.

Si vous utilisez l'explorateur de journaux pour accéder à ces journaux et afficher ceux que vous exclu du récepteur _Default, il se peut que le champ d'application de votre vue soit limité au niveau du projet Google Cloud.

Pour résoudre ce problème, sélectionnez Affiner la recherche par espace de stockage dans Panneau Affiner le champ d'application puis sélectionnez le bucket _Default projet Google Cloud. Vous ne devriez plus voir les journaux exclus.