Как да начертая времената на ping от zabbix агент до отдалечен адрес?

Бих искал да направя графика на средните резултати от ping от Zabbix агенти, базирани на Windows, към отдалечените адреси на нашия базиран в облака сървър на център за обаждания. Разбрах как да върна резултат от 1 (успешен пинг) или 0 (неуспешен пинг), но това е безполезно в моя сценарий.

Знам, че това не е присъщо на Zabbix по никакъв начин. Единственият начин, който открих, че е дори близък, беше да настроя UserParameter във файла zabbix_agentd.conf, който пингва отдалечения IP адрес и GREPs необходимата информация. За съжаление, GREP ще върне само стойността на целия ред, съдържащ низа, който търся.

Например (пинг от Zabbix агента):

ping 192.168.120.1 | grep "Average ="

се завръща:

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

Всичко, което наистина искам да върна, е 49. По този начин мога да начертая резултатите по полезен начин.


person user2548086    schedule 03.07.2013    source източник


Отговори (1)


Това всъщност не е въпрос на zabbix. Но както и да е. Нямам Windows под ръка, така че не мога да ви дам точния код на cmd.exe. Обикновено това, от което се нуждаете, е да разделите низа по токени (интервал) и да премахнете "ms" от числото. С помощта на cmd.exe можете да го направите, както е описано тук за първата част. за второто, има много примери тук за това как да манипулирате низовете.

Като се има предвид, че използвате grep, мога да предположа, че сте инсталирали cygwin или нещо подобно. Тогава може да имате повече късмет с awk и sed за това. Пример

$ 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 или VB на Windows.

person Michael Tabolsky    schedule 03.07.2013