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 repository。
warning 請不要忘記設定您的 Graylog input(詳情見下方)。