如何绘制从zabbix代理到远程地址的ping时间?

时间:2013-07-03 19:59:51

标签: ping agent zabbix

我想将基于Windows的Zabbix代理的平均ping结果绘制到我们基于云的呼叫中心服务器的远程地址。我已经弄清楚如何返回1(成功ping)或0(unsuccesful ping)的结果,但这在我的场景中没用。

我知道这不是Zabbix所固有的。我发现甚至接近的唯一方法是在zabbix_agentd.conf文件中设置一个用于ping远程IP地址的UserParameter,以及GREP所需的信息。不幸的是,GREP只返回包含我正在寻找的字符串的整行的值。

例如(从Zabbix代理ping):

ping 192.168.120.1 | grep "Average ="

返回:

Minimum = 46ms, Maximum = 51ms, Average = 49ms

我真正想要的只是49.这样我就可以用有用的方式绘制结果。

1 个答案:

答案 0 :(得分:1)

这不是一个真正的zabbix问题。但无论如何。我没有窗口方便,所以我不能给你准确的cmd.exe代码。通常您需要的是通过标记(空格)拆分字符串并从数字中删除“ms”。使用cmd.exe,您可以按照here所述的第一部分进行操作。对于第二个,有很多关于如何操纵字符串的例子here

鉴于您使用grep,我可以假设您已经安装了cygwin或其他东西。那么你可以为此awksed带来更好的运气。实施例

$ ping -c 1 8.8.8.8 | grep "packet loss"
1 packets transmitted, 1 received, 0% packet loss, time 25ms    
$ ping -c 1 8.8.8.8 | awk '/packet loss/ { gsub("%","",$6);print $6}'
0

我能给出的最佳建议是使用更高级的语言进行此类操作。 Windows上的Powershell或VB。