Si vous rencontrez des problèmes lors de l'acheminement ou du stockage des entrées de journal, vous pouvez utiliser la consoleGoogle Cloud pour diagnostiquer les erreurs de configuration, inspecter les messages d'erreur et résoudre les problèmes de journaux manquants.
Pour en savoir plus sur l'affichage des données de journaux une fois qu'elles ont atteint une destination, consultez Afficher les journaux dans les destinations de récepteurs.
Résoudre les problèmes de routage des journaux
Cette section explique comment résoudre les problèmes courants liés au routage de vos entrées de journal.
La création d'un récepteur échoue avec une erreur de service inconnue
Vous tentez de créer un récepteur de journaux, mais la commande échoue avec une erreur INVALID_ARGUMENT (HTTP 400). Le message d'erreur inclut les éléments suivants :
Sink.destination with unknown service name: [SERVICE_DOMAIN]. Supported services are bigquery.googleapis.com,pubsub.googleapis.com,storage.googleapis.com,logging.googleapis.com
Pour résoudre cette erreur, utilisez le point de terminaison global pour l'un des services compatibles. Une destination de récepteur de journaux ne peut pas spécifier un point de terminaison de service régional (REP), tel que pubsub.LOCATION.rep.googleapis.com.
Le message d'erreur de configuration du récepteur indique qu'une région de sujet n'est pas autorisée
L'un des événements suivants se produit :
Vous recevez un e-mail avec l'objet
[ACTION REQUIRED] Cloud Logging sink configuration error in [PROJECT_ID]et le code d'erreurtopic_region_not_allowed. L'e-mail inclut un message semblable à celui-ci :La règle de stockage des messages du sujet nécessite une application en transit, mais la requête de publication a été reçue par un serveur Pub/Sub dans une région non autorisée. Veuillez publier via un point de terminaison Cloud Logging régional correspondant à une région autorisée ou mettre à jour la règle de stockage des messages du sujet.
Vous remarquez des entrées de journal avec un niveau de gravité
ERROR, un code d'erreur"topic_region_not_allowed"et une charge utile de texte semblable à celle-ci :Cloud Logging sink configuration error in [PROJECT_ID], sink [SINK_NAME]: topic_region_not_allowed ()
Ces messages indiquent que la destination du récepteur est un sujet Pub/Sub qui applique des restrictions en transit et que Logging a acheminé des entrées de journal depuis une région non autorisée par la règle du sujet. Les restrictions en transit peuvent être configurées sur la règle de stockage des messages d'un sujet individuel ou appliquées à l'échelle de l'organisation à l'aide de la contrainte de règle d'administration constraints/pubsub.enforceInTransitRegions.
Pour résoudre ces échecs, effectuez l'une des opérations suivantes :
- Mettez à jour la règle de stockage des messages du sujet Pub/Sub de destination pour désactiver l'application des régions de transit ou étendre ses régions de persistance autorisées.
- Si des restrictions en transit sont appliquées par une règle d'administration, mettez à jour la règle d'administration ou demandez une exemption pour le projet.
- Mettez à jour le récepteur pour acheminer les entrées de journal vers une autre destination.
La destination contient des entrées de journal indésirables
Vous consultez les entrées de journal acheminées vers une destination et déterminez que la destination contient des entrées de journal indésirables.
Pour résoudre cette condition, mettez à jour les filtres "Exclure" de vos récepteurs qui acheminent les entrées de journal vers la destination. Les filtres d'exclusion vous permettent d'exclure certaines entrées de journal du routage vers une destination.
Par exemple, supposons que vous créiez un récepteur agrégé pour acheminer les entrées de journal d'une organisation vers une destination. Pour exclure les entrées de journal d'un projet spécifique de l'acheminement vers la destination, ajoutez le filtre d'exclusion suivant au récepteur :
logName:projects/PROJECT_ID
Vous pouvez également exclure les entrées de journal de plusieurs projets en utilisant l'opérateur logique OR pour joindre les clauses logName.
La destination ne contient pas d'entrées de journal
Le problème le plus courant lié aux récepteurs est que des entrées de journal semblent manquer dans la destination d'un récepteur.
Dans certains cas, aucune erreur n'est générée, mais vous pouvez remarquer que les entrées de journal ne sont pas disponibles lorsque vous essayez d'y accéder dans votre destination. Si vous pensez que votre récepteur n'achemine pas correctement les entrées de journal, vérifiez les métriques basées sur les journaux système de votre récepteur :
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 libellés qui enregistrent les nombres par nom de récepteur et nom de destination, et vous permettent de savoir si votre récepteur achemine correctement les entrées de journal ou s'il échoue.
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 la création ou la mise à jour de votre récepteur. 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.
Un certain délai peut s'écouler avant que vous ne puissiez afficher vos entrées de journal dans la destination. Patientez quelques heures, puis vérifiez à nouveau votre destination.
Le champ d'application/filtre d'affichage est incorrect
Le champ d'application que vous utilisez pour afficher les entrées de journal stockées dans un bucket de journaux est incorrect.
Limitez votre recherche à une ou plusieurs vues de journaux comme suit :
Si vous utilisez l'explorateur de journaux, utilisez le bouton Affiner le champ d'application.
Si vous utilisez la gcloud CLI, exécutez la commande
gcloud logging readet ajoutez un flag--view=AllLogs.
La période que vous utilisez pour sélectionner et afficher les données dans votre destination de récepteur est trop courte.
Essayez d'élargir la période que vous utilisez lorsque vous sélectionnez des données dans votre récepteur de destination.
Erreur dans le filtre de récepteur
Le filtre du récepteur est incorrect et ne capture pas les entrées de journal que vous vous attendiez à voir dans votre destination.
Modifiez le filtre de votre récepteur à l'aide du routeur de journaux dans la console Google Cloud . Pour vérifier que le filtre saisi est correct, sélectionnez Prévisualiser les journaux dans le panneau Modifier le récepteur. L'explorateur de journaux s'ouvre alors dans un nouvel onglet avec le filtre prérempli. Pour savoir comment afficher et gérer vos 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 :
- Affichez les journaux d'erreurs générés pour le récepteur.
Recevoir des notifications d'erreur de récepteur par e-mail
L'expéditeur de cet e-mail est
logging-noreply@google.com. La ligne d'objet est semblable à[ACTION REQUIRED] Cloud Logging sink configuration error.
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 des entrées de journal, consultez 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 de l'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 le nom du récepteur que vous essayez de dépanner. Vous trouverez le nom de votre récepteur 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 de votre récepteur est my-sink-123, l'entrée de journal peut ressembler à ceci :
{
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 labels LogEntry et ses informations de clé-valeur imbriquées vous aident à cibler la source de l'erreur de votre récepteur. Il 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, modifiez votre récepteur. Par exemple, vous pouvez modifier votre récepteur à l'aide de la page Routeur de journaux :
Accéder au routeur de journaux
Notifications par e-mail
Essential Contacts envoie des notifications par e-mail d'erreur de configuration du récepteur aux contacts attribués à la catégorie de notification "Technique" pour un projet Google Cloud ou sa ressource parente.
Si la ressource ne dispose pas d'un contact configuré pour les notifications techniques, les utilisateurs listés en tant que Propriétaire du projet IAM roles/owner pour la ressource reçoivent la notification par e-mail.
Pour chaque combinaison de nom de récepteur de journaux et d'erreur, le système envoie une notification par jour.
Le message contient les informations suivantes :
- ID de ressource : nom du projet Google Cloud ou d'une autre ressourceGoogle Cloud où 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 de la destination de routage du récepteur, par exemple
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID. - Code d'erreur : description abrégée de la catégorie d'erreur, par exemple
topic_not_found. - Détails de l'erreur : informations détaillées sur l'erreur, y compris des recommandations pour la résoudre.
L'expéditeur de cet e-mail est logging-noreply@google.com.
L'objet est semblable à : Subject: [ACTION REQUIRED] Cloud Logging sink configuration error in my-project
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.
Destination du récepteur incorrecte
Si vous configurez un récepteur, mais qu'une erreur de configuration s'affiche, indiquant que la destination est introuvable lorsque Logging tente d'acheminer les entrées de journal, 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 d'échec, modifiez votre récepteur. Par exemple, vous pouvez modifier votre récepteur à l'aide de la page Routeur de journaux :
Accéder au routeur de journaux
Votre récepteur commence à acheminer les entrées de journal lorsque la destination est trouvée et que de nouvelles entrées de journal correspondant à votre filtre sont reçues par Logging.
Problèmes de récepteur désactivé
Si vous avez désactivé un récepteur pour arrêter de stocker des entrées de journal dans un bucket de journaux, mais que vous voyez toujours des entrées de journal acheminées, attendez quelques minutes que les modifications apportées au récepteur soient appliquées.
Problèmes d'autorisation avec les récepteurs
Lorsqu'un récepteur tente d'acheminer une entrée de journal, mais qu'il ne dispose pas des autorisations IAM appropriées pour la destination du récepteur, il signale une erreur, que vous pouvez consulter, et ignore l'entrée de journal.
Lorsque vous créez un récepteur, le compte de service du récepteur doit disposer des autorisations de destination appropriées. Si vous créez le récepteur dans la console Google Cloud dans le même projetGoogle Cloud , la console Google Cloud attribue généralement ces autorisations automatiquement. Toutefois, si vous créez le récepteur dans un autre projetGoogle Cloud , ou à l'aide de gcloud CLI ou de l'API Logging, vous devez configurer les autorisations manuellement.
Si des erreurs liées aux autorisations s'affichent pour votre récepteur, ajoutez les autorisations nécessaires ou mettez à jour votre récepteur pour utiliser une autre 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 entrées de journal lorsque les autorisations sont corrigées et que de nouvelles entrées de journal correspondant à votre filtre sont reçues par Logging.
Problèmes de règles d'administration avec les récepteurs
Si vous essayez d'acheminer une entrée de journal, mais que vous rencontrez une règle d'administration qui empêche Logging d'écrire dans la destination du récepteur, celui-ci ne peut pas acheminer l'entrée vers la destination sélectionnée et signale une erreur.
Si vous rencontrez des erreurs liées aux règles d'administration, vous pouvez procéder comme suit :
Mettez à jour la règle d'administration de la destination pour supprimer les contraintes qui empêchent le récepteur d'acheminer les entrées de journal. Cela suppose que vous disposez des autorisations appropriées pour mettre à jour la règle d'administration.
Vous pouvez vérifier s'il existe une restriction d'emplacement des ressources (
constraints/gcp.resourceLocations). Cette contrainte détermine les emplacements où les données peuvent être stockées. De plus, certains services sont compatibles avec des contraintes qui peuvent affecter un récepteur de journaux. Par exemple, plusieurs restrictions peuvent s'appliquer lorsqu'une destination Pub/Sub est sélectionnée. Pour obtenir la liste des contraintes possibles, consultez Contraintes liées aux règles d'administration.Pour savoir comment procéder, consultez Créer et modifier des règles.
Si vous ne pouvez pas mettre à jour la règle d'administration, mettez à jour votre récepteur sur la page Routeur de journaux pour utiliser une destination conforme.
Votre récepteur commence à acheminer les entrées de journal lorsque la règle d'administration ne l'empêche plus d'écrire dans la destination et que Logging reçoit de nouvelles entrées de journal correspondant à votre filtre.
Problèmes de clé de chiffrement avec les récepteurs
Si vous utilisez des clés de chiffrement, qu'elles soient gérées avec Cloud Key Management Service ou par vous, pour chiffrer les données de la destination du récepteur, des erreurs associées peuvent s'afficher. Voici quelques problèmes possibles et les solutions pour les résoudre :
La clé Cloud KMS est introuvable.
Le projet Google Cloud qui contient la clé Cloud KMS configurée pour chiffrer les données est introuvable.
Utilisez une clé Cloud KMS valide d'un projetGoogle Cloud existant.
L'emplacement de la clé Cloud KMS ne correspond pas à l'emplacement de la destination.
Si le projet Google Cloud qui contient la clé Cloud KMS se trouve 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.
Utilisez une clé Cloud KMS contenue dans un projet Google Cloud dont la région 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.
Attribuez le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS au compte de service spécifié dans le champ
writerIdentitydu récepteur pour la clé utilisée dans la destination. Vérifiez également que l'API Cloud KMS est activée.
Problèmes de quota avec les récepteurs
Lorsque les récepteurs écrivent des entrées de journal, les quotas d'exportation et de destination s'appliquent. Selon la destination, les quotas sont appliqués à la ressource où le récepteur a été créé (par exemple, pour Pub/Sub) ou à la destination elle-même (par exemple, pour BigQuery). Si le quota est épuisé, un récepteur cesse d'acheminer les entrées de journal vers sa destination.
- Les récepteurs qui acheminent les entrées de journal vers un sujet Pub/Sub sont limités à 60 Go/min. Si le volume d'entrées de journal dépasse le quota de débit d'exportation, une entrée de journal avec un code d'erreur
topic_over_quotaest écrite.
Les quotas s'appliquent également aux récepteurs agrégés. Ces récepteurs acheminent les entrées de journal pour le dossier ou l'organisation dans lequel ils ont été créés, ainsi que pour les ressources enfants.
Pour résoudre les problèmes d'épuisement des quotas, essayez les solutions suivantes :
Réduisez la quantité de données de journal acheminées en mettant à jour le filtre de votre récepteur pour qu'il corresponde à moins d'entrées de journal. Vous pouvez utiliser la fonction
sampledans votre filtre pour sélectionner une fraction du nombre total d'entrées de journal.Envoyez une demande d'assistance pour augmenter votre quota.
Pour en savoir plus sur les limites susceptibles de s'appliquer lorsque vous acheminez des entrées de journal, consultez les informations sur les quotas de la destination appropriée :
Routage des erreurs vers des buckets Cloud Logging
Il peut arriver que vous voyiez dans l'explorateur de journaux des entrées de journal que vous avez exclues avec votre récepteur. Vous pouvez toujours voir ces entrées de journal si l'une des conditions suivantes est remplie :
Vous exécutez votre requête dans le projet Google Cloud qui a généré les entrées de journal.
Pour résoudre ce problème, vérifiez que vous exécutez votre requête dans le bon projetGoogle Cloud .
Les entrées de journal exclues ont été envoyées à plusieurs buckets de journaux. Vous voyez une copie du journal que vous vouliez exclure.
Pour résoudre ce problème, vérifiez vos récepteurs sur la page Routeur de journaux pour vous assurer que vous n'incluez pas les entrées de journal dans les filtres d'autres récepteurs.
Vous avez accès aux vues du bucket de journaux où les entrées de journal ont été envoyées. Dans ce cas, vous pouvez voir ces entrées de journal par défaut.
Pour éviter de voir ces entrées de journal dans l'explorateur de journaux, vous pouvez affiner le champ d'application de votre recherche à votre projet ou bucket source Google Cloud .
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 :
Vérifiez que vous disposez des autorisations nécessaires pour supprimer le bucket. Pour obtenir la liste des autorisations dont vous avez besoin, consultez 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.
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 :
-
Dans la console Google Cloud , accédez à la page 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.
À partir de l'onglet Autorisations, affichez la liste par Rôles. Un tableau s'affiche avec tous les rôles et comptes principaux IAM associés à votre projetGoogle Cloud .
Dans la tableFiltre zone de texte filter_list, 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
.Facultatif : Si vous souhaitez empêcher un compte de service d'acheminer des journaux vers votre projet Google Cloud , cochez la case check_box_outline_blank correspondant au compte de service, puis cliquez sur Supprimer.
Pourquoi est-ce que je vois des journaux pour un projet Google Cloud alors que je les ai exclus de mon récepteur _Default ?
Vous pouvez afficher les journaux d'un bucket de journaux dans un projet Google Cloud centralisé, qui agrège les journaux de l'ensemble de votre organisation.
Si vous utilisez l'explorateur de journaux pour accéder à ces journaux et que vous voyez des journaux que vous avez exclus du récepteur _Default, il est possible que votre vue soit définie au niveau du projetGoogle Cloud .
Pour résoudre ce problème, sélectionnez Vue de journaux dans le menu Affiner le champ d'application, puis sélectionnez la vue de journaux associée au bucket _Default dans votre projetGoogle Cloud . Vous ne devriez plus voir les journaux exclus.