Configurer Cloud Logging pour Python

Vous pouvez écrire des journaux dans Cloud Logging à partir d'applications Python à l'aide du gestionnaire de journalisation Python standard Bibliothèque cliente de l'API Cloud Logging pour Python. Lorsque vous utilisez le gestionnaire de journalisation Python standard, vous devez associer entre le gestionnaire Cloud Logging et le gestionnaire racine Python. Ce document illustre bien cette approche.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Logging API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Logging API.

    Enable the API

  8. Préparez l'environnement au développement de Python.

    Accéder au guide de configuration de Python

Installer la bibliothèque

Pour installer la bibliothèque Cloud Logging pour Python, consultez Installez la bibliothèque cliente pour Python. Cette bibliothèque vous permet d'associer un gestionnaire Cloud Logging au gestionnaire racine Python standard. Vous pouvez également utiliser cette bibliothèque pour envoyer des requêtes API de requêtes à Cloud Logging.

Pour plus d'informations sur l'installation, consultez la documentation de la bibliothèque Cloud Logging pour Python. Vous pouvez également signaler d'éventuels problèmes à l'aide de l'outil de suivi des problèmes.

Écrire des journaux avec le gestionnaire de journalisation Python standard

À envoyer toutes les entrées de journal écrites avec le du gestionnaire racine Python à Cloud Logging, procédez comme suit:

  1. Associez le gestionnaire Cloud Logging à l'enregistreur racine Python en appelant la méthode setup_logging:

    # Imports the Cloud Logging client library
    import google.cloud.logging
    
    # Instantiates a client
    client = google.cloud.logging.Client()
    
    # Retrieves a Cloud Logging handler based on the environment
    # you're running in and integrates the handler with the
    # Python logging module. By default this captures all logs
    # at INFO level and higher
    client.setup_logging()

    Pour en savoir plus sur la configuration du gestionnaire de journalisation, consultez Intégration avec la bibliothèque Logging standard

  2. Écrivez des données de journal à l'aide de l'enregistreur racine Python:

    # Imports Python standard library logging
    import logging
    
    # The data to log
    text = "Hello, world!"
    
    # Emits the data using the standard logging module
    logging.warning(text)

    Par défaut, tout journal dont le niveau de gravité est au moins égal à INFO et qui est écrit par votre application est envoyé à Cloud Logging.

    Si les messages sont consignés dans Logging depuis App Engine ou Google Kubernetes Engine, le gestionnaire les envoie ensuite respectifs types de ressources Sinon, les journaux sont répertoriés sous le journal python dans Type de ressource Global.

Écrire des journaux avec la bibliothèque cliente Cloud Logging

Pour en savoir plus sur l'utilisation de la bibliothèque cliente Cloud Logging pour ou Python directement, consultez la page Bibliothèques clientes Cloud Logging.

Exécuter sur Google Cloud

Pour qu'une application écrive des journaux à l'aide de la bibliothèque Cloud Logging pour Python, le compte de service de la ressource sous-jacente doit disposer Rôle IAM Rédacteur de journaux (roles/logging.logWriter). La plupart des environnements Google Cloud configurent automatiquement compte de service doit disposer de ce rôle.

App Engine

Cloud Logging est automatiquement activé pour App Engine et le compte de service par défaut de votre application dispose des autorisations IAM par défaut permettant d'écrire des entrées de journal.

Pour en savoir plus, consultez la section Écrire et afficher journaux.

Google Kubernetes Engine (GKE)

GKE accorde automatiquement le compte de service par défaut le rôle IAM Rédacteur de journaux (roles/logging.logWriter). Si vous utilisez la fédération d'identité de charge de travail pour GKE avec ce compte de service par défaut pour autoriser les charges de travail à accéder à des API Google Cloud spécifiques, aucune configuration supplémentaire n'est requise. Toutefois, si vous utilisez la fédération d'identité de charge de travail pour GKE avec un compte de service IAM personnalisé, puis assurez-vous que le compte de service dispose du rôle Rédacteur de journaux (roles/logging.logWriter).

Si nécessaire, vous pouvez également utiliser la commande suivante pour 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 utilisez des instances de VM Compute Engine, ajoutez le niveau d'accès cloud-platform à chaque instance. Lorsque vous créez une instance via dans la console Google Cloud, vous pouvez le faire dans 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 Google Cloud.

Exécuter en local et depuis un autre emplacement

Pour utiliser la bibliothèque Cloud Logging pour Python en dehors de Google Cloud, 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 de cloud, vous devez fournir l'ID de votre projet Google Cloud et les identifiants du compte de service appropriés directement dans la bibliothèque Cloud Logging pour Python.

Pour les comptes de service existants, procédez comme suit:

  1. Accordez au compte de service le rôle IAM Rôle IAM Rédacteur de journaux (roles/logging.logWriter). Pour en savoir plus sur IAM consultez la page Contrôle des accès.

  2. Configurez les identifiants par défaut de l'application.

Si vous n'avez pas de compte de service, créez-en un. Pour en savoir plus sur ce processus, consultez la section Créer des comptes de service.

Pour obtenir des informations générales sur les méthodes que vous pouvez utiliser pour vous authentifier, consultez Terminologie: comptes de service.

Afficher les journaux

Dans la console Google Cloud, accédez à la page Explorateur de journaux.

Accéder à l'explorateur de journaux

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

Dans l'explorateur de journaux, vous devez spécifier une ou plusieurs ressources, mais leur sélection 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 obtenir sur les anciens modèles d'observabilité et d'observabilité Google Cloud les solutions Kubernetes Monitoring et leur impact sur type de ressource, consultez Migrer vers Google Cloud Observability Kubernetes Monitoring.

  • Si votre application utilise directement l'API Cloud 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 l'explorateur de journaux, passez en mode de requête avancée et utilisez une requête vide pour voir toutes les entrées de journal.

    1. Pour passer en mode de requête avancée, cliquez sur le menu (▾) en haut de l'explorateur 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 en savoir plus, consultez la page Utiliser l'explorateur de journaux.