Александр Бутов
08.11.2019
204162

Инструмент анализа sip пакетов SIP3

В статье рассматривается установка и использование SIP3  – программного решения с открытым исходным кодом для мониторинга и устранения неисправностей  VoIP в режиме реального времени. Для примеров использовалась ОС CentOS 7. Для SIP3 необходимо предварительно установить docker и ansible. Устанавливаем docker: Запустить сервис docker  и отобразить статус Для того, чтобы docker запускался при старте системы, необходимо […]

В статье рассматривается установка и использование SIP3  – программного решения с открытым исходным кодом для мониторинга и устранения неисправностей  VoIP в режиме реального времени. Для примеров использовалась ОС CentOS 7.

Проверить версию Centos, а, также, получить информацию об архитектуре установленной системы, можно командами: cat /etc/redhat-release uname –r
Проверка версии CentOS и архитектуры установленной системы
Проверка версии CentOS и архитектуры установленной системы

Для SIP3 необходимо предварительно установить docker и ansible.

Устанавливаем docker:

yum install docker
Установка docker и требующихся зависимостей
Установка docker и требующихся зависимостей
При установке пакета из репозитория вы можете установить не самую последнюю версию docker. Для установки самой последней версии необходимо скачать c официального сайта docker исходный код и установить docker из исходников.

Запустить сервис docker  и отобразить статус

systemctl start docker
systemctl status docker
Запуск docker и проверка статуса сервиса
Запуск docker и проверка статуса сервиса

Для того, чтобы docker запускался при старте системы, необходимо выполнить команду:

systemctl enable docker

Отобразить список сервисов, относящихся к docker  и проверить разрешены ли они, можно командой:

systemctl list-unit-files | grep docker
Добавление в автозагрузку
Добавление в автозагрузку
В CentOS7 присутствует firewalld который может конфликтовать с docker. Если firewalld был запущен или перезапущен после запуска docker, необходимо перезапустить также и docker. Установка Ansible
yum install ansible
Установка ansible
Установка ansible

Для проверки установленной версии ansible выполните команду

ansible --version
Проверка установленной версии ansible
Проверка установленной версии ansible
При работе с ansible возможны ошибки, связанные с присутствием в тексте команд или шаблонах ansible символов в кодировке Unicode (например, при вставке команд в консоль из буфера обмена). Для избежания таких ситуаций, необходимо вводить команды вручную. Например, ошибка

ERROR! Unexpected Exception, this is probably a bug: ‘ascii’ codec can’t encode character u’\u2013′ in position 17: ordinal not in range(128)

вызвана присутствием символа ‘EN DASH’ (‘U+2013’, unicode дефис) в тексте команды (см. скриншот)

Ошибка unicode character
Ошибка unicode character

Также, потребуется установить python-pip -систему управления пакетами, написанными на python:

yum install python pip
Установка python pip
Установка python pip

Установка docker-py– python библиотека для docker

pip install docker-py 
Установка docker-py
Установка docker-py

Клонирование репозитория https://github.com/sip3io/sip3-ansible/

git clone https://github.com/sip3io/sip3-ansible/
Потребуется установленный пакет git. Для установки git выполнить команду yum install git.
Клонирование репозитория sip3
Клонирование репозитория sip3

Добавляем необходимые хосты в конфигурационный файл. В примере 192.168.32.31 – адрес используемой  машины. Выполняем в директории, в которую клонировали репозиторий sip3.

nano ./sip3-ansible/roles/sip3-salto/templates/hosts.yml.j2
Редактирование конфигурационного файла sip3 – добавление хостов
Редактирование конфигурационного файла sip3 – добавление хостов

В этой же директории выполняем

nano ./sip3-ansible/roles/sip3-hoof/tasks/main.yml

для правки еще одного конфигурационный файла и указываем порт для запуска, если порт 80 занят.

Редактирование конфигурационного файла sip3 – изменение порта
Редактирование конфигурационного файла sip3 – изменение порта

Для установки внутренних компонентов sip3 выполнить команду

ansible-playbook -K ./sip3-ansible/playbooks/trial/sip3-backend.yml --extra-vars "port=8088"

можно использовать переменную port для изменения порта по умолчанию. В процессе установки потребуется задать пароль.

Установка sip3
Установка sip3
Для удаления внутренних компонентов sip3 необходимо выполнить команду с переменной state=absent:
ansible-playbook -K playbooks/trial/sip3-backend.yml --extra-vars "state=absent"

После завершения установки внутренних компонентов SIP3, необходимо развернуть SIP3 Captain. Это компонент, отвечающий за сбор и фильтрацию обработанных данных SIP трафика.

Для установки SIP3 Captain выполните следующую команду:

ansible-playbook -K ./sip3-ansible/playbooks/trial/sip3-captain.yml
Установка sip3 Captain
Установка sip3 Captain
Чтобы удалить SIP3 Captain, необходимо выполнить команду с переменной state=absent:
ansible-playbook -K playbooks/trial/sip3-captain.yml --extra-vars "state=absent"

Вместе с пробной версией SIP3 поставляется Grafana. Откройте http: //ip_хоста:порт/grafana, для входа использовать стандартные учетные данные (admin/admin). После этого вы увидите панель инструментов Calls Statistic:

Панель инструментов Grafana
Панель инструментов Grafana

По адресу http: //ip_хоста:порт/  находятся два инструмента SIP3: Simple Search (базовый поиск по звонкам) Advanced Search (продвинутый поиск).

SIP3 - Simple search
SIP3 – Simple search

Кликнув на какой-либо вызов можно увидеть окно Call info – последовательность потоков для этого вызова.

SIP3- Simple Search, экспорт в формат csv
SIP3- Simple Search, экспорт в формат csv

Список вызовов можно экспортировать в формат csv. Последовательность потоков для конкретного вызова можно также экспортировать в формат png.

SIP3 – Call info
SIP3 – Call info

При клике на Details можно просмотреть более подробную информацию о вызове и экспортировать дамп какого-либо вызова в формат pcap.

SIP3 - Call info details
SIP3 – Call info details

Advanced Search позволяет отфильтровать вызовы по одному или нескольким параметрам. Найденные вызовы можно также экспортировать в csv, сохранить последовательность потоков в png, просмотреть более подробную информацию по конкретному вызову, экспортировать дамп вызова в pcap.

SIP3 – Advanced Search
SIP3 – Advanced Search
 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices