Pour les applications Node.js, les plug-ins sont gérés pour les bibliothèques de journalisation Winston et Bunyan populaires. Winston est une bibliothèque à usage général, mettant en œuvre divers outils de mise en forme et de transport de journaux. Bunyan, spécialisé pour les journaux JSON structurés, est compatible avec la mise en forme des journaux en les redirigeant vers la ligne de commande Bunyan.
Vous pouvez également utiliser directement la bibliothèque cliente Logging pour Node.js ou créer vos propres intégrations avec la bibliothèque de journalisation de votre choix. Vous pouvez utiliser l'exemple du framework de journalisation Pin.
Il n'est pas nécessaire d'installer l'agent Logging pour utiliser Winston ou Bunyan sur une instance de machine virtuelle (VM) Compute Engine.
Avant de commencer
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activez Cloud Logging API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activez Cloud Logging API.
- Préparez votre environnement au développement de Node.js.
Configurer la journalisation
Cette section explique comment installer et configurer les plug-ins pour les bibliothèques de journalisation Winston et Bunyan. Pour Bunyan, des informations sont fournies sur l'utilisation de Bunyan avec une application Node.js Express.
Vous pouvez utiliser d'autres bibliothèques ou frameworks. Par exemple, vous pouvez utiliser le framework de journalisation Pin. Pour obtenir un exemple de code qui collecte des métriques et des données de trace à l'aide d'OpenTelemetry, ainsi que du framework de journalisation Pino, consultez Générer des traces et des métriques avec Node.js. Si vous utilisez Pino, vous devez mettre en correspondance les niveaux de gravité Pino et ceux utilisés par Cloud Logging. Pour obtenir un exemple de code, consultez la section Mapper les niveaux de journalisation Pino.
Installer et configurer le plug-in Winston
Cloud Logging fournit un plug-in pour la bibliothèque de journalisation Node.js Winston. Le plug-in Logging pour Winston fournit une couche plus simple de niveau supérieur pour travailler avec Logging.
Pour installer et configurer le plug-in Winston, procédez comme suit:
Pour installer le plug-in Logging Winston, utilisez npm:
npm install --save @google-cloud/logging-winston winston
Importez le plug-in et ajoutez-le à votre configuration Winston :
Configurez votre plug-in.
Vous pouvez personnaliser le comportement du plug-in Winston à l'aide des mêmes options de configuration que celles compatibles avec la bibliothèque cliente Cloud de l'API Cloud Logging pour Node.js. Ces options peuvent être transmises dans l'objet
options
, qui est lui-même transmis au constructeur du plug-in.
Installer et configurer le plug-in Bunyan
Cloud Logging fournit un plug-in pour la bibliothèque de journalisation Node.js Bunyan. Le plug-in Logging pour Bunyan propose une couche plus simple de niveau supérieur pour travailler avec Logging.
Pour installer et configurer le plug-in Bunyan, procédez comme suit:
Pour installer le plug-in Logging Bunyan, utilisez npm:
npm install --save bunyan @google-cloud/logging-bunyan
Importez le plug-in et ajoutez-le à votre configuration Bunyan :
Configurez votre plug-in.
Vous pouvez personnaliser le comportement du plug-in Bunyan à l'aide des mêmes options de configuration que celles compatibles avec la bibliothèque cliente Cloud de l'API Cloud Logging pour Node.js. Ces options peuvent être transmises dans l'objet
options
, qui est lui-même transmis au constructeur du plug-in.
Utiliser Bunyan et Express
Vous pouvez configurer et utiliser Bunyan avec Logging dans une application Express Node.js.
Pour plus d'informations sur l'installation, consultez la documentation sur les bibliothèques Cloud Logging pour Node.js. Vous pouvez également signaler d'éventuels problèmes à l'aide de l'outil de suivi des problèmes.
Écrire des journaux avec la bibliothèque cliente Cloud Logging
Pour savoir comment utiliser directement la bibliothèque cliente Cloud Logging pour Node.js, consultez la page Bibliothèques clientes Cloud Logging.
Exécuter sur Google Cloud
Pour qu'une application puisse écrire des journaux à l'aide des bibliothèques Cloud Logging pour Node.js, le compte de service de la ressource sous-jacente doit disposer du rôle IAM Rédacteur de journaux (roles/logging.logWriter
).
La plupart des environnements Google Cloud configurent automatiquement ce rôle pour le compte de service par défaut.
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 écrire des entrées de journal depuis votre application, nous vous recommandons d'utiliser Bunyan ou Winston, comme décrit sur cette page.
Pour en savoir plus, consultez la section Écrire et afficher des journaux.
Google Kubernetes Engine (GKE)
GKE attribue automatiquement le rôle IAM Rédacteur de journaux (roles/logging.logWriter
) au compte de service par défaut.
Si vous utilisez Workload Identity avec ce compte de service par défaut pour permettre aux charges de travail d'accéder à des API Google Cloud spécifiques, aucune configuration supplémentaire n'est requise.
Toutefois, si vous utilisez Workload Identity avec un compte de service IAM personnalisé, assurez-vous que le compte de service personnalisé 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 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.
Cloud Functions
Par défaut, Cloud Functions attribue le rôle Rédacteur de journaux.
Il est possible d'utiliser les bibliothèques Cloud Logging pour Node.js sans avoir à fournir explicitement des identifiants.
Cloud Functions est configuré pour utiliser Cloud Logging automatiquement.
Exécuter en local et depuis un autre emplacement
Pour utiliser les bibliothèques Cloud Logging pour Node.js en dehors de Google Cloud, y compris en les 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 fournir l'ID de votre projet Google Cloud ainsi que les identifiants du compte de service appropriés directement dans les bibliothèques Cloud Logging pour Node.js.
Pour les comptes de service existants, procédez comme suit:
Accordez au compte de service le rôle IAM Rédacteur de journaux (
roles/logging.logWriter
). Pour en savoir plus sur les rôles IAM, consultez la page Contrôle des accès.
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 l'authentification, consultez la page Terminologie: comptes de service.
Utilisez Winston:Utilisez Bunyan:
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 en savoir plus sur les anciennes solutions d'observabilité Google Cloud et les solutions Kubernetes Monitoring pour l'observabilité Google Cloud, ainsi que sur la manière dont ces options affectent le type de ressource, consultez la page 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.
- 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é.
- Effacez le contenu qui apparaît dans le champ de filtre.
- 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.