Graylog: Envoyer les logs Node.js vers Graylog avec le package graylog2 (recommandé)

Cette documentation fait partie du guide Utilisation avec Node.js. Consultez le guide complet ici : Comment envoyer des logs de Node.js vers Graylog.

👋 Bienvenue sur la documentation Stackhero

Stackhero propose une solution Graylog cloud entièrement managée, pensée pour la rapidité et la simplicité. Vous pouvez :

  • Compter sur un serveur SMTP d'e-mail dédié et illimité inclus avec votre service.
  • Appliquer les mises à jour en toute simplicité, en un clic, sans intervention manuelle.
  • Utiliser un nom de domaine personnalisé sécurisé par HTTPS (par exemple, https://logs.votre-entreprise.com), pour offrir à votre équipe un accès direct et sécurisé.
  • Bénéficier d'une performance et d'une sécurité optimales sur une infrastructure privée et dédiée, sans ressources partagées ni voisins bruyants.

Concentrez-vous sur vos données, pas sur vos outils : il suffit de quelques minutes pour démarrer avec la solution Graylog cloud hosting de Stackhero.

Envoyer des logs de Node.js vers Graylog est très simple. Dans cet exemple, vous allez voir comment utiliser le package graylog2 pour rendre ce processus fluide.

Pour commencer, installez le package en exécutant la commande suivante :

npm install graylog2

Voici comment l'utiliser pour enregistrer des messages :

const graylog2 = require('graylog2');
const crypto = require('crypto');

const logger = new graylog2.graylog({
  servers: [{ host: '<XXXXXX>.stackhero-network.com', port: 12201 }] // Pensez à remplacer "host" par votre domaine Graylog
});

// Envoyer un message simple à Graylog
logger.log('Simple message example');

// Ajouter des données à un message
logger.log(
  'Password recovery email', // Message
  // Un objet JSON avec des détails supplémentaires
  {
    subject: 'Password recovery',
    language: 'en_US',
    domain: 'gmail.com'
  }
);

// Exemple avancé
const ip = '1.2.3.4';
const ipHash = crypto.createHash('md5').update(ip).digest('hex');

const userId = '1234';
const userIdHash = crypto.createHash('md5').update(userId).digest('hex');

logger.log(
  'API request', // Message
  // Un objet JSON avec plus de détails
  {
    route: '/v1/messages/1234/',
    method: 'POST',

    responseTime: 12, // ms
    responseCode: 200,

    ipHash,
    userIdHash
  }
);

// Logger les exceptions non interceptées dans Node.js
process.on(
  'uncaughtException',
  err => {
    logger.log(
      err,
      { type: 'uncaughtException' }
    );
  }
);

Pour plus d'exemples, vous pouvez consulter ce dépôt GitHub.

warning N'oubliez pas de configurer votre input Graylog (voir détails ci-dessous).