我正在尝试将指标从 gmetad 转发到 graphite/carbon。配置后,carbon_server
gmetad开始丢失指标。ganglia_prefix
gmetad.conf
gmetad版本是3.3.5,carbon/whisper/graphite-web是0.9.8。
系统上没有 I/O 瓶颈,也没有 CPU 瓶颈(HP DL385G7 带有 2 个 SSD,组成 RAID0),我甚至在远程主机上配置了另一个 gmetad 来将指标发送到 graphite/carbon,但它也崩溃了。
还有其他人遇到过这种情况吗?
答案1
使用两个小的 bash 和 perl 脚本修复了这个问题(前面有肮脏的黑客攻击)
g2g.pl
#!/usr/bin/perl
use XML::Simple;
$now = time;
$ref = XMLin("-");
$clustername = $ref->{"CLUSTER"}{"NAME"};
foreach (@{$ref->{"CLUSTER"}{"HOST"}}) {
$hostname = $_->{"NAME"};
$hostname =~ s/\./_/g;
$hostname = "here.goes.my.prefix.".$clustername.".".$hostname;
foreach (@{$_->{"METRIC"}}) {
print "$hostname".".".$_->{"NAME"}." ".$_->{"VAL"}." ".$now."\n";
}
}
ganglia2graphite.sh
#!/bin/sh
while true ; do
nc localhost 8649 | /usr/local/bin/g2g.pl | nc -q1 localhost 2003
done
答案2
我遇到了同样的问题,但是上述 perl 脚本对我来说不起作用(失败并出现错误“不是 g2g.pl 上的 ARRAY 引用”)。
不过,我想我找到了解决办法。只需确保 carbon_server 是一个不带引号的 IP 地址。这对我来说似乎很有效:
carbon_server a.b.c.d
carbon_port 2003
graphite_prefix "ganglia"
write_rrds off