Очень часто для определения проблем с каким-либо процессом или приложением, за ним необходимо долго наблюдать. Собирать статистическую информацию и на основе её делать какие-либо выводы. Речь в данном случае пойдет о сборе статистики об популярном сервере телефонии 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. Образец шаблона можно скачать здесь.
Валерий Кулик
Автор: Виктор Лукаш