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



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

我知道这在任何方面都不是Zabbix固有的。我发现的唯一接近的方法是在zabbix_agented.conf文件中设置一个UserParameter,该文件ping远程IP地址,并GREP所需的信息。不幸的是,GREP只会返回包含我要查找的字符串的整行的值。

例如(从Zabbix代理ping):

ping 192.168.120.1 | grep "Average ="

退货:

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

我真正想要的是49。这样,我就可以用一种有用的方式来绘制结果。

这不是一个真正的zabbix问题。但无论如何。我手边没有窗口,所以我不能给你确切的cmd.exe代码。通常,您需要的是按记号(空格)拆分字符串,并从数字中删除"ms"。使用cmd.exe,您可以按照此处第一部分的说明执行操作。第二,这里有很多关于如何操作字符串的例子。

如果您使用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

我能给出的最好的建议是在这种操作中使用更高级的语言。Powershell或windows上的VB。

最新更新