И так, задача: пинговать сервера и строить графики время между отправкой запроса и получением ответа (RTT, от англ. Round Trip Time) и процент потерянных пакетов.
С увеличением количества администрируемых серверов у системных администраторов возникает вопрос «как же мониторить?». Когда глаз и рук не хватает уследить за всеми сервисами и серверами. И тут на помощь сисадмину приходят они, системы мониторинга.
Есть много различных систем мониторинга и отслеживания статусов серверов, сетевого оборудования, сетевых сервисов и т.д. Достаточно вспомнить про Nagios, Zabbix или Munin. Но т.к. фактически мне необходимо лишь следить за доступностью самого сервера в сети, пингуя его, то запускать монстрообразные системы и использовать лишь несколько процентов их возможностей я посчитал нецелесообразным, тем более что на всех *nix серверах уже был установлен и отлично работал MRTG.
И так, операционная система FreeBSD, сам MRTG у нас установлен, настроен, работает и отлично рисует графики загруженности каналов и температуры процессоров. Файл конфигурации mrtg.cfg расположен в папке /usr/local/etc/mrtg, а скрипты, с помощью которых MRTG получает данные расположены в /usr/local/etc/mrtg/script.
Скрипт получения данных у меня получился вот таким:
# Этому скрипту в качестве первого параметра передаётся адрес устройства, # которое надо пинговать.
# Если имя устройства передано if [ ! -z ${1} ]; then PING="/sbin/ping" ADDR=${1} DATA=`$PING -c100 -s500 -q $ADDR ` LOSS=`echo $DATA | awk '{print $18 }' | tr -d %` if [ $LOSS = 100.0 ]; then echo 0 else echo $DATA | awk -F/ '{print $5 }' fi echo $LOSS echo loss echo $LOSS..... fi
Если кто не разобрался, то скрипт получив в качестве параметра адрес сервера, пингует его сотней пакетов размером по 500 байт. И на выходе передает в MRTG среднее время пинга, и дважды количество потерянных пакетов, а т.к. изначально было ровно сто отправленных пакетов, то можно сказать что мы получаем процент потерь.
Для примера будем пинговать для оба IPv4 адреса сервиса Google Public DNS, а именно 8.8.8.8 и 8.8.4.4. Допишем в /usr/local/etc/mrtg/mrtg.cfg следующие строки:
Title[pingG8888]: ping 8.8.8.8 Google Public DNS PageTop[pingG8888]: <H1>ping 8.8.8.8 Google Public DNS</H1> Target[pingG8888]: `/usr/local/etc/mrtg/script/pings 8.8.8.8` MaxBytes[pingG8888]: 2000 Options[pingG8888]: nopercent,gauge,unknaszero,avgpeak,growright,pngdate,nobanner LegendO[pingG8888]: Pkt loss % LegendI[pingG8888]: Avg RTT YLegend[pingG8888]: RTT (ms) XSize[pingG8888]: 600 YSize[pingG8888]: 125
Title[pingG8844]: ping 8.8.4.4 Google Public DNS PageTop[pingG8844]: <H1>ping 8.8.4.4 Google Public DNS</H1> Target[pingG8844]: `/usr/local/etc/mrtg/script/pings 8.8.4.4` MaxBytes[pingG8844]: 2000 Options[pingG8844]: nopercent,gauge,unknaszero,avgpeak,growright,pngdate,nobanner LegendO[pingG8844]: Pkt loss % LegendI[pingG8844]: Avg RTT YLegend[pingG8844]: RTT (ms) XSize[pingG8844]: 600 YSize[pingG8844]: 125
Создадим новый индексный файл
indexmaker mrtg.cfg > index.html
И при необходимости, перестартуем сервис MRTG.
Осталось лишь подождать достаточное время, что бы отрисовались графики.
Осталось лишь подождать достаточное время, что бы отрисовались графики.
|
Подробнее...