![]()
Рисунок 1. Основной вариант использования, каждый сервис на отдельном хосте: VoIP_monitor Master/Slave-s/UI/Install_Server
Возможные варианты конфигурации VoIP_monitor:
![]()
Рисунок 2. Совмещение на одном хосте VoIP_monitor Master+UI
![]()
Рисунок 3. Совмещение на одном хосте VoIP_monitor Install Server+Master+UI
![]()
Рисунок 4. VoIP Monitor slave размещен на SSW
| Установка VoIP_Monitor (Master/ Slave/UI) выполняется через Install Server. Основная начальная конфигурация для установки производится в конфигурационных файлах Install Server. |
После установки ОС скачайте последний архив стабильной версии:
wget https://s3.eltex-co.ru/shared/voipmonitor-ansible/stable/voipmonitor-deploy-latest.tar.gz |
Разархивировуйте и перейдите в директорию voipmonitor-deploy:
tar -xzvf voipmonitor-deploy-*.tar.gz && cd voipmonitor-deploy/ |
~/voipmonitor-deploy$ ll total 48 drwxrwxr-x 5 abf abf 4096 янв 23 05:03 ./ drwxr-x--- 5 abf abf 4096 янв 27 08:55 ../ -rw-rw-r-- 1 abf abf 269 янв 23 05:03 ansible.cfg -rw-rw-r-- 1 abf abf 1523 янв 23 05:03 check-python-playbook.yml drwxrwxr-x 4 abf abf 4096 янв 23 05:03 inventory/ -rw-rw-r-- 1 abf abf 1869 янв 23 05:03 Makefile -rw-rw-r-- 1 abf abf 595 янв 23 05:03 playbook.yml -rw-rw-r-- 1 abf abf 12150 янв 23 05:03 README.md drwxr-xr-x 6 abf abf 4096 янв 23 05:03 roles/ drwxrwxr-x 2 abf abf 4096 янв 23 05:03 scripts/ |
Установите утилиты make и sshpass:
sudo apt-get install make sshpass |
IP-адреса серверов:
|
Развертывание хостов VoIP_Monitor Master/Slave/UI выполняется через конфигурационный файл ./inventory/hosts.ini. Для его создания запустите скрипт:
Потребуется указать IP-адреса серверов VoIP_Monitor Master/Slave/UI, а также общее количество серверов master+slaves. Примеры: 1. В случае, если slave-сенсор устанавливается локально на ноды ECSS10, а UI и master вынесены на отдельный хост — необходимо указать три сервера. 2. Один из вариантов развертывания продукта — настройка зеркалирования траффика с одного или нескольких АТС (к примеру, с нод ECSS10 и SMG) на один master-сенсор. При таком варианте необходимо указать один сервер. 3. В случае, если в схеме с зеркалированием планируется более одного сенсора, например, если траффик с ECSS10 зеркалируется на один хост, а траффик с SMG — на другой и т. д., то необходимо указать число отдельно вынесенных slave-сенсоров + один центральный обработчик master. |
make init-hosts |
В момент выполнения команды "make init-hosts" ОС на серверах VoIP_Monitor Master/Slave/UI должна быть установлена и сконфигурирована, сервера должны быть доступны в сети. |
При установке сервиса на локальный хост (Install Server также является VoIP_Monitor Master/Slave/UI) необходимо указывать внешний IP машины, а не 127.0.0.1. |
При установке сервиса VoIP_Monitor Master и UI на одном хосте необходимо указывать одинаковый IP-адрес для обоих сервисов. |
При выполнении команды make init-hosts необходимо ввести логин и пароль для пользователя, который существует на всех серверах/виртуальных машинах, где выполняется установка VoIPmonitor Core/UI. Install server также должен иметь доступность по SSH до всех ранее упомянутых серверов. |
~/voipmonitor-deploy$ make init-hosts === Hosts configuration === Enter count of VoIPmonitor Core hosts (includes master and slaves): 2 Enter IP VoIPmonitor Core MASTER: 10.0.20.53 Enter IPs for VoIPmonitor Core SLAVEs (1 hosts): Slave 1 IP: 10.0.20.54 Enter IP VoIPmonitor UI: 10.0.20.59 Enter username for SSH-connection to hosts (default: ecss): abf Enter password for SSH-connection to hosts (default: password): === Checking SSH & sudo access on all hosts === Checking host 10.0.20.53... 10.0.20.53 OK Checking host 10.0.20.54... 10.0.20.54 OK Checking host 10.0.20.59... 10.0.20.59 OK Inventory successfully created: ./inventory/hosts.ini |
Voip Monitor Core hosts в данном случае обозначает количество хостов в инсталляции Voip Monitor, на которых установлены сенсоры; не имеет отношения к core в терминологии продукта ECSS10. |
cat ./inventory/hosts.ini [voipmonitor:children] voipmonitor_core voipmonitor_ui [voipmonitor:vars] ansible_port=22 ansible_user=******* ansible_password=******* # ========================= # VoIPmonitor Core # ========================= [voipmonitor_core:children] voipmonitor_core_master voipmonitor_core_slave [voipmonitor_core_master] core-01 ansible_host=10.0.20.53 [voipmonitor_core_slave] core-02 ansible_host=10.0.20.54 # ========================= # VoIPmonitor UI # ========================= [voipmonitor_ui] ui ansible_host=10.0.20.59 |
Конфигурация сервисов выполняется через переменные Ansible. Основная конфигурация задаётся в файле ./inventory/group_vars/voipmonitor.yml.
voipmonitor:
docker:
update_config: false
version: "1.3"
mysql:
root_password: "password"
voipmonitor_password: "password"
port: 3307
ui_host:
domain_name: ""
api:
http_port: 4000
client:
http_port: 80
https_port: 443
keycloak:
http_port: 8080
admin_password: "password"
master_sniffer:
manager_port: 5029
sensor:
id: "1"
port: "60024" |
Конфигурация VoIPmonitor UI полностью осуществляется в файле voipmonitor.yml. |
Для серверов VoIPmonitor Core основная конфигурация прописывается в файле voipmonitor.yml.
В директории ./inventory/host_vars для серверов VoIPmonitor Core "Master" и "Slave" в файлах → ./inventory/host_vars/core-01.yml и ./inventory/host_vars/core-02.yml соответственно дополнительно укажите, какой именно интерфейс нужно слушать (по умолчанию система использует интерфейс "eth0").
cat ./inventory/host_vars/core-01.yml voipmonitor_core_voip_listen_interfaces: "eth0" |
Замените на реальный интерфейс системы:
nano ./inventory/host_vars/core-01.yml |
cat ./inventory/host_vars/core-01.yml voipmonitor_core_voip_listen_interfaces: "enp0s8" cat ./inventory/host_vars/core-02.yml voipmonitor_core_voip_listen_interfaces: "enp0s8" |
Во время выполнения:
Установка Python выполняется параллельно существующей версии и не влияет на текущую конфигурацию системы: ссылка /usr/bin/python3 не изменяется, поэтому существующие приложения, использующие установленную на системе версию Python, продолжают работать без изменений. |
Выполните подготовку окружения на Install Server к установке:
make configure |
В момент установки вы увидите такое сообщение системы «в примере пользователь "*******"» — требуется переподключится к Install Server. Пользователь был добавлен в группу "docker". Требуется переподключится (logout/login) к системе с новыми полномочиями после добавления пользователя в новую группу docker. Повторите команду make configure для продолжения конфигурации.
|
На вопрос: "Enter docker login for hub.eltex-co.ru:" требуется указать пользователя/пароль, полученные у менеджера проекта. |
make configure Configure for installing [sudo] password for abf: User abf in docker group Docker installed Enter docker login for hub.eltex-co.ru: ********* Enter docker password: ********* WARNING! Your credentials are stored unencrypted in '/home/abf/.docker/config.json'. Configure a credential helper to remove this warning. See https://docs.docker.com/go/credential-store/ Login Succeeded Unable to find image 'hub-ims.eltex-co.ru/supplementary/ecss-deploy-image/ecss-deploy-image:0.1.20' locally 0.1.20: Pulling from supplementary/ecss-deploy-image/ecss-deploy-image 943845cbb332: Download complete 63e5bc7682b8: Pull complete 0d9d9d08ef52: Pull complete 1812eb083c8a: Pull complete c5c1f07a6611: Pull complete ff6a22ad3b08: Pull complete 8561f0943791: Pull complete 359b2e40f8b3: Downloading [==================================> ] 309.3MB/445.9MB 51de97fb9b56: Download complete 6393e842ef56: Download complete . . . PLAY RECAP ********************************************************************* core-01 : ok=10 changed=5 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 core-02 : ok=10 changed=5 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 ui : ok=10 changed=6 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 |
Выполните команду:
make docker |
~/voipmonitor-deploy$ make docker Run ansible action: setup docker PLAY [Setup Docker] ************************************************************ TASK [Gathering Facts] ********************************************************* ok: [core-01] ok: [core-02] ok: [ui] TASK [Install python3-requests] ************************************************ ok: [core-01] ok: [ui] ok: [core-02] . . . PLAY RECAP ********************************************************************* core-01 : ok=18 changed=5 unreachable=0 failed=0 skipped=5 rescued=0 ignored=1 core-02 : ok=18 changed=5 unreachable=0 failed=0 skipped=5 rescued=0 ignored=1 ui : ok=18 changed=5 unreachable=0 failed=0 skipped=5 rescued=0 ignored=1 Playbook run took 0 days, 0 hours, 1 minutes, 18 seconds |
Установку можно запустить как для всех хостов одновременно, так и отдельно для группы core или ui.
В первом случае используйте команду make install.
Во втором — make install core → установка только voipmonitor-core или make install ui → установка только voipmonitor-ui.
Для корректного отображения времени начала/окончания звонков в VoIP Monitor на "Install Server" время должно быть установлено в UTC, а не локальный часовой пояс. |
make install |
~/voipmonitor-deploy$ make install Run ansible action: install for all PLAY [Setup Docker] ************************************************************ PLAY [Deploy VoIPmonitor Core] ************************************************* TASK [Gathering Facts] ********************************************************* ok: [core-01] ok: [core-02] TASK [voipmonitor_core : Validating arguments against arg spec 'main' - Main entry point for the voipmonitor_core role] *** ok: [core-01] ok: [core-02] . . . PLAY [Deploy VoIPmonitor UI] *************************************************** TASK [Gathering Facts] ********************************************************* ok: [ui] TASK [voipmonitor_ui : Validating arguments against arg spec 'main' - Main entry point for the voipmonitor_ui role] *** ok: [ui] . . . PLAY RECAP ********************************************************************* core-01 : ok=21 changed=8 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0 core-02 : ok=21 changed=8 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0 ui : ok=15 changed=5 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0 |
После установки на целевых хостах будут созданы директории /etc/voipmonitor-core и /etc/voipmonitor-ui. Они защищены от просмотра. Доступ до них возможен только от пользователя root.
Контейнер VoIPmonitor Core поддерживает дополнительную ручную конфигурацию через внешний каталог с конфигурационными файлами. Для ручной конфигурации sniffer используется файл /etc/voipmonitor-core/docker/volumes/voipmonitor-configs/conf.d/custom_options.conf. После установки он пустой. В данный файл можно добавлять параметры конфигурации VoIPmonitor Core согласно официальной документации. Все параметры из custom_options.conf автоматически подхватываются при старте контейнера.
После изменения конфигурации перезапустите контейнер voipmonitor-core-sniffer, чтобы сервис считал актуальную конфигурацию.
|
|
После установки войдите на сервер VoIP_Monitor_UI https://ipadd_ui. в примере https://10.0.20.59.


При успешном логировании установку VoIP Monitor можно считать законченной, приступайте к настройке и кастомизации.