hapi-good-logstash

A good reporter to talk to a logstash server via lumberjack

Usage no npm install needed!

<script type="module">
  import hapiGoodLogstash from 'https://cdn.skypack.dev/hapi-good-logstash';
</script>

README

Logstash reporter for good

A good reporter to communicate directly with a logstash instance using the lumberjack-protocol client

Install

npm install --save hapi-good-logstash

Usage

Starting with version 6 good established a new interface for good reporters. If you are using good < 6, then please install v0.0.4 of the logstash reporter and install v1 and greater when using good 6.

Example for sending all ops events to logstash

connection.register({
    register: require('good'),
    options: {
      opsInterval: 15000,
        reporters: [{
          reporter: "hapi-good-logstash",
          args: [{
              ops: '*'
          }, {
              tlsOptions: {
                  host: "localhost",
                  port: 8001,
                  ca: [fs.readFileSync('path to .crt')],
                  key: [fs.readFileSync('path to .key')],
                  cert: [fs.readFileSync('path to .crt')]
              },
              clientOptions: {
                  maxQueueSize: 500
              }
          }]
      }]
    } 
}, function (err) {
    if (err) {
        console.log('Failed loading good plugin', err);
    }
});

The clientoptions are passed to the lumberjack-protocol module and the tlsOptions are passed to the node.js tls socket connection directly.

Security

We use a patched version of logstash and the lumberjack input, which only accepts ssl certificates configured in the logstash config, so the socket connection will be reset, if you provide a wrong certificate. This is unfortunately not the default behavior of the official Logstash release. The official logstash package accepts inputs even if provided a completley different certificate.

We published a blog post with a guide how to use our patched setup on our homepages tech section.