Logstash-是否有流入数据库的输出?

Logstash-是否有流入数据库的输出?,logstash,influxdb,Logstash,Influxdb,我想有一个从Logstash流入数据库的输出,有任何这样的插件可用吗 输出设置为石墨。。这是流入配置: [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

我想有一个从Logstash流入数据库的输出,有任何这样的插件可用吗

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

[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
这是日志存储配置:

output {
    stdout {}
    graphite {
            host => "localhost"
            port => 2003
    }
}
我在控制台(stdout)中看到了输出,但没有其他消息,也没有任何消息被发送到inflow中。我也检查了流入日志,什么都没有

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

可能有以下帮助:

请看一节:通过Graphite协议写入数据 也许你可以使用logstash的石墨输出


我想这个周末我会尝试一下。

它可以通过logstash contrib作为输出提供:

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

以下是完成此操作的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 {}
}
输出{
http{
url=>”http://localhost:8086/db//series?u=&p="
格式=>“消息”
内容类型=>“应用程序/json”
http_方法=>“post”
message=>“%{message}”
验证\u ssl=>false
}
stdout{}
}
注意:如果您使用“json”格式,则logstash会将正文包装在导致问题的“消息”字段周围。

但是,这是在1.4.2发布后添加的

Logstash1.5提供了一个新的插件管理系统。如果您使用的是1.5,则可以通过以下方式安装XDB输出:

# assuming you're in the logstash directory
$ ./bin/plugin install logstash-output-influxdb

公认的答案虽然有效,但不太灵活,因为:

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

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

听起来很有希望,好主意,我会尝试一下,然后发布我的发现。我已经开始为influxdb构建一个简单的logstash输出。差不多完成了。在Github上发布之前,我想再执行一些测试。本周它将完成并发布。看看GitHub上的代码。我看到了插件,虽然我有完整的influx字符串,这是正确的,但我只想通过logstash将其推送到influx。我现在正在尝试graphite方法,从logstash graphite输出插件中得到一个wierd错误,它说“无法将字符串转换为整数”。继续研究,我会在完成后更新答案。我看到了这一点,但似乎没有适当的文档。这是低效的;它对每条消息执行一个到influxdb的post,而不是在可能的情况下对它们进行批处理。当我们的应用程序生成GBs这样的数据时,我们有一个就绪字符串,然后应用程序基本上收集数据5秒钟,然后合并同一表的行,从而优化数据包大小并增加influx的写入吞吐量。结果字符串也被压缩(gzip,fast),通过我们的自定义过滤器通过logstash解压。你是对的,不灵活,logstash用于从原始格式提取数据以外的其他原因,我们有一个现成的字符串,因为我们的应用程序生成了GBs这样的数据,然后,应用程序基本上会收集5秒钟的数据,然后合并同一个表中的行,从而优化数据包大小,并增加inflox的写入吞吐量。生成的字符串也被压缩(gzip,fast),通过我们拥有的自定义过滤器通过logstash进行解压缩。InfluxDB输出插件的当前(2015年6月22日)版本与InfluxDB 0.90不兼容。