Collectd write_graphite 插件-多个/不同的前缀?

Collectd write_graphite 插件-多个/不同的前缀?

我正在使用带有 snmp 和 write_graphite 插件的 collectd。我希望某些指标以前缀 A 发送到 Graphite,其他指标以前缀 B 发送到 Graphite,以使 Graphite/Whisper 中的数据井然有序。

例如,我想像这样划分事物:

网络.交换机.xxxx 电源.pdu.xxxxxx

我的 write_graphite 配置如下所示:

<Plugin write_graphite>
  <Node "mygraphitehost">
    Host "mygraphitehost"
    Port "2003"
    Protocol "tcp"
    LogSendErrors true
    Prefix "network."
    Postfix "-collectd"
  </Node>
</Plugin>

这导致我使用 snmp 插件收集的所有内容都显示在 Graphite Web 界面的“网络”文件夹下。运行具有不同配置/初始化脚本的多个 collectd 是解决此问题的唯一方法吗?

答案1

看起来 collectD Hashed Match 可能就是您正在寻找的:

https://collectd.org/wiki/index.php/Match:Hashed/Config

您显然没有多个石墨服务器,但看起来您可以使用模式匹配将指标发送到不同的服务器,在您的情况下,这些服务器具有相同的“主机”值,但前缀值可能不同。

答案2

使用“高级模式“在您准确指定路径的地方,将设置EscapeCharacter"."

<Plugin write_graphite>
  EscapeCharacter "."
</Plugin>

警告:当您执行此操作时,您实际上是在为该主机上的所有内容编写新密钥。

为了确保主机的密钥保持不变,请在/etc/collectd.conf

Hostname    "thishost_mydomain_net"

然后,您可以编辑您的所有主机/etc/collectd.d/snmp.conf(或存储它们的任何位置),以将它们放置在树中的您想要的位置。

<Host "network.switches.core-router">
  Address "10.1.1.1"
  Version 2
  Community "public"
  Collect "snmp_dataset1"
</Host>
<Host "network.switches.accounting">
  Address "10.1.1.2"
  Version 2
  Community "public"
  Collect "snmp_dataset2"
</Host>

相关内容