Voipnotes
Услуги
  • 3CX Phone System
    • Купить IP АТС - 3CX Phone System
Ещё
    Задать вопрос
    +7 (499) 113-65-73
    Заказать звонок
    sale@voipnotes.ru
    г. Москва 2-й Михайловский проезд 9
    +7 (499) 113-65-73
    Заказать звонок
    Voipnotes
    Услуги
    • 3CX Phone System
      • Купить IP АТС - 3CX Phone System
      Voipnotes
      Услуги
      • 3CX Phone System
        • Купить IP АТС - 3CX Phone System
        Voipnotes
        Voipnotes
        • Услуги
          • Назад
          • Услуги
          • 3CX Phone System
            • Назад
            • 3CX Phone System
            • Купить IP АТС - 3CX Phone System
        • +7 (499) 113-65-73
        sale@voipnotes.ru
        г. Москва 2-й Михайловский проезд 9
        • Главная
        • Блог
        • Мониторинг VoIP канала с помощью Zabbix

        Мониторинг VoIP канала с помощью Zabbix

        30 Января 2015

        Сейчас уже редко найдешь офис, в котором не установлена система мониторинга, cобирающая ежедневные показатели серверов и сетевого оборудования, и отслеживающая статусы различных сервисов. Нам захотелось отслеживать количество успешных вызовов и вызовов с 500 Internal Server Error /503 Service Unavailable релизами. В интернете есть куча платных программ, которые сделают это с легкостью, но мы не ищем легких путей, к тому же, для мониторинга мы уже давно используем Zabbix и не хотелось бы от него отказываться. Собирать статистику по вызовам мы будем с помощью Voipmonitor, после чего с помощью Zabbix агента и скриптов передавать данные на Zabbix сервер, где будут прорисовываться нужные нам графики. Наш метод не претендует на самый правильный и простой, но, может быть, кому-то пригодится и будет полезным. Что мы имеем: сервер CentOS 6.6 с установленным на нем Asterisk 11,Zabbix 2.4,MySQL.

         

        Voipmonitor

        Voipmonitor - OpenSource VoIP снифер, предназначенный для оценки и контроля качества VoIP связи. VoIPmonitor перехватывает вызовы в реальном времени и сохраняет статистику и дампы файлов в БД для последующего анализа. VoIPmonitor использует снифер на базе libpcap, обнаруживает SIP INVITE пакет и перехватывает RTP в обоих направлениях. Далее используется код Jitter буфера Asterisk'а для имитации буфера и получения статистики потери пакетов и джиттера при различных величинах и типах буфера.

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

        yum groupinstall 'Development Tools'yum install git unixODBC-devel mysql-devel libogg libogg-devel vorbis-tools libvorbis libvorbis-devel libpcap-devel zlib-devel

        Переходим в /usr/src/ и скачиваем нужную нам версию снифера

        64 bit

        wget http://sourceforge.net/projects/voipmonitor/files/10.1/voipmonitor-amd64-10.1.23-static.tar.gz

        32 bit

        wget http://sourceforge.net/projects/voipmonitor/files/10.1/voipmonitor-i686-10.1.23-static.tar.gz

        теперь распаковываем и устанавливаем

        tar xzf voipmonitor-*-static.tar.gzcd voipmonitor-*-static./install-script.shcp voipmonitor.conf /etc/mysqladmin create voipmonitor

        Теперь отредактируем конфигурационный файл /etc/voipmonitor.conf

        Вносим изменения для подключения к нашей базе данных:

        mysqlhost = 127.0.0.1mysqlport = 3306mysqlusername = rootmysqlpassword = *******

        Указываем какой сетевой интерфейс и порт должен слушать снифер (в нашем случае все вызовы ходят через 5080):

        interface = eth0sipport = 5080

        По умолчанию снифер сохраняет весь sip и rtp трафик в pcap файлы. Нам данный функционал не нужен, так что его надо отключить:

        savesip = no
        savertp = no
        saveudptl = no
        savertcp = no

        Конфигурационный файл сопровождается очень хорошим описанием, так что при желании можно гибко настроить все под себя. Сохраняем настройки и запускаем программу

        /etc/init.d/voipmonitor start

        После запуска в MySQL будет создана база данных voipmonitor с различными таблицами.

        voipmonitor-1.jpg

        Более подробно о структурах таблиц можно посмотреть тут. В нашем случае нам потребуются данные только из таблицы cdr. Теперь напишем небольшой скриптик, который будет вытягивать из базы данных voipmonitor и таблицы cdr вызовы, завершенные 500 и 503 релизом.


        Создадим Bash скрипт InternalServer.sh со следующим содержимым:

        #!/bin/bash
        U="root"
        B="voipmonitor"
        echo "select count(lastSIPresponseNum) from cdr WHERE calldate >= NOW() - INTERVAL 5 MINUTE and lastSIPresponseNum like '500' GROUP BY lastSIPresponseNum;" | mysql -N -s -u $U $B

        Небольшие пояснения:

        U="root" - логин для подключения к Mysql

        B="voipmonitor" - База данных

        select count(lastSIPresponseNum) from cdr WHERE calldate >= NOW() - INTERVAL 5 MINUTE and lastSIPresponseNum like '500' GROUP BY lastSIPresponseNum;" – выводит кол-во вызовов за последние 5 минут завершенные 500 релизом.

        Создадим еще один скрипт ServiceUnavailable.sh, указав там lastSIPresponseNum like '503'

        Даем право на исполнение нашим скриптам

        chmod 777 internalserver.shchmod 777 serviceunavailable.sh

        Переходим к установке и настройке Zabbix агента.

        Если Zabbix agent не установлен, устанавливаем

        rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpmyum install zabbix-agent

        и переходим к настройкам агента:

        nano /etc/zabbix/zabbix_agentd.conf

        переходим в секцию Option: UserParameter и добавляем наши параметры и прописываем путь до наших скриптов

        UserParameter=internalserver,/usr/src/internalserver.shUserParameter=serviceunavailable,/usr/src/serviceunavailable.sh

        Еще нам нужно выводить кол-во активных вызовов, так что добавим еще вот такую строчку:

        UserParameter=asterisk.activecalls,sudo rasterisk -x "core show calls" | grep "active" | cut -c 1-2
        Теперь нужно разрешить zabbix выполнять команды sudo. Переходим /etc/sudoers и добавляем строку.
        zabbix ALL = NOPASSWD: /usr/sbin/asterisk
        Рестартим Zabbix агент
        /etc/init.d/zabbix-agent restart
         

        Настройка сервера Zabbix

        В веб-панели Zabbix заходим в Настройки -> Шаблоны, создаем пустой шаблон и называем его, например, VoIP monitoring. Заходим в редактирование шаблона и переходим в раздел “Элементы данных” . Нажмите на “Создать элемент данных” в правом верхнем углу экрана, в форме введите следующие параметры:

        voipmonitor-2-620x511.jpgvoipmonitor-3-620x519.jpg


        voipmonitor-4-620x520.jpg

        Теперь переходим в раздел Графики, нажимаем на кнопку “Создать график” и заполняем поля следующим образом:

        voipmonitor-5-620x208.jpg        
        Все сохраняем и к нужному узлу сети добавляем наш шаблон.

        Нужна консультация?

        Наши специалисты ответят на любой интересующий вопрос

        Задать вопрос
        Поделиться
        Назад к списку
        © 2021 Все права защищены.
        +7 (499) 113-65-73
        Заказать звонок
        sale@voipnotes.ru
        г. Москва 2-й Михайловский проезд 9
        Политика конфиденциальности
        Версия для печати
        © 2021 Все права защищены.
        Заказать звонок
        Написать сообщение