Graylog: 使用 graylog2 包将 Node.js 日志发送到 Graylog(推荐)

本文档属于在 Node.js 中使用指南的一部分。您可以在此处查看完整指南:如何将 Node.js 日志发送到 Graylog

👋 欢迎查阅 Stackhero 文档

Stackhero 提供全托管的 Graylog cloud 解决方案,专为高效与简便而设计。您可以:

  • 依赖于服务内置的无限制、专用 SMTP 邮件服务器
  • 只需一键即可轻松完成更新,无需手动操作。
  • 使用由HTTPS保护的自定义域名(例如 https://logs.your-company.com),为您的团队提供安全、直接的访问。
  • 专属私有基础设施上体验卓越的性能安全性,无共享资源,无干扰邻居。

专注于您的数据,而非工具本身:只需几分钟,即可开始使用 Stackhero 的 Graylog cloud hosting 解决方案。

从 Node.js 向 Graylog 发送日志非常简单。以下示例将演示如何使用 graylog2 包实现无缝日志传输。

首先,您可以通过以下命令安装该包:

npm install graylog2

以下是如何使用它记录日志消息的方法:

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

const logger = new graylog2.graylog({
  servers: [{ host: '<XXXXXX>.stackhero-network.com', port: 12201 }] // 请确保将 "host" 替换为您的 Graylog 域名
});

// 向 Graylog 发送一条简单消息
logger.log('Simple message example');

// 向消息附加数据
logger.log(
  'Password recovery email', // 消息内容
  // 包含更多细节的 JSON 对象
  {
    subject: 'Password recovery',
    language: 'en_US',
    domain: 'gmail.com'
  }
);

// 高级示例
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', // 消息内容
  // 包含更多细节的 JSON 对象
  {
    route: '/v1/messages/1234/',
    method: 'POST',

    responseTime: 12, // ms
    responseCode: 200,

    ipHash,
    userIdHash
  }
);

// 记录 Node.js 中未捕获的异常
process.on(
  'uncaughtException',
  err => {
    logger.log(
      err,
      { type: 'uncaughtException' }
    );
  }
);

如需更多示例,您可以访问 此 GitHub 仓库

warning 请勿忘记配置您的 Graylog 输入(详见下文)。