Graylog: Enviar logs de Node.js a Graylog con el paquete graylog2 (recomendado)

Esta documentación forma parte de la guía Uso con Node.js. Consulte la guía completa aquí: Cómo enviar logs desde Node.js a Graylog.

👋 ¡Bienvenido a la documentación de Stackhero!

Stackhero ofrece una solución Graylog cloud lista para usar que proporciona una serie de beneficios, incluyendo:

  • Servidor de correo electrónico SMTP ilimitado y dedicado incluido.
  • Actualizaciones sin esfuerzo con solo un clic.
  • Nombre de dominio personalizable asegurado con HTTPS (por ejemplo, https://logs.tu-empresa.com).
  • Rendimiento óptimo y seguridad robusta gracias a una VM privada y dedicada.

Ahorra tiempo y simplifica tu vida: ¡solo toma 5 minutos probar la solución de Graylog cloud hosting de Stackhero!

Enviar logs desde Node.js a Graylog es un proceso bastante sencillo. En este ejemplo, verá cómo utilizar el paquete graylog2 para que este procedimiento sea fluido.

Para comenzar, puede instalar el paquete ejecutando el siguiente comando:

npm install graylog2

Así es como puede utilizarlo para registrar mensajes:

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

const logger = new graylog2.graylog({
  servers: [{ host: '<XXXXXX>.stackhero-network.com', port: 12201 }] // Asegúrese de reemplazar "host" por su dominio de Graylog
});

// Enviar un mensaje simple a Graylog
logger.log('Simple message example');

// Adjuntar datos a un mensaje
logger.log(
  'Password recovery email', // Mensaje
  // Un objeto JSON con detalles adicionales
  {
    subject: 'Password recovery',
    language: 'en_US',
    domain: 'gmail.com'
  }
);

// Ejemplo avanzado
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', // Mensaje
  // Un objeto JSON con más detalles
  {
    route: '/v1/messages/1234/',
    method: 'POST',

    responseTime: 12, // ms
    responseCode: 200,

    ipHash,
    userIdHash
  }
);

// Registrar excepciones no capturadas en Node.js
process.on(
  'uncaughtException',
  err => {
    logger.log(
      err,
      { type: 'uncaughtException' }
    );
  }
);

Para más ejemplos, puede visitar este repositorio de GitHub.

warning No olvide configurar su entrada de Graylog (más detalles a continuación).