Graylog: Utiliser le package Winston GELF pour envoyer des logs Node.js vers Graylog
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 dans la documentation Stackhero
Stackhero offre une solution Graylog cloud entièrement gérée, conçue pour la rapidité et la simplicité. Vous pouvez :
- Compter sur un serveur SMTP d'email dédié et illimité inclus avec votre service.
- Appliquer les mises à jour facilement en un seul 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é.
- Profiter d'une performance et d'une sécurité accrues 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 : vous pouvez commencer avec la solution Graylog cloud hosting de Stackhero en seulement quelques minutes.
warning Il est préférable d'utiliser le package
graylog2sauf si Winston fait déjà partie de votre projet. Dans ce cas, vous pouvez le remplacer parwinston-gelf.
Pour installer le package Winston GELF, exécutez :
npm install winston-gelf
Si Winston n'est pas déjà dans votre projet, vous pouvez l'ajouter avec :
npm install winston
Voici une configuration de base :
const winston = require('winston');
const winstonGelf = require('winston-gelf');
const process = require('process');
const logger = winston.createLogger({
transports: [
new winston.transports.Console(),
new winstonGelf({
// Consultez toutes les options gelfPro ici : https://www.npmjs.com/package/gelf-pro
gelfPro: {
fields: {
env: process.env.NODE_ENV || 'development'
},
adapterName: 'udp',
adapterOptions: {
host: '<XXXXXX>.stackhero-network.com', // Remplacez par votre domaine Graylog
port: 12201,
}
}
})
]
});
// Exemple de log informatif
logger.info('This is a log information');
// Exemple de log d'erreur
try {
throw Error('This is an example error');
}
catch(error) {
logger.warn({ message: 'Error triggered', error });
}
N'oubliez pas de configurer votre input Graylog (voir détails ci-dessous).