2

nodejs アプリケーションでnode-bunyanbunyan-logstash-tcpを使用して、logstash (1.4.2) と elasticsearch (1.4.2) にログを送信しています。

logstash サーバーが切断されるか到達できない場合は常に、nodejs アプリケーションがクラッシュし、次のエラーが発生します。

ERROR
-------
events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: connect ECONNREFUSED
    at errnoException (net.js:904:11)
    at Object.afterConnect [as oncomplete] (net.js:895:19)

実際には bunyan-logstash-tcp がこのエラーを処理するはずです。このnodejsのクラッシュの問題を解決するのを手伝ってください。

4

2 に答える 2

4

私は問題を理解することができました。tcp bunyan ストリームの作成中にエラー イベントを処理する必要がある

stream: bunyantcp.createStream({
        host: '127.0.0.1',
        port: 9998
    }).on('error', console.log)

これはbunyan-logstash-tcp のドキュメントには記載されていませんが、サンプル コードには記載されていました。

更新: サンプル構成

this.log = bunyan.createLogger({
name: name,
streams: [
    {
      level: 'error', 
      type: 'raw',
      serializers: bunyan.stdSerializers,
      stream: bunyantcp.createStream({
          application: process.title,
          max_connect_retries: 10, // Don't give up on reconnecting
          retry_interval: 1000 * 60     // Wait 1s between reconnect attempts
      }).on('error', console.log)
    }
  ],
  level: 'debug'
});
于 2015-05-22T11:34:13.147 に答える