2015-02-10 86 views
0

我正在使用logstash从服务器收集sar指标并将其存储在influxdb中。 应将来自不同来源(CPU,内存,网络)的指标插入influxdb中的不同系列。当然,这些系列中的字段数量和名称取决于度量来源的类型。有条件创建字段取决于logstash influxdb输出中的过滤结果

这是我的配置文件:https://github.com/evgygor/test/blob/master/logstash.conf

对于每个[类型]指标的我应该配置单独influxdb输出。在这个例子中,我配置了两种类型的度量,但我打算将它用于SAR度量,JMX度量,Jmeter度量中的csv,这意味着 - 我需要为每个度量(数十)配置适当的输出。

问题:

我如何能详细点所需的配置? 我有任何选择使用插件内的条件。例如:

if [type]=="system.cpu" { 

      data_points => { 
         "time" => "%{time}" 
         "user" => "%{user}" 
      } 
    } 
else { 
      data_points => { 
         "time" => "%{time}" 
         "kbtotalmemory" => "%{kbtotalmemory}" 
         "kbmemfree" => "%{kbmemfree}" 
         "kbmemused" => "%{kbmemused}" 
      } 
} 

是否有任何标志可以定义influxdb插件默认使用的字段名称/数据类型从输入? 是否有任何标志/定义默认数据类型的能力? 有没有能力设置字段名称“时间”保留数据类型整数? 非常感谢。

回答

1

我煮了一些不错的解决方案。 这个分支允许随时创建字段,包含到达该输出插件的字段名称和数据类型。

我加2个配置paramters:

此设置撤销使用data_points和coerce_values配置#创建适当的插入到influxedb需求。应该与fields_to_skip配置一起使用#此设置将数据点(列)名称设置为来自插件事件的字段名称,#value for data points config:use_event_fields_for_data_points,:validate =>:boolean,:default => true

带有从未来处理中删除的键的数组。 #通过到达输出插件的默认事件包含关键字“@version”,“@timestamp”#并且可以包含其他字段,例如,由输入插件EXEC添加的“command”。 #当然,当配置#use_event_fields_for_data_points为true时,我们不需要处理这些字段并将其插入influxdb。 #我们不会从事件中删除密钥,我们会从事件中创建新的哈希,然后删除不需要的#键。

配置:fields_to_skip,:验证=>:阵列,:默认=> []

这是我的示例的配置文件:我检索不同数量与来自CPU,内存,磁盘不同的充名称字段,但是我不需要每个数据类型的不同配置,就像master分支一样。我在过滤器阶段创建相关的字段名称和数据类型,并跳过outputv插件中不需要的字段。

https://github.com/evgygor/logstash-output-influxdb

相关问题