Configurer Cloud Logging pour Node.js

Vous pouvez écrire des journaux dans Logging à partir d'applications Node.js à l'aide des plug-ins Bunyan ou Winston, ou encore en utilisant directement la bibliothèque cliente Cloud de l'API Cloud Logging pour Node.js.

Vous n'avez pas besoin d'installer l'agent Logging pour utiliser les bibliothèques Bunyan et Winston sur une instance de VM Compute Engine.

Avant de commencer

    True logging.googleapis.com Cloud Logging API
  1. Connectez-vous à votre compte Google.

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

  2. Dans la page de sélection du projet de la console GCP, sélectionnez ou créez un projet GCP.

    Accéder à la page de sélection du projet

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

  4. Préparez votre environnement au développement de Node.js.

    Accéder au guide de configuration Node.js

Utiliser Bunyan

Cloud Logging fournit un plug-in pour la bibliothèque de journalisation Node.js Bunyan. Ce plug-in propose une couche simple de niveau supérieur permettant de travailler avec Logging.

Installer le plug-in

  1. Le moyen le plus simple d'installer le plug-in Bunyan de Logging est d'utiliser npm :

    npm install --save bunyan @google-cloud/logging-bunyan
  2. Importez le plug-in et ajoutez-le à votre configuration Bunyan :

    const bunyan = require('bunyan');
    
        // Imports the Google Cloud client library for Bunyan
        const {LoggingBunyan} = require('@google-cloud/logging-bunyan');
    
        // Creates a Bunyan Stackdriver Logging client
        const loggingBunyan = new LoggingBunyan();
    
        // Create a Bunyan logger that streams to Stackdriver Logging
        // Logs will be written to: "projects/YOUR_PROJECT_ID/logs/bunyan_log"
        const logger = bunyan.createLogger({
          // The JSON payload of the log as it appears in Stackdriver Logging
          // will contain "name": "my-service"
          name: 'my-service',
          streams: [
            // Log to the console at 'info' and above
            {stream: process.stdout, level: 'info'},
            // And log to Stackdriver Logging, logging at 'info' and above
            loggingBunyan.stream('info'),
          ],
        });
    
        // Writes some log entries
        logger.error('warp nacelles offline');
        logger.info('shields at 99%');

Configurer le 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 Winston

Cloud Logging fournit un plug-in pour la bibliothèque de journalisation Node.js Winston. Ce plug-in propose une couche simple de niveau supérieur permettant de travailler avec Logging.

Installer le plug-in

  1. Le moyen le plus simple d'installer le plug-in Winston de Logging est d'utiliser npm :

    npm install --save @google-cloud/logging-winston
  2. Importez le plug-in et ajoutez-le à votre configuration Winston :

    const winston = require('winston');
    
        // Imports the Google Cloud client library for Winston
        const {LoggingWinston} = require('@google-cloud/logging-winston');
    
        const loggingWinston = new LoggingWinston();
    
        // Create a Winston logger that streams to Stackdriver Logging
        // Logs will be written to: "projects/YOUR_PROJECT_ID/logs/winston_log"
        const logger = winston.createLogger({
          level: 'info',
          transports: [
            new winston.transports.Console(),
            // Add Stackdriver Logging
            loggingWinston,
          ],
        });
    
        // Writes some log entries
        logger.error('warp nacelles offline');
        logger.info('shields at 99%');

Configurer le 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.

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.

Utiliser directement la bibliothèque cliente cloud

Pour savoir comment utiliser directement la bibliothèque cliente Cloud Cloud Logging pour Node.js, consultez la page Bibliothèques clientes Cloud Logging.

Exécuter des applications sur Google Cloud

Le rôle Rédacteur de journaux de Cloud IAM sur Google Cloud est nécessaire pour utiliser les bibliothèques Cloud Logging pour Node.js. La plupart des environnements Google Cloud fournissent ce rôle par défaut.

App Engine

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

Les bibliothèques Cloud Logging pour Node.js peuvent être utilisées sans avoir à fournir explicitement des identifiants.

Cloud Logging est automatiquement activé pour 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 utilisez des instances de VM Compute Engine, ajoutez le niveau d'accès cloud-platform à chaque instance. Lorsque vous créez une instance via Google Cloud Console, 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 Cloud Console.

Cloud Functions

Par défaut, Cloud Functions attribue le rôle Rédacteur de journaux.

Les bibliothèques Cloud Logging pour Node.js peuvent être utilisées 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 saisir l'ID de projet Google Cloud ainsi que les identifiants du compte de service approprié directement dans les bibliothèques Cloud Logging pour Node.js.

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 dans Cloud Identity and Access Management, consultez le Guide du contrôle des accès.

Avec Bunyan :

// Imports the Google Cloud client library for Bunyan
    const {LoggingBunyan} = require('@google-cloud/logging-bunyan');

    // Creates a client
    const loggingBunyan = new LoggingBunyan({
      projectId: 'your-project-id',
      keyFilename: '/path/to/key.json',
    });

Avec Winston :

// Imports the Google Cloud client library for Winston
    const {LoggingWinston} = require('@google-cloud/logging-winston');

    // Creates a client
    const loggingWinston = new LoggingWinston({
      projectId: 'your-project-id',
      keyFilename: '/path/to/key.json',
    });

Afficher les journaux

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

Accéder à la visionneuse de journaux

Dans la visionneuse 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 l'ancienne suite d'opérations Google Cloud et sur les solutions Kubernetes Monitoring de la suite d'opérations Google Cloud, ainsi que sur l'incidence de ces options sur le type de ressource, consultez la page Migrer vers les solutions Kubernetes Monitoring de la suite d'opérations Google Cloud.

  • 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 la visionneuse 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 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 sections Afficher les journaux et Requêtes de journaux avancées.