Configurer Stackdriver Logging pour Python

Vous pouvez écrire des journaux dans Stackdriver Logging depuis des applications Python grâce au gestionnaire de journalisation Python inclus dans la bibliothèque cliente Stackdriver Logging, ou en accédant directement à l'API à l'aide de la bibliothèque cliente.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Sélectionnez ou créez un projet Google Cloud Platform.

    Accéder à la page "Gérer les ressources"

  3. Assurez-vous que la facturation est activée pour votre projet Google Cloud Platform.

    Découvrir comment activer la facturation

  4. {% dynamic if "no_credentials" in setvar.task_params %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic if not setvar.redirect_url %}{% dynamic setvar redirect_url %}https://console.cloud.google.com{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if setvar.in_henhouse_no_auth_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic endif %}{% dynamic elif setvar.in_henhouse_service_account_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}SERVICE_ACCOUNT{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if not setvar.service_account_roles and setvar.credential_type == "SERVICE_ACCOUNT" %}{% dynamic setvar service_account_roles %}{% dynamic endsetvar %}{% dynamic endif %}{% dynamic setvar console %}{% dynamic if "no_steps" not in setvar.task_params %}
  5. {% dynamic endif %}{% dynamic if setvar.api_list %}{% dynamic if setvar.in_henhouse_no_auth_whitelist or setvar.in_henhouse_service_account_whitelist %}Configurez un projet dans la console GCP.

    Configurer un projet

    Cliquez pour effectuer les opérations suivantes :

    • Créer ou sélectionner un projet
    • Activer {% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}{% dynamic endif %}{% dynamic if "," in setvar.api_list %}les API requises{% dynamic elif "API" in setvar.api_names %}{% dynamic else %}l'API requise{% dynamic endif %} pour ce projet
    • {% dynamic if setvar.credential_type == 'SERVICE_ACCOUNT' %}
    • Créer un compte de service
    • Télécharger une clé privée au format JSON
    • {% dynamic endif %}

    Vous pouvez afficher et gérer ces ressources à tout moment dans la console GCP.

    {% dynamic else %}{% dynamic if "no_text" not in setvar.task_params %}Activez {% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}{% dynamic endif %}{% dynamic if "," in setvar.api_list %}les API requises{% dynamic elif "API" in setvar.api_names %}{% dynamic else %}l'API requise{% dynamic endif %}. {% dynamic endif %}

    Activer {% dynamic if "," in setvar.api_list %}les API{% dynamic else %}l'API{% dynamic endif %}.

    {% dynamic endif %}{% dynamic endif %}{% dynamic if "no_steps" not in setvar.task_params %}
  6. {% dynamic endif %}{% dynamic endsetvar %}{% dynamic print setvar.console %}
  7. Préparez votre environnement au développement de Python.

    Accéder au guide de configuration de Python

Installer la bibliothèque

Pour installer la bibliothèque Stackdriver Logging pour Python, consultez la section Installer la bibliothèque cliente.

Une fois installée, cette bibliothèque propose des gestionnaires de journalisation qui permettent de connecter le module de journalisation standard de Python à Stackdriver, ainsi qu'une bibliothèque cliente des API qui permet d'accéder manuellement à Stackdriver Logging.

Connecter la bibliothèque à la journalisation Python

Pour envoyer toutes les entrées de journal à Stackdriver en associant le gestionnaire Stackdriver Logging à l'enregistreur racine Python, utilisez la méthode d'assistance setup_logging :

# Imports the Google Cloud client library
import google.cloud.logging

# Instantiates a client
client = google.cloud.logging.Client()

# Connects the logger to the root logging handler; by default this captures
# all logs at INFO level and higher
client.setup_logging()

Utiliser l'enregistreur racine Python

Une fois le gestionnaire associé, tous les journaux émis dans votre application qui ont par défaut un niveau supérieur ou égal à INFO sont envoyés à Stackdriver Logging :

# Imports Python standard library logging
import logging

# The data to log
text = 'Hello, world!'

# Emits the data using the standard logging module
logging.warn(text)

Si les messages sont consignés dans Stackdriver Logging à partir d'App Engine ou de Kubernetes Engine, le gestionnaire les envoie aux types de ressources respectifs associés à ces environnements. Dans les autres cas, les journaux apparaissent par défaut sous le journal "python" dans le type de ressource Global.

Configurer le gestionnaire de journalisation

Si vous souhaitez associer le gestionnaire de journalisation Stackdriver pour qu'il ne sélectionne que des enregistreurs Python ou si, de manière générale, vous souhaitez le configurer, consultez la documentation relative à la bibliothèque d'API.

Pour en savoir plus, consultez la documentation relative à la bibliothèque Stackdriver Logging pour Python. Vous pouvez également signaler d'éventuels problèmes à l'aide de l'outil de suivi des problèmes.

Utiliser directement la bibliothèque cliente cloud

Pour savoir comment utiliser directement la bibliothèque cliente cloud Stackdriver Logging pour Python, consultez la section Bibliothèques clientes Stackdriver Logging.

Exécuter sur Google Cloud Platform

Pour utiliser la bibliothèque Stackdriver Logging pour Python, vous devez détenir le rôle Rédacteur de journaux Cloud IAM sur GCP. La plupart des environnements GCP fournissent par défaut ce rôle.

App Engine

Par défaut, App Engine attribue le rôle Rédacteur de journaux.

La bibliothèque Stackdriver Logging pour Python peut s'utiliser sans avoir à fournir explicitement des identifiants.

Stackdriver Logging est automatiquement activé sur les applications App Engine. Aucune configuration supplémentaire n'est requise.

Google Kubernetes Engine

Sur Google Kubernetes Engine, vous devez ajouter le niveau d'accès logging.write lors de la création du cluster :

gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/logging.write

Compute Engine

Lorsque vous vous servez d'instances de VM Compute Engine, ajoutez le niveau d'accès cloud-platform à chaque instance. Si vous souhaitez créer une instance via la console Google Cloud Platform, vous pouvez le faire depuis la section Identité et accès à l'API du panneau Créer une instance. Utilisez le compte de service par défaut de Compute Engine ou un autre compte de service de votre choix, puis sélectionnez Autoriser l'accès complet à l'ensemble des API Cloud dans la section Identité et accès à l'API. Quel que soit le compte de service sélectionné, vérifiez qu'il dispose du rôle Rédacteur de journaux dans la section IAM et administration de la console GCP.

Exécuter en local et depuis un autre emplacement

Pour utiliser la bibliothèque Stackdriver Logging pour Python en dehors de Google Cloud Platform, y compris en l'exécutant sur votre propre poste de travail, sur les ordinateurs de votre centre de données ou sur les instances de VM d'un autre fournisseur cloud, vous devez saisir votre ID de projet GCP, ainsi que les identifiants du compte de service appropriés directement dans la bibliothèque Stackdriver Logging pour Python.

Vous pouvez créer et obtenir manuellement des identifiants pour le compte de service. Lorsque vous spécifiez le champ Rôle, utilisez le rôle Rédacteur de journaux. Pour en savoir plus sur les rôles Cloud Identity and Access Management, consultez le guide du contrôle des accès.

Afficher les journaux

Après le déploiement, vous pouvez afficher les journaux dans la visionneuse de journaux de la console GCP.

Accéder à la visionneuse de journaux

Dans la visionneuse de journaux, vous devez spécifier une ou plusieurs ressources, mais la sélection de ces dernières peut ne pas être évidente. Voici quelques conseils pour vous aider à faire vos premiers pas :

  • Si vous déployez votre application sur App Engine ou utilisez les bibliothèques propres à App Engine, définissez votre ressource sur Application GAE.

  • Si vous déployez votre application sur Compute Engine, définissez la ressource sur Instance de VM GCE.

  • Si vous déployez votre application sur Google Kubernetes Engine, la configuration de la journalisation de votre cluster détermine le type de ressource des entrées de journal. Pour en savoir plus sur les solutions Stackdriver Kubernetes Monitoring et de l'ancien Stackdriver, ainsi que sur l'incidence de ces options sur le type de ressource, consultez la section Migrer vers Stackdriver Kubernetes Monitoring.

  • Si votre application utilise directement l'API Stackdriver Logging, la ressource dépend de l'API et de votre configuration. Par exemple, dans votre application, vous pouvez spécifier une ressource ou utiliser une ressource par défaut.

  • Si aucun journal ne s'affiche dans la visionneuse de journaux, pour voir toutes les entrées de journal, passez en mode de filtre avancé et utilisez un filtre vide.

    1. Pour passer en mode de filtre avancé, cliquez sur le menu (▾) en haut de la visionneuse de journaux, puis sélectionnez Convertir en filtre avancé.
    2. Effacez le contenu qui apparaît dans le champ de filtre.
    3. Cliquez sur Envoyer le filtre.

    Vous pouvez examiner les entrées individuelles pour identifier vos ressources.

Pour obtenir plus d'informations, consultez les pages Afficher les journaux et Filtres de journaux avancés.

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

Envoyer des commentaires concernant…

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