Как составить график времени пинга от агента zabbix до удаленного адреса?

Я хотел бы отобразить средние результаты пинга от агентов Zabbix на базе Windows до удаленных адресов нашего облачного сервера колл-центра. Я выяснил, как вернуть результат 1 (успешный пинг) или 0 (неудачный пинг), но в моем сценарии это бесполезно.

Я знаю, что это никоим образом не присуще Zabbix. Единственный способ, который, как я обнаружил, был даже близок, заключался в настройке UserParameter в файле zabbix_agentd.conf, который пингует удаленный IP-адрес и GREP отправляет необходимую информацию. К сожалению, 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. Как правило, вам нужно разделить строку на токены (пробел) и удалить «мс» из числа. Используя 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