Zabbix. Мониторим Asterisk

Очень часто для определения проблем с каким-либо процессом или приложением, за ним необходимо долго наблюдать. Собирать статистическую информацию и на основе её делать какие-либо выводы. Речь в данном случае пойдет о сборе статистики об популярном сервере телефонии Asterisk. А сервером для сбора информации по старой доброй традиции будет Zabbix.

И так, для начала определимся какие данные нам необходимы. Для базового набора нам хватит: время работы сервера (Asterisk Server Uptime), кол-во использованной памяти (Used memory of Asterisk), количество обработанных звонков (Calls Processed), и статистика по SIP peer он-лайн, офф-лайн, и общее кол-во. Так же буем считать кол-во зарегистрированных линий.

Далее определимся с помощью каких команд Astrisk возможно получить данную информацию:

‘core show uptime’ — покажет нам время работы сервера;
‘core show calls’ — покажет количество обработанных звонков;
‘sip show registry’ / ‘sip show peers’ — покажет статистику по SIP

А встроенная функция Zabbix поможет в определении размера ОЗУ занятого под Asterisk

‘proc.mem[asterisk]’

Далее нам необходимо добавить данные в шаблон используя system.run[»
К примеру

system.run[«sudo -u zabbix sudo /usr/sbin/asterisk -rvvvvvx ‘core show uptime’ | grep uptime | cut -f2 -d: | sed ‘s/ //g’”] — позволит узнать время работы сервера.

По аналогии создаем другие параметры. Для корректной работы, так же не забываем указать параметры ServerActive / Timeout / Hostname / EnableRemoteCommands

Далее необходимо разрешить пользователю zabbix на сервер запускать asterisk, для этого необходимо отредактировать файл /etc/sudoers , добавив строку

zabbix ALL=(ALL) NOPASSWD:ALL

и изменив параметр Defaults requiretty на #Defaults requiretty (для решения ошибки sorry, you must have a tty to run sudo.)

Если всё выполнено верно, то после создание прототипов элементов в новом шаблоне, получим всё необходимую информацию.

P.S. Образец шаблона можно скачать здесь.

Валерий Кулик

Автор: Виктор Лукаш