0

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

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

对于每个 [type] 的指标,我应该配置单独的 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 插件以默认使用输入中的字段名称/数据类型?是否有任何标志/能力来定义默认数据类型?是否可以设置数据类型整数保留的字段名称“时间”?非常感谢。

4

1 回答 1

1

我做了一些很好的解决方案。此分支允许根据到达该输出插件的字段名称和数据类型动态创建字段。

我添加了 2 个配置参数:

此设置取消了使用 data_points 和 coerce_values 配置 # 来创建适当的插入到 influxedb 的需要。应该与 fields_to_skip 配置一起使用 # 此设置将数据点(列)名称设置为从到达到插件事件的字段名称,# 数据点配置的值 :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, :validate => :array, :default => []

这是我的示例配置文件:我正在从 CPU、内存、磁盘检索不同数量的具有不同名称的字段,但我不需要像 master 分支中那样对每种数据类型进行不同的配置。我在过滤阶段创建相关的字段名称和数据类型,只是跳过了 outputv 插件中不需要的字段。

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

于 2015-02-23T11:06:38.560 回答