Установка системы для захвата, анализа и мониторинга SIP и RTCP-трафика Homer 5.
База знаний → Настройка AsteriskHomer - это бесплатное решение, предназначенное для захвата, анализа и мониторинга SIP и RTCP-трафика с широкими возможностями масштабирования способное обрабатывать большие объёмы трафика свойственные VoIP-операторам малого или среднего размера.
Эта система призвана облегчить инженерам поиск и устранение неисправностей в VoIP-сетях при помощи мощного анализа и визуализации SIP-диалогов между узлами и детальный просмотр всех SIP-сообщений. Решение позволяет сохранять выгружать SIP-трейсы вызовов в виде pcap дампов или текстовых файлов. Еще одним преимуществом решения является возможность разнесения компонентов системы по разным узлам, что позволяет масштабировать систему.
Все описанные действия в статье необходимо выполнять от имени суперпользователя (root). Установка и настройка производилась на предустановленной системе CentOS 6.8 + Asterisk 13 + FreePBX 13.
1.Выполним подключение по SSH к серверу IP АТС Asterisk для выполнения дальнейшей настройки. В зависимости от используемой системы(Windows, Linux, MacOS), подключение по SSH можно выполнить с использованием различного дополнительного программного обеспечения(Putty), либо системного терминала.
Внимание, при авторизации на сервере, пароль в консоли не отображается.
- 2.Выполним проверку активности Selinux, в случае если активен, то выполним отключение:
# sestatus
# sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/selinux/config
SELinux (Security Enhanced Linux) - это система безопасности основанная на моделях мандатного и ролевого доступа. SELinux реализована как компонент ядра Linux начиная с версии ядра 2.6.
- 3.Установим демон синхронизации времени и произведем установку корректного часового пояса:
# yum install ntp
# chkconfig ntpd on
# tzselect
- 4.Прежде чем приступать к установке Homer 5, необходимо установить ряд зависимостей:
# yum -y install epel-release
# yum -y install git nano gcc bison pcre-devel libpcap-devel flex GeoIP-devel
Если установка Homer 5 будет производиться на выделенный сервер или на сервер без FreePBX, то так же необходимо будет выполнить установку следующих зависимостей:
# yum -y install httpd mariadb mariadb-server mariadb-devel php php-mysql
- 5.Приступим к установке Homer 5. Для этого в SSH консоли выполним ряд команд вида:
# cd /usr/src/
# git clone https://github.com/sipcapture/homer-ui.git
# git clone https://github.com/sipcapture/homer-api.git
# git clone https://github.com/sipcapture/homer-config.git
- 6.Выполним изменение дефолтных паролей доступа:
# nano /usr/src/homer-api/api/configuration_example.php
где ключевыми параметрами для изменения является:
DB_USERNAME — имя пользователя для подключения к БД MySQL
DB_PASSWORD – пароль пользователя для подключения к БД MySQL
# nano /usr/src/homer-api/sql/mysql/homer_user.sql
где ключевыми параметрами для изменения является:
homer_user - имя пользователя для подключения к БД MySQL(указанное на прошлом шаге)
homer_password - пароль пользователя для подключения к БД MySQL(указанное на прошлом шаге)
- 7.Выполним копирование файлов web интерфейса Homer 5 в директорию Apache:
cp -R /usr/src/homer-ui /var/www/html
cp -R /usr/src/homer-api/api /var/www/html/homer-ui/api
- 8.Для корректной работы с БД MySQL, а так же ротации данных необходимо выполнить следующие действия:
# mkdir /opt/homer
# cp /usr/src/homer-api/scripts/mysql/* /opt/homer
# chmod +x /opt/homer/*
- 9.Выполним редактирование конфигурационного файла ротации данных:
# nano /opt/homer/rotation.ini
где ключевыми параметрами для изменения является:
user - имя пользователя для подключения к БД MySQL(указанное на шаге 6-том)
password - пароль пользователя для подключения к БД MySQL(указанное на шаге 6-том)
- 10.Переименуем конфигурационные файлы в WEB директории:
# cd /var/www/html/homer-ui/api
# mv preferences_example.php preferences.php
# mv configuration_example.php configuration.php
- 11.Отредактируем конфигурационный файл API подключения:
# nano /var/www/html/homer-ui/api/preferences.php
где ключевыми параметрами для изменения является:
RTCP_TABLE_PARTITION - необходимо изменить на «1»
REMOTE_LOG_URL - необходимо указать IP сервера на который производится установка Homer 5
EXTERNAL_AUTH_URI - необходимо указать IP сервера на который производится установка Homer 5
- 12.Изменим в конфигурационном файле директорию расположения сокета MySQL:
# sed -i "s/run\/mysqld\/mysqld.sock/lib\/mysql\/mysql.sock/g" /opt/homer/rotation.ini
- 13.Выполним создание базы данных:
# cd /usr/src/homer-api/sql/mysql
# mysql -u root -p < homer_databases.sql
# mysql -u root -p < homer_user.sql
# mysql -u root -p homer_data < schema_data.sql
# mysql -u root -p homer_configuration < schema_configuration.sql
# mysql -u root -p homer_statistic < schema_statistic.sql
Во время создание базы данных потребуется ввести пароль root пользователя.
- 14.Добавим в Crontab скрипт ротации для возможности начала сбора данных:
# crontab -e
Добавим следующую строку:
30 3 * * * root /opt/homer/homer_mysql_rotate > /dev/null 2>&1
15.Добавим виртуальный хост в настройки Apache:
# nano /etc/httpd/conf.d/homer.conf
Внесем следующие строки:
<VirtualHost *:80>
ServerName homer
# Indexes + Directory Root.
DirectoryIndex index.php index.html index.htm
DocumentRoot /var/www/html/homer-ui
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/html/homer-ui >
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
# service httpd restart
- 16.Выполним проверку доступности WEB интерфейса Homer 5, для этого необходимо перейти в интернет обозревателе(Opera, Google Chrome, Firefox….) по ссылке вида: http://IP_адрес_сервера_homer и пройти авторизацию(по умолчанию Логин: admin Пароль: test123) …. В нашем примере ссылка будет иметь вид http://192.168.170.157:8080
- 17.Для начала сбора данных и отображения их в WEB панели Homer необходимо выполнить установку CapAgent:
# yum -y install git gcc json-c-devel expat-devel libpcap-devel flex-devel automake libtool bison flex libuv-devel
# cd /usr/src
# git clone https://github.com/sipcapture/captagent.git
# cd captagent
# ./build.sh
# ./configure
# make && make install
Homer 5 для сбора данных использует протокол Universal Homer Encapsulation Protocol (HEP), который можно активировать в следующем ПО: Asterisk 12+ (только для PJSIP), Freeswitch, Kamailio, OpenSIPS.
- 18.Произведем настройку CapAgent:
# /usr/local/captagent/etc/captagent/socket_pcap.xml
где ключевыми параметрами для изменения является:
Включить в секции «RTCP Socket» enable=true
Задать имя сетевого интерфейса name="dev" value="eth0" или оставить any в случае использования нескольких сетевых интерфейсов.
# nano /usr/local/captagent/etc/captagent/transport_hep.xml
где ключевыми параметрами для изменения является:
Задать IP адрес сервера Homer 5: name="capture-host" value="192.168.170.157"
Задать порт подключения: name="capture-port" value="9020"
- 19.Для работы с CapAgent, как со службой выполним следующие действия:
cp /usr/src/captagent/init/el/6/captagent.init /etc/init.d/captagent
cp /usr/src/captagent/init/el/captagent.sysconfig /etc/sysconfig/captagent
chmod 755 /etc/init.d/captagent
chkconfig --add captagent
chkconfig captagent on
service captagent start
