Zabbix. Мониторинг провайдеров.
Имеем 3 провайдера. Хотим настроить мониторинг работы интернета в Zabbix`е.
1. Будем использовать публичные iperf сервера для мониторинга утилитой iperf3
2. На основном роутере настраиваем правила так, чтобы проверка до публичного iperf сервера осуществлялась через разных провайдеров в зависимости от того, по какому tcp порту происходит проверка. В частности в нашем случае запрос на порт 5204 будет осуществляться через провайдера DomRu, 5206 - Telecom, 5208 - Avantel.
3. Хост, с которого будет осуществляться мониторинг (не обязательно Zabbix сервер.
3.1. На хосте, с которого будем осуществлять мониторинг, устанавливаем zabbix_sender.
3.2. Скрипт, который будет отправлять запрос к iperf серверу:
PORT=$1
ISPNAME=$2
IPERFSERVER="st.nsk.ertelecom.ru"
TEMPOUTPUT=/tmp/iperf.tmp
/usr/bin/iperf3 -f m -c $IPERFSERVER -p $1 -R > $TEMPOUTPUT
DLOAD=`cat $TEMPOUTPUT | grep receiver | awk -F " " '{print $7} '`
if [ "$?" -ne "0" ]; then
DLOAD=0
else
zabbix_sender -z localhost -p 10051 -s "ISP Monitoring" -k Iperf.$ISPNAME.Download -o $DLOAD
fi
ULOAD=`cat $TEMPOUTPUT |grep sender |awk -F " " '{print $7}'`
if [ "$?" -ne "0" ]; then
ULOAD=0
else
zabbix_sender -z localhost -p 10051 -s "ISP Monitoring" -k Iperf.$ISPNAME.Upload -o $ULOAD
fi
echo $DLOAD
echo $ULOAD
Этот скрипт будет отправлять trap данные в zabbix. Вместо "localhost" - нужно указать адрес zabbiz сервера.
3.3. В cron помещаем три строки, которые в разное время для каждого провайдера запускает проверки:
25 * * * * /opt/zabbix_send_isp_speed.sh 5208 Avantel 45 * * * * /opt/zabbix_send_isp_speed.sh 5206 Telecom 05 * * * * /opt/zabbix_send_isp_speed.sh 5204 DomRu
4. Создаем хост с именем "ISP Monitoring"
5. В Zabbix`e создаем пару элементов данных (например для провайдера Avantel):
Тип : Zabbix траппер Ключ : Iperf.Avantel.Download Тип : Zabbix траппер Ключ : Iperf.Avantel.Upload
Для двух других провайдеров аналогично.
