Graylog: Node.js-Logs mit dem Winston GELF-Paket an Graylog senden

Diese Dokumentation ist Teil des Verwendung mit Node.js-Leitfadens. Den vollständigen Leitfaden finden Sie hier: Wie Sie Logs von Node.js an Graylog senden.

👋 Willkommen in der Stackhero-Dokumentation

Stackhero bietet eine vollständig verwaltete Graylog Cloud-Lösung, die auf Geschwindigkeit und Einfachheit ausgelegt ist. Sie können:

  • Auf einen unbegrenzten, dedizierten SMTP-E-Mail-Server vertrauen, der in Ihrem Service enthalten ist.
  • Updates mühelos per Klick anwenden – ganz ohne manuellen Aufwand.
  • Einen individuellen Domainnamen nutzen, der durch HTTPS gesichert ist (zum Beispiel https://logs.your-company.com), sodass Ihr Team sicheren und direkten Zugriff erhält.
  • Von hoher Performance und Sicherheit auf einer privaten, dedizierten Infrastruktur profitieren – ohne geteilte Ressourcen oder störende Nachbarn.

Konzentrieren Sie sich auf Ihre Daten, nicht auf das Tooling: Mit Stackheros Graylog Cloud Hosting können Sie in nur wenigen Minuten starten.

warning Es wird empfohlen, das graylog2-Paket zu verwenden, es sei denn, Winston ist bereits Teil Ihres Projekts. In diesem Fall können Sie stattdessen winston-gelf einsetzen.

Um das Winston GELF-Paket zu installieren, führen Sie aus:

npm install winston-gelf

Falls Winston noch nicht in Ihrem Projekt ist, können Sie es mit folgendem Befehl hinzufügen:

npm install winston

Hier ein einfaches Setup:

const winston = require('winston');
const winstonGelf = require('winston-gelf');
const process = require('process');

const logger = winston.createLogger({
  transports: [
    new winston.transports.Console(),
    new winstonGelf({
      // Alle gelfPro-Optionen finden Sie hier: https://www.npmjs.com/package/gelf-pro
      gelfPro: {
        fields: {
          env: process.env.NODE_ENV || 'development'
        },
        adapterName: 'udp',
        adapterOptions: {
          host: '<XXXXXX>.stackhero-network.com', // Ersetzen Sie dies durch Ihre Graylog-Domain
          port: 12201,
        }
      }
    })
  ]
});

// Beispiel für einen Info-Log
logger.info('This is a log information');

// Beispiel für einen Fehler-Log
try {
  throw Error('This is an example error');
}
catch(error) {
  logger.warn({ message: 'Error triggered', error });
}

Vergessen Sie nicht, Ihren Graylog-Input zu konfigurieren (Details unten).