2017-02-23 148 views
0

我正在使用logstash-output-influxdb插件将事件从logstash发送到influx数据库。插件的数据点的配置看起来像logstash influxdb输出插件 - 如何发送整数

data_points => { 
      "visitor" => 1 
      "lead" => 0 
      "category" => "%{[category]}" 
      "host" => "%{[host]}" 
} 

但这里的问题是游客和influxdb铅字段是整数,并使用上述配置导致以下错误

输入字段\\“访客\\”测量\\“visitors_new \\”是类型float,已经存在整型。

influxdb的

线路协议说,你必须追加我用数字来表明它是一个整数,所以如果我改变配置

data_points => { 
      "visitor" => "1i" 
      "lead" => "0i" 
      "category" => "%{[category]}" 
      "host" => "%{[host]}" 
} 

现在错误变成

输入字段\\“访问者\\”在测量\\“visitors_new \\”是类型字符串,已经存在为类型整数

如果我将配置更改为

data_points => { 
      "visitor" => 1i 
      "lead" => 0i 
      "category" => "%{[category]}" 
      "host" => "%{[host]}" 
} 

现在logstash不接受它作为有效配置。

如何使用logstash-output-influxdb插件将整数字段发送到influxdb?

回答

1

我建议使用the coerce => { } parameter来实现您的数据输入,而不是在数字中提供线路协议详细信息。

data_points => { 
     "visitor" => 1 
     "lead" => 0 
     "category" => "%{[category]}" 
     "host" => "%{[host]}" 
} 
coerce_values => { 
     "visitor" => "integer" 
     "lead" => "integer" 
} 

这告诉插件这些字段是整数,这将有可能获得更大的成功。

+0

谢谢@ sysadmin1138,这个解决了这个目的。 – srikant