Мониторинг уровня сигнала на Wi-Fi адаптере с помощью Zabbix

()

Одним из самых распространённых средств удалённого мониторинга является Zabbix, который позволяет достаточно легко и быстро наладить наблюдение за всеми узлами сети.

Чаще всего при настройке мониторинга администраторы удовлетворяются штатными возможностями системы, однако одним из главных преимуществ Zabbix является возможность определять свои параметры для мониторинга и следить за ними. Далее будет показано как можно мониторить уровень сигнала на Wi-Fi адаптере.

Сперва рассмотрим начальные условия: у нас есть некоторый сервер, работающий под управлением Debian и подключенный к локальной сети организации с помощью Wi-Fi (в силу рядя соображений был выбран именно этот способ). Беспроводной интерфейс, уровень сигнала на котором нас интересует, имеет имя wlan0.

Допустим что zabbix-agent у нас уже установлен и сконфигурирован. Обычно файл конфигурации имеет вид (комментарии пропущены) подобный вот этому:

Server=monitoring.our_firm.domain
Hostname=localhost
StartAgents=5
DebugLevel=3
PidFile=/var/run/zabbix-agent/zabbix_agentd.pid
LogFile=/var/log/zabbix-agent/zabbix_agentd.log
Timeout=3

Удобнее всего получать уровень сигнала на беспроводном интерфейсе из вывода утилиты iwconfig:

/sbin/iwconfig wlan0 | grep Quality | cut -d '=' -f2 | cut -d '/' -f1

В этом случае как раз и будет получен уровень сигнала в процентах (в виде числа от 0 до 100). Теперь нужно создать свой ключ в zabbix-agent. Назовём этот ключ "net.wifi.quality" и в качестве параметра будем указывать имя интерфейса для сбора информации. Для этого добавим в конец файла /etc/zabbix/zabbix_agentd.conf строку:

UserParameter=net.wifi.quality[*],/sbin/iwconfig $1 | grep Quality | cut -d '=' -f2 | cut -d '/' -f1

Далее необходимо перезапустить zabbix-agent:

invoke-rc.d zabbix-agent restart

Всё. Теперь агент готов отдавать нужную нам информацию. Переходим к настройке сервера.

Заходим в web-интерфейс системы с правами администратора и переходим по ссылкам: «Настройка» -> «Узлы сети» -> выбираем нужный нам хост и жмём «Выбрать» -> «Элементы данных» -> «Создать элемент данных».

В открывшемся окне создаём элемент со следующими параметрами:

ПараметрЗначение
Описание:Wi-Fi link quality
Тип:ZABBIX агент
Ключ:net.wifi.quality[wlan0]
Тип данных:Числовой (целое 64 бита)
Единица измерения:%
Использовать множитель:Не использовать
Интервал обновления (секунды):60
Flexible intervals (sec):No flexible intervals
Хранить историю (дни):7
Хранить динамику изменений (дни):365
Статус:Активен
Хранить значение:Как есть
Показывать значение throw map:Как есть
Группы элементов данных:Network

Закончив настройку нового элемента сохраняем его. Теперь каждую минуту с точки будет сниматься информация о величине сигнала. На основании этой информации будет рисоваться график, посмотреть который можно перейдя по ссылкам: «Мониторинг» -> «Обзор» и выбрав в открывшейся таблице клеточку с параметром «Wi-Fi link quality» для нужного хоста.

Пример графика уровня сигнала

Пример получаемого графика показан на рисунке. Интересно что этот график получен на компьютере, положение которого относительно Wi-Fi-точки остаётся постоянным (и компьютер и точка стационарны).

Колебания уровня сигнала можно объяснить изменениями электромагнитных свойств среды, связанными с хождением людей и перемещением предметов между точкой и компьютером (расстояние между ними по прямой - около пятнадцати метров. однако на пути сигнала присутствует две стены из железобетона).

Приятной работы!

Ключевые слова: zabbix, wi-fi, мониторинг.

Комментарии:

Eugene Katsevman 2009-01-20 17:53:06 (#)

спасибо, очень интересно.
Если я не ошибаюсь то на сигнал Wi-Fi ещё влияет погодные условия, в сильную грозу можно вообще лишиться сети...

MooSE 2009-01-20 18:51:04 (#)

у меня дома на кухне стоит сервер мониторинга (разворачивал для шабашек). чтобы витую на кухню не тянуть - проключил по Wi-Fi. Сервер стоит рядом с кошачей миской. Экспериментально установлено что когда кошка идёт есть - сигнал падает:)

Anonymous 2012-10-05 15:27:52 (#)

Спасибо за пример.

Я немного модифцировал под свои привычки, я обычно смотрю на значение -dBm, как-то из моего опыта большинство радио оборудования отдаёт информацию именно в этой единице измерения.

UserParameter=net.wifi.quality[*],/usr/sbin/iwconfig $1 | grep Quality | cut -d '=' -f3 | cut -d '-' -f2 | cut -d ' ' -f 1

Для Элемента я указываю Единицу измерения как -dBm

Для простоты вот вам скриншоты :)

Элемент: http://i.imgur.com/24nmZ.png
Параметры графика: http://i.imgur.com/24nmZ.png
Сам график: http://i.imgur.com/mdLA8.png

Anonymous 2012-10-05 16:46:57 (#)

Ещё раз Параметры графика: http://i.imgur.com/LS5H5.png
Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE