6

我想从 Logstash 获得 Influx DB 的输出,有没有这样的插件可用?

输出设置为石墨。这是流入配置:

[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

这是logstash配置:

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

我在控制台(stdout)中看到了输出,但没有其他消息,也没有任何内容被发布到涌入中。我也检查了流入日志,没有。

我尝试通过http直接将相同的消息发布到influx并且它可以工作,因此消息或influx安装没有问题。

4

5 回答 5

7

解决了。我需要通过 logstash 将已经准备好的 influx 兼容字符串传递给 influx。

以下是成功的 logstash 配置片段:

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 {}
}

注意:如果您使用“json”格式,则logstash 会将正文包裹在导致问题的“消息”字段周围。

于 2014-09-25T13:33:54.450 回答
1

它可以通过 logstash-contrib 作为输出获得:https ://github.com/elasticsearch/logstash-contrib/blob/master/lib/logstash/outputs/influxdb.rb

于 2014-09-21T23:07:02.707 回答
1

在 logstash-contrib 中有一个influxdb 输出,但是,这是在 1.4.2 发布后添加的。

在 logstash 1.5 中,有一个新的插件管理系统。如果您使用的是 1.5,则可以使用以下命令安装 influxdb 输出:

# assuming you're in the logstash directory
$ ./bin/plugin install logstash-output-influxdb
于 2015-03-08T11:04:57.210 回答
0

也许这有帮助:

http://influxdb.com/docs/v0.8/api/reading_and_writing_data.html

查看部分:通过石墨协议写入数据也许您可以使用logstash的石墨输出。

我想这个周末我要试试。

于 2014-09-20T14:56:35.763 回答
0

接受的答案虽然有效,但不是很灵活,因为:

  • 它需要实际的 JSON 有效负载%{message}或您最终使用的任何 logstash 变量
  • 它不会在可能的情况下批量提交数据点(当然,除非你在 JSON 有效负载中拥有它......在这种情况下......为什么你甚至首先使用 logstash?)

正如 Paul 和 Wilfred 所指出的, Jordan Sissel 自己编写了对 influxdb支持,但它是在 1.4.2 之后发布的……好消息是它可以与 1.4.2 一起使用(我自己尝试过)……您需要做的就是将influxdb.rb文件复制到/lib/logstash/outputs并相应地配置您的logstash。至于文档,您可以在此处找到它...确实花了我更多的精力才能找到它,因为谷歌搜索“influxdb logstash”并没有在首页结果中有此链接。

于 2015-04-26T14:36:22.390 回答