logstash-tcp-winston-transport

1.1.1 • Public • Published

Logstash TCP Wins

Inspired by the winston-logstash module but as that isn't actively maintained and doesn't support 3.0.0 of Winston, I decided to create my own

A Transport for Winston that allows for the sending of data to the Logstash TCP input plugin

Install

npm i logstash-tcp-wins

Initialise the log transport like so:

const logger = createLogger({
    format: combine (
        label({ label: 'right meow!' }),
        timestamp(),
        prettyPrint(),
        json()
    ),
    transports: [
        new logstashTcpWins({
            level: "debug",
            port: 5000,
            json: true,
            host: "localhost",
            retryInterval: 2000,
            maxRetries: 1000,
            label: "test",
        })
    ],
    exitOnError: false
})

Set up your logstash pipeline like this:

input {
    tcp {
        codec => json
        port => 5000
    }
}


output {
    stdout { codec => rubydebug } 
    elasticsearch {
        hosts => "elasticsearch:9200"
    }
}

See the app.js file in Github for requires.

Still to-do

At the moment, the recovery from a Logstash outage relies on 60s passing after the socket has reported it's connected which is pretty poor. Working on finding a way to be able to determine and rely on the socket being properly writeable to Logstash without resorting to time period. If you've got a way, please do create a PR.

Readme

Keywords

Package Sidebar

Install

npm i logstash-tcp-winston-transport

Weekly Downloads

1

Version

1.1.1

License

ISC

Unpacked Size

17.3 kB

Total Files

9

Last publish

Collaborators

  • oparaskos