使用规则链收集多个write_http插件

时间:2017-11-21 03:53:35

标签: linux plugins collectd flow-control

我正在尝试设置一个collectd配置,将指标发送到两个单独的http服务器端点。

我的设置有Client(C),上面运行了collectd插件。在它收集的所有指标中,所有指标都需要发送到服务器(A);并且还需要将一部分指标发送到服务器(B)。

设定:

我对write_http插件使用以下配置:

<Plugin write_http>
    <Node "serverA">
            URL "http://servera/collectd-post"
            Format "JSON"
            StoreRates false
    </Node>
    <Node "serverB">
            URL "http://serverb/collectd-post"
            Format "JSON"
            StoreRates false
    </Node>
</Plugin>

此外,为了有选择地发送指标,我尝试使用以下流控制配置:

  PostCacheChain "bchain"
  <Chain "bchain">
    <Rule "brule">
      <Match "regex">
        Plugin "(load|interface|disk|cpu|memory|df|swap|processes)"
      </Match>
      <Target "write">
        Plugin "write_http/serverB"
      </Target>
      <Target "return">
      </Target>
    </Rule>
     <Target "return">
     </Target>
   </Chain>

根据我对流控制规则的理解,上面的配置应该将插件(加载,接口,磁盘,cpu,内存,df,交换和进程)的指标发送到write_http插件的serverb节点(作为“布鲁尔“规则”。这些匹配的指标也应该可以发送到http插件中的其他节点(因为“brule”规则中的目标“返回”)。

所有其他指标应由http插件中的其他节点处理和发送(因为“brule”规则之外的目标“返回”)。

我面临的问题是我无法按照我希望的方式运行功能。

什么工作:

  • 如果我删除了PostCacheChain配置,则所有指标都复制到BOTH服务器A和服务器B.
  • 如果保留PostCacheChain配置,则仅将选定的指标发送到服务器B.
  • 如果使用其他写入插件,则在使用PostCacheChain配置时,发送到该插件的所有指标和仅发送到服务器B的SELECTED指标

什么不起作用:

  • 使用列出的PostCacheChain时,没有指标发送到服务器A

任何有关分割目的地工作的解决方案或建议都将不胜感激。

PS: write_http插件和collectd流控制的文档似乎都表明我的方法是正确的。但是,对我来说,看起来像write_http插件只处理一次(即使它有多个节点),并且一旦在规则中引用了写插件,它就不会在规则之外处理。

0 个答案:

没有答案