Graylog: Inviare i log di Node.js a Graylog con il pacchetto graylog2 (consigliato)

Questa documentazione fa parte della guida Utilizzo con Node.js. Consulta la guida completa qui: Come inviare i log da Node.js a Graylog.

👋 Benvenuto nella documentazione di Stackhero

Stackhero offre una soluzione Graylog cloud completamente gestita, progettata per garantire velocità e semplicità. Puoi:

  • Affidarti a un server SMTP email dedicato e illimitato incluso nel tuo servizio.
  • Applicare facilmente gli aggiornamenti con un solo clic, senza necessità di interventi manuali.
  • Utilizzare un nome di dominio personalizzato protetto da HTTPS (ad esempio, https://logs.tua-azienda.com), offrendo al tuo team un accesso diretto e sicuro.
  • Sfruttare elevate prestazioni e sicurezza su un'infrastruttura privata e dedicata, senza risorse condivise o "noisy neighbors".

Concentrati sui tuoi dati, non sugli strumenti: puoi iniziare a utilizzare la soluzione Graylog cloud hosting di Stackhero in pochi minuti.

Inviare i log da Node.js a Graylog è molto semplice. In questo esempio, vedrete come utilizzare il pacchetto graylog2 per rendere questo processo immediato.

Per iniziare, è possibile installare il pacchetto eseguendo il seguente comando:

npm install graylog2

Ecco come potete utilizzarlo per registrare i messaggi:

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

const logger = new graylog2.graylog({
  servers: [{ host: '<XXXXXX>.stackhero-network.com', port: 12201 }] // Assicuratevi di sostituire "host" con il vostro dominio Graylog
});

// Invia un messaggio semplice a Graylog
logger.log('Simple message example');

// Associa dati aggiuntivi a un messaggio
logger.log(
  'Password recovery email', // Messaggio
  // Un oggetto JSON con dettagli aggiuntivi
  {
    subject: 'Password recovery',
    language: 'en_US',
    domain: 'gmail.com'
  }
);

// Esempio avanzato
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', // Messaggio
  // Un oggetto JSON con ulteriori dettagli
  {
    route: '/v1/messages/1234/',
    method: 'POST',

    responseTime: 12, // ms
    responseCode: 200,

    ipHash,
    userIdHash
  }
);

// Log delle eccezioni non gestite in Node.js
process.on(
  'uncaughtException',
  err => {
    logger.log(
      err,
      { type: 'uncaughtException' }
    );
  }
);

Per ulteriori esempi, potete consultare questo repository GitHub.

warning Non dimenticate di configurare il vostro input Graylog (vedi dettagli sotto).