Logstash - is an output to influx DB available?

Sumit Maingi picture Sumit Maingi · Sep 19, 2014 · Viewed 10.2k times · Source

I want to have an output for Influx DB from Logstash, is there any such plugin available?

The output is set to graphite.. This is the influx config:

[input_plugins]

# Configure the graphite api
[input_plugins.graphite]
enabled = true
port = 2003
database = "AirAnalytics"  # store graphite data in this database
# udp_enabled = true  # enable udp interface on the same port as the tcp interface

This is the logstash config:

output {
    stdout {}
    graphite {
            host => "localhost"
            port => 2003
    }
}

I see the output in the console (stdout) but no other message and nothing gets posted into influx. I checked the influx logs as well, nothing.

I tried posting the same message directly via http to influx and it works, so there's no issue with the message or influx install.

Answer

Sumit Maingi picture Sumit Maingi · Sep 25, 2014

Solved it. I needed to pass on the already prepared influx compatible string to influx via logstash.

Following is the logstash configuration snippet which did the trick:

output {
    http {
            url => "http://localhost:8086/db/<influx db name>/series?u=<user name>&p=<pwd>"
            format => "message"
            content_type => "application/json"
            http_method => "post"
            message => "%{message}"
            verify_ssl => false
    }
    stdout {}
}

Note: If you use the format "json" then logstash wraps the body around a "message" field which was causing a problem.