Exporter des entrées de journal avec la visionneuse de journaux

Cette page explique comment exporter des entrées de journal à l'aide de la console GCP. Vous pouvez également exporter des entrées de journal dans l'API Stackdriver Logging et dans l'outil de ligne de commande gcloud logging.

Si vous n'êtes pas familiarisé avec l'exportation de journaux dans Stackdriver Logging, consultez la présentation des exportations de journaux. En résumé, vous exportez des journaux en créant un ou plusieurs récepteurs, qui comportent un filtre de journaux et une destination d'exportation. Lorsque Stackdriver Logging reçoit de nouvelles entrées de journal, elles sont comparées à chaque récepteur. Si une entrée correspond au filtre d'un récepteur, une copie de l'entrée de journal est écrite dans la destination d'exportation.

Pour en savoir plus sur la mise en forme et l'organisation des entrées de journaux exportées, consultez la page Utiliser les journaux exportés.

Premiers pas

  1. Dans la console GCP, accédez à la page Stackdriver Logging > Exportations des journaux :

    Accéder à la page Exportations des journaux

  2. Sélectionnez un projet GCP en haut de la page. La liste des exportations de journaux de votre projet GCP s'affiche.

    La capture d'écran suivante montre un exemple de la page Log exports (Exportations des journaux), sur laquelle plusieurs récepteurs de journaux sont déjà configurés :

Page "Exportations"

Si vous n'avez pas encore configuré de récepteurs de journaux, le message Aucun récepteur de journal n'est configuré s'affiche au lieu de la liste ci-dessus.

Avant de commencer

  • Projet : vous devez disposer d'un projet Google Cloud Platform avec des journaux que vous pouvez consulter dans la visionneuse de journaux.

    Vous devez détenir dans le projet le rôle IAM de Propriétaire ou de Rédacteur de configuration des journaux pour pouvoir créer, supprimer ou modifier un récepteur. Pour plus d'informations, consultez la section Autorisations et rôles.

  • Service de destination : pour exporter des journaux, vous devez vous inscrire au service dans lequel vous allez écrire vos journaux (Cloud Storage, BigQuery ou Cloud Pub/Sub).

Interface utilisateur des exportations de journaux

L'interface Exportations des journaux contient un tableau récapitulatif des exportations. Chaque ligne du tableau comporte des informations correspondant à certaines des propriétés des récepteurs décrites dans la présentation des exportations de journaux :

  • Sink Name (Nom du récepteur) : identifiant du récepteur dans le projet actuel.
  • Destination : emplacement où les entrées de journal seront exportées.
  • Writer Identity (Identité du rédacteur) : compte de service utilisé par Stackdriver Logging pour écrire les entrées de journal sur la destination. Ce compte de service doit avoir l'autorisation d'écrire sur la destination d'exportation du récepteur.

Chaque ligne du tableau comporte un menu à développer situé tout à droite et inclut les options suivantes :

  • Modifier le récepteur : ouvre le panneau Modifier l'exportation dans lequel vous pouvez modifier les paramètres du récepteur.
  • Supprimer le récepteur : permet de supprimer le récepteur et d'arrêter l'exportation des journaux.
  • Afficher le filtre : affiche le filtre du récepteur. Cliquez sur Modifier pour modifier les propriétés ou le filtre du récepteur.

Le champ de filtre de recherche situé au-dessus du tableau permet de filtrer les récepteurs par recherche textuelle ou selon les propriétés des récepteurs (Sink Name (Nom du récepteur), Destination et Writer Identity (Identité du rédacteur)). Par exemple, la capture d'écran suivante montre une recherche sur la destination bigquery, les autres propriétés des récepteurs étant regroupées dans l'argument avec la valeur OR (AND est la valeur par défaut) :

Filtre d'exportation

Vous pouvez par ailleurs cliquer sur l'un des noms de colonne pour trier les données par ordre croissant ou décroissant. Vous pouvez également sélectionner le nombre de lignes à afficher, en bas du tableau.

Créer des récepteurs

Pour créer un récepteur d'exportations, cliquez sur le bouton Create Export (Créer une exportation) en haut de la page Log exports (Exportations des journaux). Vous pouvez également accéder à ce bouton en haut de la page de la visionneuse de journaux.

Si votre compte n'a pas l'autorisation de créer des exportations pour le projet, ce bouton est désactivé. Pour plus d'informations, consultez la section ci-dessus Avant de commencer.

La capture d'écran suivante montre le panneau Edit Export (Modifier l'exportation) avec certains champs remplis.

Configurer l'exportation

Pour créer un récepteur, saisissez les informations suivantes dans le panneau Modifier l'exportation :

  1. (filtre) : saisissez un filtre de journaux avancé. Vous n'avez pas besoin d'utiliser de guillemets autour du filtre et vous pouvez utiliser plusieurs lignes. Le filtre initial est déterminé par les entrées de journal affichées lorsque vous cliquez sur Create Export (Créer une exportation).

    Lorsque vous modifiez le filtre, cliquez sur Submit Filter (Envoyer le filtre) sous le champ du filtre pour afficher les entrées de journal correspondantes. Cliquez sur l'icône Accéder aux journaux les plus récents en haut de la page pour récupérer les journaux les plus récents.

    Si vous souhaitez passer par l'interface de visualisation de base pour sélectionner les journaux, accédez au menu ▾ à droite du champ de filtres de recherche.

  2. Nom du récepteur : saisissez l'identifiant que vous souhaitez attribuer au récepteur.

  3. Sink Service (Service du récepteur) : sélectionnez un service de destination parmi Cloud Storage, Cloud Pub/Sub, BigQuery et Destination personnalisée.

    Une destination d'exportation personnalisée doit toujours se trouver dans Cloud Storage, BigQuery ou Cloud Pub/Sub, mais elle vous permet d'envoyer des journaux à un récepteur dans un projet différent.

  4. Destination du récepteur :

    1. Cloud Storage : sélectionnez ou créez le bucket particulier qui recevra les journaux exportés.
    2. Cloud Pub/Sub : sélectionnez ou créez le sujet particulier qui recevra les journaux exportés.
    3. BigQuery : sélectionnez ou créez l'ensemble de données particulier qui recevra les journaux exportés.
    4. Destination personnalisée : ajoutez le projet Cloud Storage, Cloud Pub/Sub ou BigQuery en tant que chaîne. Consultez les propriétés des récepteurs pour obtenir plus d'informations sur la mise en forme des noms de projets.
  5. Cliquez sur Mettre à jour le récepteur pour créer le récepteur.

    Au cours de la création du récepteur, Stackdriver Logging tente d'accorder au rédacteur du récepteur l'accès en écriture aux fichiers de destination. Si vous exportez des journaux vers une destination dans un projet autre que le projet propriétaire de vos journaux, un administrateur de la nouvelle destination doit accorder cette autorisation. Vous devez envoyer à l'administrateur l'identité du rédacteur du récepteur, qui est répertoriée avec le récepteur sur la page Exportations.

Les nouvelles entrées de journal qui correspondent à votre récepteur commencent à être exportées. Dans le cas de BigQuery ou Cloud Pub/Sub, les entrées exportées sont immédiatement transmises à ces destinations. Les entrées de journal exportées vers Cloud Storage sont regroupées et envoyées environ toutes les heures. Consultez la page Utiliser les journaux exportés pour obtenir plus d'informations.

Si Stackdriver Logging rencontre des erreurs lors de la tentative d'exportation de journaux vers votre destination d'exportation, celles-ci apparaissent dans le flux d'activité de votre projet. Sélectionnez Activités en haut de la page d'accueil de votre projet dans la console Google Cloud Platform. Consultez la section Dépannage pour découvrir comment diagnostiquer les erreurs courantes.

Mettre à jour des récepteurs

Pour mettre à jour un récepteur, sélectionnez la commande Modifier un récepteur dans le menu Plus à droite du nom du récepteur. Vous pouvez modifier l'un des paramètres suivants :

  • Destination
  • Filtre

Pour modifier tout autre paramètre de vos récepteurs, appelez la méthode API projects.sinks.update.

Supprimer des récepteurs

Pour supprimer un récepteur, sélectionnez-le sur la page Exportations et cliquez sur Supprimer en haut. Vous pouvez également sélectionner Supprimer le récepteur dans le menu Plus à droite du nom du récepteur.

Autorisations des destinations

Cette section explique comment accorder à Stackdriver Logging l'autorisation d'écrire des journaux exportés sur la destination d'exportation de votre récepteur.

Lorsque vous créez un récepteur, Stackdriver Logging crée un compte de service pour celui-ci, appelé identité du rédacteur unique Vous ne pouvez pas gérer ce compte de service directement, car il est détenu et géré par Stackdriver Logging. Si le récepteur est supprimé, le compte de service l'est également.

Votre destination d'exportation doit autoriser ce compte de service à écrire des entrées de journal. Pour configurer cette autorisation, procédez comme suit :

  1. Créez le récepteur dans la console GCP, l'interface de ligne de commande gcloud logging ou l'API Stackdriver Logging.

  2. Si vous avez créé votre récepteur dans la console GCP et que vous disposez d'un accès Propriétaire à sa destination, Stackdriver Logging doit avoir configuré les autorisations nécessaires en votre nom. Si tel est le cas, vous avez terminé. Sinon, poursuivez la procédure.

  3. Obtenez l'identité du rédacteur du récepteur (une adresse e-mail) à partir du nouveau récepteur :

    • Si vous utilisez la console GCP, vous pouvez voir l'identité du rédacteur dans la liste des récepteurs sur la page Exportations.
    • Si vous utilisez l'API Stackdriver Logging, vous pouvez obtenir l'identité du rédacteur à partir de l'objet LogSink.
    • Si vous utilisez gcloud logging, les identités des rédacteurs s'affichent lorsque vous répertoriez vos récepteurs.
  4. Si vous avez un accès Propriétaire à la destination, ajoutez le compte de service à celle-ci de la façon suivante :

    • Pour les destinations Cloud Storage, ajoutez l'identité du rédacteur du récepteur à votre bucket et attribuez-lui le rôle Créateur des objets de l'espace de stockage.
    • Pour les destinations BigQuery, ajoutez l'identité du rédacteur du récepteur à votre ensemble de données et attribuez-lui le rôle Éditeur de données BigQuery.
    • Pour Cloud Pub/Sub, ajoutez l'identité du rédacteur du récepteur à votre sujet et attribuez-lui le rôle Éditeur Pub/Sub.

    L'autorisation est désormais attribuée.

  5. Si vous ne disposez pas d'un accès Propriétaire à la destination d'exportation, envoyez le nom du compte de service de l'identité du rédacteur à une personne qui possède cet accès. Celle-ci doit ensuite suivre les instructions de l'étape précédente pour ajouter l'identité du rédacteur à la destination d'exportation.

Délais d'autorisation

Si un récepteur tente d'exporter une entrée de journal sans avoir l'autorisation nécessaire pour accéder à la destination d'exportation, il signale une erreur et ignore l'entrée de journal, et ce, jusqu'à ce que l'autorisation lui soit accordée. Une fois celle-ci obtenue, le récepteur commence à exporter de nouvelles entrées de journal.

Il y aura forcément un délai entre la création du récepteur et l'utilisation de son nouveau compte de service pour autoriser l'écriture sur la destination d'exportation. Vous pouvez choisir d'ignorer tout message d'erreur envoyé par le récepteur pendant ce délai.

Avantages et limites

La console GCP présente les avantages suivants par rapport à l'utilisation de l'API Stackdriver Logging :

  • La console GCP affiche tous vos récepteurs au même endroit.
  • La console GCP affiche les entrées de journal qui correspondent au filtre de votre récepteur avant la création de celui-ci.
  • La console GCP peut créer des destinations d'exportation pour vos récepteurs et les autoriser.

En revanche, la console GCP ne peut créer ou afficher des récepteurs que dans les projets. Pour créer des récepteurs dans des organisations, des dossiers ou des comptes de facturation, consultez la page Exportations agrégées.

Dépannage

Cette section répertorie certains résultats inattendus et erreurs possibles, et explique comment les traiter.

Les erreurs envoyées par les récepteurs apparaissent dans le flux d'activité du projet ou de toute autre ressource dans laquelle le récepteur a été créé. Consultez le flux d'activité sur la page d'accueil de la ressource dans la console GCP.

Problèmes d'ordre général

Problème Cause Solution
Vos nouvelles entrées de journal sont exportées, mais pas les anciennes. Stackdriver Logging n'exporte que les entrées de journal reçues après la configuration de l'exportation. Appelez la méthode d'API entries.list pour récupérer vos anciennes entrées de journal et utilisez l'API du service de la destination pour écrire les entrées de journal sur une destination d'exportation. Seules les entrées de journal n'ayant pas atteint leur date d'expiration dans Stackdriver Logging peuvent être récupérées. Pour plus d'informations, consultez la section relative aux limites de conservation des journaux.

Erreurs lors de l'exportation vers Cloud Storage

Le tableau suivant répertorie les erreurs les plus courantes survenant lors de la configuration de Stackdriver Logging pour l'exportation des journaux vers Cloud Storage :

Erreur Cause Solution
Les autorisations accordées au bucket [VOTRE_BUCKET] ne permettent pas au groupe de journaux de créer de nouveaux objets. L'identité du rédacteur du récepteur ne dispose pas des autorisations suffisantes pour le bucket. Accordez les autorisations nécessaires pour le bucket ou mettez à jour votre récepteur afin d'utiliser un autre bucket. Consultez la section sur les autorisations des destinations.
Aucun bucket avec le nom : [VOTRE_BUCKET]. Il se peut que le nom du bucket comporte une erreur ou que le bucket ait été supprimé. Mettez à jour votre récepteur avec la bonne destination.
Le récepteur a bien été créé. Cependant, nous n'avons pas pu attribuer les autorisations nécessaires à la destination. Le modèle de contrôle d'accès du bucket a été défini sur Définir les autorisations de manière uniforme au niveau du bucket (stratégie du bucket seulement) lors de la création du bucket.

(Ce message d'erreur continue à s'afficher après l'ajout du compte de service.)
Sélectionnez le modèle de contrôle d'accès Définir des autorisations au niveau de l'objet et du bucket lors de la création du bucket. Pour les buckets 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.

Erreurs lors de l'exportation vers BigQuery

Le tableau suivant répertorie les erreurs les plus courantes survenant lors de la configuration de Stackdriver Logging pour l'exportation des journaux vers BigQuery :

Erreur Cause Solution
Les autorisations accordées à l'ensemble de données [VOTRE_ENSEMBLE] ne permettent pas au groupe de journaux de créer de nouvelles tables. L'identité du rédacteur du récepteur ne dispose pas des autorisations suffisantes pour l'ensemble de données. Accordez l'autorisation à l'ensemble de données. Consultez la section sur les autorisations des destinations.
Aucun ensemble de données avec le nom : [VOTRE_ENSEMBLE]. Il se peut que la destination de votre récepteur comporte une erreur ou que quelqu'un ait supprimé l'ensemble de données. Vous pouvez recréer l'ensemble de données ou mettre à jour le récepteur d'exportation afin d'utiliser un autre ensemble de données.
Les journaux diffusés vers le tableau [VOTRE_TABLEAU] dans l'ensemble de données [VOTRE_ENSEMBLE] ne correspondent pas au schéma du tableau. Vous essayez d'exporter des journaux incompatibles avec le schéma du tableau actuel. Assurez-vous que vos entrées de journal correspondent au schéma du tableau. L'exportation d'entrées de journal avec différents types de données constitue un problème courant. 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. Le flux d'activité contient un lien vers l'une des entrées de journal non valides. Après avoir corrigé la source de l'erreur, vous pouvez renommer votre tableau actuel et laisser Stackdriver Logging recréer le tableau.
Le quota d'insertion en flux continu par tableau est dépassé pour le tableau [VOTRE_TABLEAU] dans l'ensemble de données [VOTRE_ENSEMBLE]. Vous exportez un nombre trop grand d'entrées de journal trop rapidement. Consultez les limites de quota par défaut de BigQuery, qui s'appliquent à la diffusion de journaux. Diminuez la quantité de données de journal générées par votre récepteur. Vous pouvez mettre à jour le filtre de votre récepteur pour qu'il corresponde à moins d'entrées de journal ou utiliser la fonction sample().
Les journaux diffusés vers le tableau partitionné [VOTRE_TABLEAU] sont en dehors des limites temporelles autorisées. BigQuery n'accepte pas les journaux trop éloignés dans le passé ou le futur. Les journaux en dehors des limites temporelles autorisées ne peuvent pas être exportés avec des récepteurs. Vous pouvez exporter ces journaux vers Cloud Storage et utiliser une tâche de chargement BigQuery à la place. Consultez la documentation BigQuery pour plus d'instructions.
Les journaux ne peuvent pas être diffusés vers l'ensemble de données [VOTRE_ENSEMBLE], car une règle d'administration interdit cette opération. Une règle d'administration bloque l'écriture sur l'ensemble de données sélectionné. Pour en savoir plus sur les règles d'administration, consultez la documentation. Modifiez votre récepteur d'exportations pour utiliser un ensemble de données conforme.

Erreurs lors de l'exportation des journaux vers Cloud Pub/Sub

Le tableau suivant répertorie les erreurs les plus courantes survenant lors de la configuration de Stackdriver Logging pour l'exportation des journaux vers Cloud Pub/Sub :

Erreur Cause Solution
Le compte [COMPTE] doit disposer d'une autorisation en écriture sur le projet [PROJET] pour publier dans le sujet [SUJET]. L'identité du rédacteur du récepteur ne dispose pas des autorisations suffisantes pour le sujet. Accordez les autorisations nécessaires à votre projet. Consultez la section sur les autorisations des destinations.
Le sujet [SUJET] n'existe pas. Il se peut que vous ayez supprimé le sujet configuré pour recevoir vos journaux exportés. Recréez le sujet avec le même nom ou modifiez la configuration de l'exportation afin d'utiliser un autre sujet.

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Stackdriver Logging
Besoin d'aide ? Consultez notre page d'assistance.