Как работает:
Измерение осуществляется следующим образом, на одном ПК запускаем 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