Graylog: Wysyłanie logów z Node.js do Graylog za pomocą pakietu graylog2 (zalecane)

Ta dokumentacja jest częścią przewodnika Używanie z Node.js. Pełny przewodnik znajdziesz tutaj: Jak wysyłać logi z Node.js do Graylog.

👋 Witamy w dokumentacji Stackhero

Stackhero oferuje w pełni zarządzane rozwiązanie Graylog cloud, zaprojektowane z myślą o szybkości i prostocie. Możesz:

  • Korzystać z nielimitowanego, dedykowanego serwera SMTP email, który jest wliczony w usługę.
  • Wdrażać aktualizacje bez wysiłku, jednym kliknięciem, bez konieczności ręcznej ingerencji.
  • Używać własnej nazwy domeny zabezpieczonej przez HTTPS (na przykład https://logs.twoja-firma.com), zapewniając swojemu zespołowi bezpieczny, bezpośredni dostęp.
  • Doświadczać wysokiej wydajności i bezpieczeństwa na prywatnej, dedykowanej infrastrukturze – bez współdzielonych zasobów i zakłócających sąsiadów.

Skup się na swoich danych, nie na narzędziach: rozpoczęcie pracy z Graylog cloud hosting od Stackhero zajmuje tylko kilka minut.

Wysyłanie logów z Node.js do Graylog jest bardzo proste. W tym przykładzie zobaczysz, jak użyć pakietu graylog2, aby cały proces był bezproblemowy.

Aby rozpocząć, zainstaluj pakiet, uruchamiając następujące polecenie:

npm install graylog2

Oto jak możesz go użyć do rejestrowania wiadomości:

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

const logger = new graylog2.graylog({
  servers: [{ host: '<XXXXXX>.stackhero-network.com', port: 12201 }] // Pamiętaj, aby zastąpić "host" swoją domeną Graylog
});

// Wyślij prostą wiadomość do Graylog
logger.log('Simple message example');

// Dołącz dane do wiadomości
logger.log(
  'Password recovery email', // Wiadomość
  // Obiekt JSON z dodatkowymi szczegółami
  {
    subject: 'Password recovery',
    language: 'en_US',
    domain: 'gmail.com'
  }
);

// Zaawansowany przykład
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', // Wiadomość
  // Obiekt JSON z większą ilością szczegółów
  {
    route: '/v1/messages/1234/',
    method: 'POST',

    responseTime: 12, // ms
    responseCode: 200,

    ipHash,
    userIdHash
  }
);

// Logowanie nieobsłużonych wyjątków w Node.js
process.on(
  'uncaughtException',
  err => {
    logger.log(
      err,
      { type: 'uncaughtException' }
    );
  }
);

Więcej przykładów znajdziesz w tym repozytorium GitHub.

warning Nie zapomnij skonfigurować inputu Graylog (szczegóły poniżej).