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

Cette page explique comment exporter des entrées de journal à l'aide de Cloud Console. Vous pouvez également exporter des entrées de journal à l'aide de l'API Cloud Logging ou de l'outil de ligne de commande gcloud logging.

Pour en savoir plus sur l'exportation de journaux dans Stackdriver Logging, consultez la section Présentation des exportations de journaux. En résumé, vous exportez des journaux en créant un ou plusieurs récepteurs incluant une requête de journal et une destination d'exportation. Lorsque Cloud Logging reçoit de nouvelles entrées de journal, elles sont comparées à chaque récepteur. Si une entrée de journal correspond à la requête d'un récepteur, une copie de l'entrée de journal est écrite dans la destination d'exportation.

Les destinations acceptées pour les entrées de journal exportées sont Cloud Storage, BigQuery et Pub/Sub.

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

Avant de commencer

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

    Vous devez également disposer des rôles Cloud IAM Propriétaire ou Rédacteur de configuration des journaux dans le projet pour pouvoir créer, supprimer ou modifier un récepteur. Reportez-vous à la page Autorisations et rôles pour plus d'informations.

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

Premiers pas

  1. Accédez à Cloud Logging > Routeur de journaux dans Cloud Console :

    Accéder au routeur de journaux

  2. Sélectionnez un projet Google Cloud existant en haut de la page.

La capture d'écran suivante montre un exemple de la page Routeur de journaux, sur laquelle plusieurs récepteurs de journaux sont déjà configurés :

Interface utilisateur affichant la liste des exportations.

Si vous n'avez pas encore configuré de récepteurs de journaux, le message Aucun récepteur de journaux configuré s'affiche.

Interface utilisateur du routeur de journaux

L'interface Routeur de journaux contient un tableau récapitulatif des exportations. Chaque ligne du tableau contient des informations correspondant à certaines des propriétés de récepteur décrites sur la page Présentation des exportations de journaux :

  • Nom du récepteur : identifiant du récepteur dans le projet actuel.
  • Destination : emplacement où les entrées de journal seront exportées.
  • 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 situé tout à droite et qui inclut les options suivantes :

  • Modifier le récepteur : ouvre le panneau Modifier le récepteur 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 les détails du récepteur : affiche la requête du récepteur. Cliquez sur Modifier pour modifier les propriétés ou la requête 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 (Nom du récepteur, Destination et 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) :

Interface utilisateur affichant une requête de recherche.

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'exportation, cliquez sur Créer un récepteur en haut de la page Routeur de journaux. Vous pouvez également le faire en haut de la page de la visionneuse de journaux.

Si votre compte de service n'est pas autorisé à créer des exportations pour le projet, cette option n'est pas disponible. Consultez la section Avant de commencer ci-dessus pour plus d'informations.

La capture d'écran suivante montre le panneau Modifier le récepteur avec certains champs remplis.

Interface utilisateur affichant le panneau

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

  1. (filtre) : saisissez une requête de journaux avancée. Les guillemets autour de la requête ne sont pas nécessaires et vous pouvez utiliser plusieurs lignes. La requête initiale est déterminée par les entrées de journal affichées lorsque vous cliquez sur Créer une exportation.

    Chaque fois que vous modifiez la requête, cliquez sur Envoyer la requête pour afficher les entrées de journal correspondantes. Cliquez sur Accéder aux journaux les plus récents pour récupérer les journaux les plus récents.

    Pour sélectionner des journaux à l'aide de l'interface de visualisation de base, utilisez le menu déroulant dans la zone de requête de recherche.

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

  3. 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 correspondre à un emplacement Cloud Storage, BigQuery ou Pub/Sub. Vous pouvez toutefois envoyer des journaux à un récepteur dans un autre projet Google Cloud. La source et la destination du récepteur ne doivent pas nécessairement faire partie de la même organisation Google Cloud.

  4. Destination du récepteur :

    1. Cloud Storage : sélectionnez ou créez le bucket particulier qui recevra les journaux exportés.
    2. 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. Vous pouvez également utiliser des tables partitionnées.
    4. Destination personnalisée : ajoutez le projet Google Cloud associé à Cloud Storage, Pub/Sub ou BigQuery sous forme de chaîne. Pour plus d'informations sur le format des noms de projets, consultez la page Propriétés des récepteurs.
  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 Routeur.

L'exportation des nouvelles entrées de journal qui correspondent à votre récepteur commence. Dans le cas de BigQuery ou de 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. Pour plus d'informations, reportez-vous à la section Utiliser des journaux exportés.

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é en haut de la page d'accueil de votre projet dans Google Cloud Console. Pour diagnostiquer les erreurs courantes, accédez à la section Dépannage ci-dessous.

Mettre à jour des récepteurs

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

  • Destination
  • Query

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 celui-ci sur la page Routeur, puis cliquez sur Supprimer en haut de la page. Vous pouvez également sélectionner Supprimer le récepteur dans le menu situé à droite de son nom.

Autorisations des destinations

Cette section décrit comment accorder à Stackdriver Logging les autorisations Cloud Identity and Access Management pour écrire des journaux exportés sur la destination d'exportation de votre récepteur.

Lorsque vous créez un récepteur, 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 Cloud 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 Cloud Console, dans l'interface de ligne de commande gcloud logging ou dans l'API Logging.

  2. Si vous avez créé votre récepteur dans Cloud Console et que vous disposez d'un accès Propriétaire à la destination, Cloud Logging doit avoir configuré les autorisations nécessaires. 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 Cloud Console, l'identité du rédacteur apparaît dans la liste des récepteurs sur la page Routeur.
    • 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, l'identité des rédacteurs apparaît 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 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 disposer de l'autorisation Cloud IAM nécessaire pour accéder à la destination d'exportation, il signale une erreur et ignore l'entrée de journal. Ce processus se poursuit jusqu'à ce que l'autorisation soit accordée. Une fois celle-ci obtenue, le récepteur commence à exporter de nouvelles entrées de journal.

L'autorisation d'écrire sur la destination d'exportation présente un délai entre la création du récepteur et l'utilisation du nouveau compte de service du récepteur. Au cours des premières 24 heures qui suivent la création du récepteur, des messages d'erreur d'autorisation peuvent apparaître sur la page Activité de votre projet. Vous pouvez les ignorer.

Avantages et limites

L'utilisation de l'API Logging présente les avantages suivants :

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

Cependant, Cloud Console 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 Récepteurs agrégés.

Dépannage

Voici quelques problèmes courants que vous pouvez rencontrer lors de l'exportation de journaux, ainsi que les solutions pour y remédier :

  • Erreurs de la destination : vérifiez la spécification de la destination d'exportation dans le récepteur. Utilisez la méthode projects.sinks.get pour rechercher l'identité du rédacteur pour votre récepteur, puis vérifiez que cette identité dispose d'un accès en écriture à votre destination d'exportation.

  • Aucun journal n'est exporté. Voici quelques raisons possibles pour ce problème :

    • Votre requête est incorrecte. Vérifiez votre requête d'exportation pour vous assurer que les entrées de journal correspondant à votre requête ont récemment été reçues dans Stackdriver Logging et corrigez les erreurs d'orthographe ou de format.

    • 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 exportées.

      Il existe un délai avant que vous puissiez afficher vos journaux exportés dans la destination. surtout pour les destinations Cloud Storage. Pour plus d'informations, reportez-vous à la page Disponibilité des journaux exportés.

      Vous pouvez également consulter les métriques du système d'exportation. Celles-ci peuvent vous indiquer le nombre d'entrées de journal exportées ou supprimées en raison d'erreurs.

Votre récepteur commence à exporter les journaux une fois les erreurs corrigées.

Pour afficher les erreurs du récepteur à l'aide de la visionneuse de journaux, procédez comme suit :

  1. Accédez au flux d'activités associé au projet ou à la ressource dans laquelle le récepteur a été créé :

    Accéder au flux d'activité

  2. Dans le panneau Filtres, sélectionnez Type d'activité > Configuration, et Type de ressource > Récepteur d'exportations de journaux.

  3. Ajustez la date et l'heure pour afficher les erreurs de récepteur correspondant à la période.

    Vos erreurs de récepteur s'affichent.

Cette section répertorie certains résultats inattendus ainsi que certaines erreurs possibles du service, et explique comment les traiter.

Erreurs lors de l'exportation vers Cloud Storage

Le tableau suivant répertorie les erreurs les plus courantes lors de 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 Uniforme 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 précis défini 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 lors de l'exportation de 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 la requête de votre récepteur pour réduire le nombre 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 Pub/Sub

Le tableau suivant répertorie les erreurs les plus courantes lors de l'exportation des journaux vers 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.

Étape suivante