收集了 write_graphite 的多个实例
Collectd multiple instances of write_graphite
collectd
是否正确支持 write_graphite
插件的多个实例? Collectd 联机帮助页似乎在一个示例中暗示了这一点:https://collectd.org/documentation/manpages/collectd.conf.5.shtml#built_in_targets
我正在尝试配置 chains
具体 PostCacheChain
并通过 collectd 中的 write_graphite
插件的多个实例发送指标。原因是,不同的指标需要不同的前缀。
我无法让两个实例都将数据发送到 Graphite,只有一个有效。
使用 netstat
我可以看到从我的 collectd 主机到 graphite 主机建立了两个套接字。 运行 tcpdump
显示两个连接的 SYN-ACK,但只有一个实例发送数据。应该通过第二个实例发送的指标不会显示在 tcpdump 或 graphite 上。
write_graphite
的配置如下所示:
LoadPlugin "write_graphite"
<Plugin "write_graphite">
<Node "def_prefix">
Host "metrics.example.com"
Port "2003"
Prefix "collectd."
LogSendErrors true
Protocol "TCP"
StoreRates true
AlwaysAppendDS true
SeparateInstances true
</Node>
<Node "statsd_prefix">
Host "metrics.example.com"
Port "2003"
Prefix "statsd."
LogSendErrors true
Protocol "TCP"
StoreRates true
AlwaysAppendDS true
SeparateInstances true
</Node>
</Plugin>
对于PostCacheChain
:
LoadPlugin match_regex
PostCacheChain "PostCache"
<Chain "PostCache">
<Rule "statsd_prefix"> # metrics from statsd plugin use diff prefix
<Match "regex">
Plugin "^statsd$"
</Match>
<Target "write">
Plugin "write_graphite/statsd_prefix"
</Target>
<Target "return">
</Target>
</Rule>
<Target "write">
Plugin "write_graphite/def_prefix"
</Target>
</Chain>
感谢您的帮助。
我遇到的问题是设置问题。为了进行快捷测试,我在监听模式下使用 nc
运行 而不是实际的 Graphite 服务器。这导致,只有一个石墨插件实例可以完全连接和传输数据。
我的测试场景太糟糕了。
<Node "server1">
Host "graphite1.example.com"
Prefix "collectd."
StoreRates true
</Node>
<Node "server2">
Host "graphite2.example.com"
Prefix "collectd."
StoreRates true
</Node>
collectd
是否正确支持 write_graphite
插件的多个实例? Collectd 联机帮助页似乎在一个示例中暗示了这一点:https://collectd.org/documentation/manpages/collectd.conf.5.shtml#built_in_targets
我正在尝试配置 chains
具体 PostCacheChain
并通过 collectd 中的 write_graphite
插件的多个实例发送指标。原因是,不同的指标需要不同的前缀。
我无法让两个实例都将数据发送到 Graphite,只有一个有效。
使用 netstat
我可以看到从我的 collectd 主机到 graphite 主机建立了两个套接字。 运行 tcpdump
显示两个连接的 SYN-ACK,但只有一个实例发送数据。应该通过第二个实例发送的指标不会显示在 tcpdump 或 graphite 上。
write_graphite
的配置如下所示:
LoadPlugin "write_graphite"
<Plugin "write_graphite">
<Node "def_prefix">
Host "metrics.example.com"
Port "2003"
Prefix "collectd."
LogSendErrors true
Protocol "TCP"
StoreRates true
AlwaysAppendDS true
SeparateInstances true
</Node>
<Node "statsd_prefix">
Host "metrics.example.com"
Port "2003"
Prefix "statsd."
LogSendErrors true
Protocol "TCP"
StoreRates true
AlwaysAppendDS true
SeparateInstances true
</Node>
</Plugin>
对于PostCacheChain
:
LoadPlugin match_regex
PostCacheChain "PostCache"
<Chain "PostCache">
<Rule "statsd_prefix"> # metrics from statsd plugin use diff prefix
<Match "regex">
Plugin "^statsd$"
</Match>
<Target "write">
Plugin "write_graphite/statsd_prefix"
</Target>
<Target "return">
</Target>
</Rule>
<Target "write">
Plugin "write_graphite/def_prefix"
</Target>
</Chain>
感谢您的帮助。
我遇到的问题是设置问题。为了进行快捷测试,我在监听模式下使用 nc
运行 而不是实际的 Graphite 服务器。这导致,只有一个石墨插件实例可以完全连接和传输数据。
我的测试场景太糟糕了。
<Node "server1">
Host "graphite1.example.com"
Prefix "collectd."
StoreRates true
</Node>
<Node "server2">
Host "graphite2.example.com"
Prefix "collectd."
StoreRates true
</Node>