Graylog: Winston GELFパッケージを使ってNode.jsログをGraylogへ送信する
このドキュメントはNode.jsでの利用方法ガイドの一部です。完全なガイドはこちらからご覧いただけます:Node.jsからGraylogへログを送信する方法。
👋 Stackhero ドキュメントへようこそ
Stackhero は、スピードとシンプルさを追求したフルマネージドの Graylog cloud ソリューションを提供しています。主な特長は以下の通りです:
- サービスに含まれる、無制限かつ専用の SMTP メールサーバーをご利用いただけます。
- アップデートはワンクリックで簡単に適用でき、手動での作業は不要です。
- HTTPS で保護された カスタムドメイン名(例:https://logs.your-company.com)を利用でき、チームに安全かつ直接的なアクセスを提供します。
- プライベートかつ専用インフラストラクチャ上で、高いパフォーマンスとセキュリティを実現。他のユーザーとのリソース共有やノイズの心配はありません。
ツールではなくデータに集中できます:Stackhero の Graylog cloud hosting ソリューションは、数分でご利用を開始いただけます。
warning プロジェクトにすでにWinstonが含まれていない限り、
graylog2パッケージの利用を推奨します。Winstonを利用している場合は、winston-gelfに置き換えてください。
Winston GELFパッケージをインストールするには、以下を実行します。
npm install winston-gelf
Winstonがまだプロジェクトに含まれていない場合は、以下で追加できます。
npm install winston
基本的なセットアップ例は以下の通りです。
const winston = require('winston');
const winstonGelf = require('winston-gelf');
const process = require('process');
const logger = winston.createLogger({
transports: [
new winston.transports.Console(),
new winstonGelf({
// gelfProの全オプションはこちらを参照: https://www.npmjs.com/package/gelf-pro
gelfPro: {
fields: {
env: process.env.NODE_ENV || 'development'
},
adapterName: 'udp',
adapterOptions: {
host: '<XXXXXX>.stackhero-network.com', // ご自身のGraylogドメインに置き換えてください
port: 12201,
}
}
})
]
});
// 情報ログの例
logger.info('This is a log information');
// エラーログの例
try {
throw Error('This is an example error');
}
catch(error) {
logger.warn({ message: 'Error triggered', error });
}
Graylogのインプット設定を忘れずに行ってください(詳細は下記参照)。