Настрока мониторинга пропускной способности канала (iperf)

Как работает:

Измерение осуществляется следующим образом, на одном ПК запускаем iperf в режиме «сервер», на втором в режиме «клиент» с указанием ip-адреса первого ПК («сервера»). Через заданное время показывается измеренная информация.

Установка:

на debian 7

apt-get install iperf

на debian 6:

добавляем реппозитории обновляем и устанавливаем

echo 'deb http://mirror.yandex.ru/debian/ squeeze main' | sudo tee -a /etc/apt/sources.list
echo 'deb-src http://mirror.yandex.ru/debian/ squeeze main' | sudo tee -a /etc/apt/sources.list

apt-get update

apt-get install iperf

Работа программы:

запускаем сервер

iperf -s

запускаем сервер в фоновом режиме

iperf -s -D

Запустить клиент с указанием на сервер с ip-адресом 192.168.5.39:

iperf –c 192.168.5.39

Запустить клиент с указанием на сервер с ip-адресом 192.168.5.39 с выводом результата каждые 5 секунд до тех пор, пока по трафику не пройдёт 200 Мбайт информации:

iperf –c 192.168.5.39 –n 200М –i 5

Запустить клиент с указанием на сервер с ip-адресом 192.168.5.39 и тестировать 20 секунд с выводом результата каждые 5 секунд:

iperf –c 192.168.5.39 –t 20 –i 5

Как настроено у меня:

создан скрипт bandwidth.sh

iperf -c 193.254.225.XX -f bits -n 10m | awk '{print $8}' | grep -E [0-9] > /opt/scripts/bw.txt
# получаем скорость канал в битах/сек пропуская через него 10МБ данных, grep'аем только цифры и заносим в файл bw.txt
if [ -s "/opt/scripts/bw.txt" ];
then
    echo "ок" 
else
cp /opt/scripts/bw2.txt /opt/scripts/bw.txt
fi
# Если файл bw.txt не нулевого размера то все ок, а если нулевого то скопировать файл bw2.txt (в нем вручную прописать цифру 0) в bw.txt
# Это нужно для того чтобы при выключенном компе не было пустых данных в заббиксе

добавляем скрипт в cron на выполнение каждые 10 минут:

crontab -e

добавляем строку

*/10 * * * *     /opt/scripts/bandwidth.sh > /dev/null 2>&1

добавляем переменную в zabbix agent

nano /etc/zabbix/zabbix_agentd.conf

добавляем строку

UserParameter=speedtest,grep -E -v a /opt/scripts/bw.txt

Создаем элемент данных, создаем для него триггер, и график (это будет отдельная общая инструкция, или в поисковике задать «мониторинг zabbix agent»)

Нужная информация для настройки элемента данных это множитель который переводит биты в мегабиты (Пользовательский множитель: 0.00000095)

На сервере нужно добавить iperf в автозагрузку:

nano /etc/rc.local

добавить строку перед exit 0

iperf -s -D

На сервере возникли проблемы с iperf, скорость по графику плавно опускалась до минимума, и программа грузила проц на 100%
Проблема решается переодической перезагрузкой iperf

скрипт добавить в cron каждые 30 минут:

killall -9 iperf
iperf -s -D