В данном руководстве рассматривается только установка и настройка нод, реализующих видеопортал DION Video в гибридном варианте.
Инструкции по установке и настройке других сервисов представлены на данной странице.
Архитектура DION предусматривает возможность переноса части компонент, отвечающих за обработку медиа трафика, на площадку организации. Такие компоненты мы называем гибридными нодами. Наличие гибридных нод позволяет проводить конференции в защищенном контуре, не передавая медиа трафик в облако DION. В гибридном сценарии связь гибридных нод с облаком DION является обязательным условием для работы конференций, так как в облако передаются сигнальная информация и управляющие команды.
Все гибридные компоненты, доступные к установке, можно разделить на три группы по функциональному назначению:
При развертывании DION Video в гибридном варианте появляется локальный экземпляр видеопортала. Все загружаемые туда видео файлы хранятся в локальном S3-хранилище. На портале также доступны записи гибридных конференций, если развернуты сервисы записи. При этом записи облачных конференций на локальном видеопортале не отображаются и доступны исключительно в облачном DION Video.
Для направления локальных пользователей на локальный видео-портал, необходимо прописать соответствующие имена на корпоративном DNS-сервере.
В гибридном варианте реализации видеопортала все сопроводительные данные к видео файлам, каналам и плейлистам, такие как название, описание, комментарии, таймкоды, хранятся в базе данных на стороне облачного DION. Сами видео файлы — в локальном S3. При этом перед отправкой в облако вся информация шифруется ключом, который генерируется на основе информации из KMS (на данный момент поддерживается сервис HashiCorp Vault) на стороне компании. Перед шифрованием данных все пользовательские запросы в облако могут быть перенаправлены на DLP компании.
Схема взаимодействия компонентов представлена ниже:
Категория | Наименование компонентна | Описание компонента |
---|---|---|
конференции | ШЛЮЗ (Proxy) | компонент, отвечающий за обнаружение гибридных нод облаком DION |
конференции | MEDIA | компонент, отвечающий за обработку аудио и видео-потоков. |
конференции | TURN | компонент, отвечающий за подключение внешних пользователей ко внутренним медиа-серверам через NAT |
запись | Recorder, Record Converter, Record delivery | компоненты, отвечающие за создание, конвертацию и скачивание записи конференции. |
видео | HLS Delivery, HLS Converter, Upload Companion, API Video Gateway | компоненты, отвечающие за создание, конвертацию и скачивание видео в формате HLS для платформы DION.Видео |
видео | DLP adapter | опциональный компонент, отвечающий за отправку мета-данных видеозаписей на проверку в DLP |
Для работы DION Video желательно пропускать запросы от API Video Gateway в Интернет через прокси-сервер, работающий в режиме Forward-Proxy.
Прежде, чем перейти к редактированию конфигураций, убедитесь в том, что выполнены следующие шаги:
2. Разверните необходимое количество виртуальных машин/серверов и установите на них операционную систему.
3. Установите и запустите сервисы конференций, записи, SIP, если необходимо, по инструкции, доступной на данной странице.
4. Проверьте, что открыты все необходимые сетевые доступы.
5. Разверните S3 хранилище и получите учетные данные для доступа.
В рамках пилотной инсталляции можно воспользоваться тестовым образом S3 Minio, предоставленным DION. Для этого в явном виде сообщите вашей аккаунт-команде о намерении использовать тестовый образ.
Для работы сервисов DION.Video в гибридном режиме необходимо прописать ряд записей на локальном DNS сервере:
URL | Сервер назначения |
---|---|
video.dion.vc | API Video Gateway |
api-video.dion.vc | API Video Gateway |
upload-companion.dion.vc | Upload Companion |
hls-delivery.dion.vc | HLS-delivery |
Если Forward-Proxy отсутствует и не может быть использован, необходимо, чтобы VM API-Video-Gateway разрешала адрес api-video.dion.vc не в локальный, а в публичный облачный адрес DION.
На вашем доверенном УЦ необходимо выпустить ключ и серверный сертификат со следующими именами:
CN:
Alternames:
Формат: .crt
, .key
Этот сертификат должен быть доверенным для всех устройств пользователей DION.
Также необходим CA сертификат в формате .pem
Образы будут поставлены в виде .deb (или RPM) пакетов и архивов .tar в следующем составе:
Обратите внимание, допустимо разнести сервисы API Video Gateway, Upload Companion и DLP Adapter по отдельным машинам. В целях экономии ресурсов, рекомендуем ставить их вместе.
Наличие S3 хранилища является обязательным требованием для реализации DION Video в гибриде.
Предполагается, что в вашей организации существует S3 хранилище, которое может быть использовано DION для хранения аудио и видео файлов. Просим вас заблаговременно создать bucket (директорию для хранения записей), а также пару access-key и secret-key для доступа на S3 хранилище. В конфигурационных файлах DION указываются IP адрес S3 и порт доступа, имя bucket, access-key и secret-key.
Если инсталляция пилотная, вы можете запросить демо-образ S3 у вашей аккаунт-команды.
⚠️ Обратите внимание, демо-образ не подходит для продуктивной инсталляции, так как не поддерживает отказоустойчивость.
Рекомендуем установить minio на отдельной VM.
Для установки на машине требуются docker и docker-compose.
Если произошла перезагрузка и демо-S3 не стартовал автоматически, выполните шаги 4 и 5 инструкции ниже, чтобы запустить сервис заново.
Ниже приведены шаги по развертыванию демо-образа:
1. Распакуйте полученный архив на нужную виртуальную машину
2. Установите на ней docker
и docker-compose
Рекомендуем воспользоваться официальной инструкцией на сайте Docker.
3. В файле docker-compose.yml
посмотрите и поменяйте при необходимости логин и пароль для доступа к minio. Эти учетные данные используются при входе в minio через веб-интерфейс.
environment:
MINIO_ROOT_USER: {имя пользователя}
MINIO_ROOT_PASSWORD: {пароль}
4. Выполните команду
docker load -i {/путь/minio-release-2023-01-31.docker.image}
5. Перейдите в папку, где лежит файл docker-compose.yml
и выполните команду
docker-compose up -d
6. Перейдите в веб-консоль minio по адресуhttp://{IP выбранной VM}:9000
7. Создайте из веб-интерфейса новый bucket и пару access-key и secret key. Запишите имя bucket и ключи.
Запишите ключи сразу же в процессе создания, потом посмотреть их может быть невозможно.
На период установки гибридных нод необходимо наличие доступа в репозиторий операционной системы для установки необходимых зависимостей. При отсутствии доступа к публичному репозиторию некоторые пакеты не будут установлены корректно.
sudo apt install -f {путь к файлу}
или
sudo dpkg -i {путь к файлу}
4. Установите nginx
на VM, где развернуты сервисы:
nginx должен быть установлен VM гибридного DION-Video, где развернуты сервисы:
- API Video Gateway
- HLS Delivery
- Upload Companion
Необходимо повторить шаги ниже на каждой VM. Если все сервисы развернуты на одной VM, установка проводится на ней.
1. Для установки выполните команду
apt install nginx
Пути к файлам и папкам в шагах ниже могут отличаться в зависимости от ОС.Обычно это
/etc/nginx/
2. Удалите стандартный конфигурационный файл
rm /etc/nginx/sites-enabled/default
3. Перенесите в папку /etc/nginx/conf.d/
конфигурационный файл nginx_redirect_to_https.conf
cd /etc/nginx/conf.d/
4. Перенесите в папку /etc/nginx/conf.d/
конфигурационный файл, соответствующий сервису, который будет установлен на данной VM. Если на одной VM планируется установка нескольких сервисов DION Video сразу, перенесите все соответствующие конфигурационные файлы.
Сервис | Конфигурационный файл nginx |
---|---|
HLS Delivery | nginx_hls_delivery.conf |
API Video Gateway | nginx_apigw_frontend.conf |
Upload Companion | nginx_upload_companion.conf |
5. Во всех конфигурационных файлах кроме nginx_redirect_to_https.conf
необходимо прописать пути к сертификатам, выданным вашим УЦ, в переменные ssl_certificate
и ssl_certificate_key
. Для этого откройте на редактирование конфигурационный файл и следуйте комментариям в файле:
nano /etc/nginx/имя_файла.conf
Сохраните изменения в файле
ctrl+O ctrl+X в Nano
6. Перезапустите nginx
systemctl restart nginx
7. Убедитесь, что сервис запущен без ошибок
systemctl status nginx
Если сервис не запускается, обратитесь к вашей аккаунт-команде за помощью в настройке.
Примеры в данном разделе приведены для ОС Ubuntu
Для редактирования конфигурационных файлов и перезапуска сервисов вам потребуются root права.
При недостатке прав используйте sudo
или sudo su
.
На машине необходим nginx. Обратитесь к разделу “Установка и настройка nginx”.
1. Откройте на редактирование конфигурационный файл /etc/dion/api-video-gateway.yml
nano /etc/dion/api-video-gateway.yaml
ПРЕДУПРЕЖДЕНИЕ: Параметры, для которых указан комментарий “# не меняйте данное значение”, изменять нежелательно. В случае изменений сервис может работать некорректно
Следуйте комментариям в файле и инструкции ниже.
При редактировании файла очень важно сохранить исходную табуляцию!
2. Перейдите в секцию # Настройки сервера → # Настройки сервера http
ca_cert: путь_к_вашему_сертификату.pem
client_cert: путь_к_вашему_сертификату.crt
client_key: путь_к_вашему_ключу.key
server_cert: путь_к_вашему_сертификату.crt
server_key: путь_к_вашему_ключу.key
3. Перейдите в секцию # Настройки сервера → # Настройки сервера http → # Настройки forward-proxy
Если для запросов в Интернет со стороны сервиса API Video Gateway должен использоваться forward proxy, необходимо заполнить блок forward_proxy
:
enabled
укажите значение true
, если сервис forward-proxy используется (Solar Web Proxy или аналогичный) и должно осуществляется перенаправление запросов, или оставьте значение false
, если сервис forward-proxy не используетсяurl
укажите адрес расположения сервиса forward-proxy. Обязательно указать портом через двоеточиеПример:
forward_proxy:
enabled: true
url: http://proxy.region.company.ru:9090
4. Перейдите в секцию # Настройки сервера → # Настройки сервера grpc
ca_cert: путь_к_вашему_сертификату_DION.pem
client_cert: путь_к_вашему_сертификату_DION.crt
client_key: путь_к_вашему_ключу_DION.key
server_cert: путь_к_вашему_сертификату_DION.crt
server_key: путь_к_вашему_ключу_DION.key
5. Перейдите в секцию # Настройки сервера → # Настройки сервера grpc → # Параметры для подключения к сервису dlp-adapter
Меняйте значения переменных в этой секции, если вы планируете использовать сервис DLP Adapter для направления всех API запросов к облаку DION на DLP
enabled
на true
, если сервис dlp-adapter будет использоватьсяhost
укажите локальный адрес ноды dlp-adapterПример:
dlp_adapter:
enabled: true
host: 10.90.22.94
post: 9054
6. Перейдите в секцию # Настройки сервера → # Настройки сервера grpc → # Настройки dion-proxy
dion-proxy
в трех переменных host
:Пример:
api_video:
host: 10.232.3.12
port: 9764
capi_clients:
host: 10.232.3.12
port: 9764
task_service:
host: 10.232.3.12
port: 9764
7. Перейдите в секцию # Настройки сервера → # Настройки сервера grpc → # Настройки Hashicorp Vault
Вносите изменения в данной секции, если у вашей организации используется Hashicorp Vault и вы хотите хранить в нем ключи для шифрования данных, которые передаются в облако DION, а также для шифрования видеозаписей при хранении в S3.
В противном случае секреты для генерации ключей хранятся в конфигурационном файла Api Video Gateway.
enabled
на true
, если планируется использовать Hashicorp Vaulttls_skip_verify
определяет проверку TLS. Оставьте значение на true
, если нужно пропускать проверку, измените на false
, чтобы выполнять проверку TLS.ca_cert: путь_к_вашему_сертификату.pem
client_cert: путь_к_вашему_сертификату.crt
client_key: путь_к_вашему_ключу.key
server_cert: путь_к_вашему_сертификату.crt
server_key: путь_к_вашему_ключу.key
insecure_skip_verify
так, чтобы оно совпадало со значением tls_skip_verify
address
Пример:
address: 192.168.0.2
8. Перейдите в секцию - # Настройки сервера → # Настройки сервера grpc → # Шифрование данных в БД
Вносите изменения в данной секции, если Hashicorp Vault НЕ используется
key
и iv
пару 256 битных строк для шифрования aes-256. Для генерации можно использовать opensslПример:
encryption:
key: 1234567890ABCDEF1234567890ABCDEF
iv: 1234567890ABCDEF
9. Перейдите в секцию - # Настройки сервера -> # Настройки сервера grpc -> # Настройки организации
organization_id
- ID вашей организации. Его можно взять в файле org_id.txt, который вы получили вместе с образамиПример:
organization_id: af0000ec-1a00-487a-88fа-9472bf930000
10. Сохраните изменения в файле
ctrl+O ctrl+X
в Nano
11. Запустите сервис
systemctl restart dion-api-video-gateway
12. Убедитесь, что сервис запущен без ошибок
systemctl status dion-api-gateway
13. Дополнительно следует проверить логи на отсутствие ошибок
tail -f /var/log/syslog | grep dion-api-gateway
или journalctl -u dion-api-video-gateway -n 20
Если сервис не запускается, обратитесь к вашей аккаунт-команде за помощью в настройке.
Перейдите в консоль VM, где установлен сервис API Video Gateway.
/app/dion/frontend/apps/player
mkdir -p /app/dion/frontend/apps/player
На подготовительном этапе на эту VM должны были быть перенесены два архива:
2. Распакуйте архив frontend-video-player.tar.gz
в папку /app/dion/frontend/apps/player/
tar -xzvf /путь_к_вашему_архиву/frontend-video-player-v2.2.0.tar.gz -C /app/dion/frontend/apps/player
Можно использовать любую другую утилиту на ваше усмотрение или сначала распаковать архив, а затем разместить его на машине
В качестве проверки выполните команду ls
и сравните вывод:
ls /app/dion/frontend/apps/player/
@mf-types __types_index.json index.html remoteEntry.js remoteEntry.js.LICENSE.txt remoteEntry.js.gz static version.json
3. Распакуйте архив frontend-video-app.tar.gz
в папку /app/dion/frontend/
tar -xzvf /путь_к_вашему_архиву/frontend-video-app-v2.2.0.tar.gz -C /app/dion/frontend/
В качестве проверки выполните команду ls
и сравните вывод:
ls /app/dion/frontend/
apps favicon.png fonts icons images index.html mail sounds static sw.js version.json
На машине необходим nginx. Обратитесь к разделу “Установка и настройка nginx”.
1. Откройте на редактирование конфигурационный файл /etc/dion/upload-companion.yml
sudo nano /etc/dion/upload-companion.yml
ПРЕДУПРЕЖДЕНИЕ: Параметры, для которых указан комментарий “# не меняйте данное значение”, изменять нежелательно. В случае изменений сервис может работать некорректно
Следуйте комментариям в файле и инструкции ниже.
2. Перейдите в секцию # Настройки сервера → # настройки HTTP сервера
ca: путь_к_вашему_сертификату.pem
cert: путь_к_вашему_сертификату.crt
key: путь_к_вашему_ключу.key
3. Перейдите в секцию # Настройки клиентских подключений → # Настройки клиентского подключения gRPC
ca: путь_к_вашему_сертификату_DION.pem
cert: путь_к_вашему_сертификату_DION.crt
key: путь_к_вашему_ключу_DION.key
4. Перейдите в секцию # Настройки клиентских подключений → # подключение к DION VIDEO API
ca: путь_к_вашему_сертификату_DION.pem
cert: путь_к_вашему_сертификату_DION.crt
key: путь_к_вашему_ключу_DION.key
5. Перейдите в секцию # Настройки подключения к S3
api_url:
Пример:
api_url: 192.168.1.1:9000
или api_url: my_s3_storage.company.ru:9000
use_ssl:
на true
, если ваш S3 поддерживает SSL и требуется использовать SSL при подключении access_key: {access_key}
secret_key: {secret}
recorder.conf
Пример:
bucket_name: records
6. Сохраните изменения в файле
ctrl+O ctrl+X
в Nano
7. Запустите сервис
restart start dion-upload-companion
8. Убедитесь, что сервис запущен без ошибок
systemctl status dion-upload-companion
9. Дополнительно следует проверить логи на отсутствие ошибок
tail -f /var/log/syslog | grep dion-companion-uploader
или journalctl -u dion-upload-companion -n 20
Если сервис не запускается, обратитесь к вашей аккаунт-команде за помощью в настройке.
На машине необходим nginx. Обратитесь к разделу “Установка и настройка nginx”.
/etc/dion/hls-delivery.yml
sudo nano /etc/dion/hls-delivery.yaml
ПРЕДУПРЕЖДЕНИЕ: Параметры, для которых указан комментарий “# не меняйте данное значение”, изменять нежелательно. В случае изменений сервис может работать некорректно
Следуйте комментариям в файле и инструкции ниже.
2. Перейдите в секцию # Настройки сервера → # настройки HTTP сервера
ca: путь_к_вашему_сертификату.pem
cert: путь_к_вашему_сертификату.crt
key: путь_к_вашему_ключу.key
interface_name
укажите имя активного сетевого интерфейса. Посмотреть имя интерфейса можно командой ifconfig
Пример:
interface_name: eth0
3. Перейдите в секцию # Настройки клиентских подключений → # Настройки клиентского подключения gRPC
ca: путь_к_вашему_сертификату_DION.pem
cert: путь_к_вашему_сертификату_DION.crt
key: путь_к_вашему_ключу_DION.key
4. Перейдите в секцию # Настройки клиентских подключений → # Настройки клиентского подключения gRPC → # подключение к DION VIDEO API
ca: путь_к_вашему_сертификату_DION.pem
cert: путь_к_вашему_сертификату_DION.crt
key: путь_к_вашему_ключу_DION.key
5. Перейдите в секцию # Настройки подключения к S3
Секция состоит из двух блоков, в каждом из которых требуется указать значения переменных:
api_url:
- IP-адрес или FQDN вашего S3 хранилища и порт доступаuse_ssl:
- true
, если ваш S3 поддерживает SSL и требуется использовать SSL при подключенииaccess_key:
- ACCESS_KEY для доступа к вашему S3 без кавычек через пробелsecret_key:
- SECRET_KEY для доступа к вашему S3 без кавычек через пробелbucket_name:
- отличается в каждом из блоковdion-conferences
Укажите имя бакета, в котором хранятся записи конференций. Бакет должен быть создан заранее и прописан в конфигурационном файле сервиса записи recorder.conf
Пример заполнения: bucket_name: records
dion-video
Укажите имя бакета, в котором будут храниться загруженные видеозаписи. Бакет должен быть создан заранее
Пример заполнения: bucket_name: video
6. Сохраните изменения в файле
ctrl+O ctrl+X
в Nano
7. Перезапустите сервис
systemctl restart dion-hls-delivery
8. Убедитесь, что сервис запущен без ошибок
systemctl status dion-hls-delivery
9. Дополнительно следует проверить логи на отсутствие ошибок
tail -f /var/log/syslog | grep dion-hls-delivery
или journalctl -u dion-hls-delivery -n 20
Если сервис не запускается, обратитесь к вашей аккаунт-команде за помощью в настройке.
1. Откройте на редактирование конфигурационный файл /etc/dion/hls-converter.yml
sudo nano /etc/dion/hls-converter.yaml
ПРЕДУПРЕЖДЕНИЕ: Параметры, для которых указан комментарий “# не меняйте данное значение”, изменять нежелательно. В случае изменений сервис может работать некорректно
Следуйте комментариям в файле и инструкции ниже.
2. Перейдите в секцию # Настройки сервиса
max_tasks_processing_count:
на количество vCPU данной VM, деленное на 4organization:
укажите ID вашей организации. Его можно взять в файле org_id.txt, который вы получили вместе с образамиПример:
organization: af0000ec-1a00-487a-88fа-9472bf930000
6. Перейдите в секцию # Настройки сервера → # настройки HTTP сервера
ca: путь_к_вашему_сертификату.pem
cert: путь_к_вашему_сертификату.crt
key: путь_к_вашему_ключу.key
interface_name
укажите имя активного сетевого интерфейса. Посмотреть имя интерфейса можно командой ifconfig
Пример:
interface_name: eth0
3. Перейдите в секцию # Настройки клиентских подключений → # Настройки клиентского подключения gRPC
ca: путь_к_вашему_сертификату_DION.pem
cert: путь_к_вашему_сертификату_DION.crt
key: путь_к_вашему_ключу_DION.key
4. Перейдите в секцию # Настройки клиентских подключений → # Настройки клиентского подключения gRPC → # подключение к DION VIDEO API
ca: путь_к_вашему_сертификату_DION.pem
cert: путь_к_вашему_сертификату_DION.crt
key: путь_к_вашему_ключу_DION.key
5. Перейдите в секцию # Настройки клиентских подключений → # подключение к DION TASK SERVICE
ca: путь_к_вашему_сертификату_DION.pem
cert: путь_к_вашему_сертификату_DION.crt
key: путь_к_вашему_ключу_DION.key
6. Перейдите в секцию # Настройки подключения к S3
Секция состоит из двух блоков, в каждом из которых требуется указать значения переменных:
api_url:
- IP-адрес или FQDN вашего S3 хранилища и порт доступаuse_ssl:
- true
, если ваш S3 поддерживает SSL и требуется использовать SSL при подключенииaccess_key:
- ACCESS_KEY для доступа к вашему S3 без кавычек через пробелsecret_key:
- SECRET_KEY для доступа к вашему S3 без кавычек через пробелbucket_name:
- отличается в каждом из блоковdion-conferences
Укажите имя бакета, в котором хранятся записи конференций. Бакет должен быть создан заранее и прописан в конфигурационном файле сервиса записи recorder.conf
Пример заполнения: bucket_name: records
dion-video
Укажите имя бакета, в котором будут храниться загруженные видеозаписи. Бакет должен быть создан заранее
7. Сохраните изменения в файле
ctrl+O ctrl+X
в Nano
8. Перезапустите сервис
systemctl restart dion-hls-converter
9. Убедитесь, что сервис запущен без ошибок
systemctl status dion-hls-converter
10. Дополнительно следует проверить логи на отсутствие ошибок
tail -f /var/log/syslog | grep dion-hls-converter
или journalctl -u dion-hls-converter -n 20
Если сервис не запускается, обратитесь к вашей аккаунт-команде за помощью в настройке.
1. Откройте на редактирование конфигурационный файл /etc/dion/dlp-adapter.yml
sudo nano /etc/dion/dlp-adapter.yml
ПРЕДУПРЕЖДЕНИЕ: Параметры, для которых указан комментарий “# не меняйте данное значение”, изменять нежелательно. В случае изменений сервис может работать некорректно
Следуйте комментариям в файле и инструкции ниже.
2. Перейдите в секцию # настройки подключения к DLP
host:
локальный адрес вашего DLPport:
порт для доступа к DLPfull_path:
и fast_path:
укажите пути для полной и быстрой проверки соответственно3. Перейдите в секцию # настройки подключения к DLP → # заголовки запроса к DLP
Здесь вы можете добавить/отредактировать заголовки запроса к вашему DLP
4. Перейдите в секцию # Настройка gRPC сервера
ca: путь_к_вашему_сертификату_DION.pem
cert: путь_к_вашему_сертификату_DION.crt
key: путь_к_вашему_ключу_DION.key
5. Сохраните изменения в файле
Используйте команду:
ctrl+O ctrl+X
в Nano6. Запустите сервис
systemctl start dion-dlp-adapter
7. Убедитесь, что сервис запущен без ошибок
systemctl status dion-dlp-adapter
8. Дополнительно следует проверить логи на отсутствие ошибок
tail -f /var/log/syslog | grep dion-dlp-adapter
или journalctl -u dion-hls-converter -n 20
Если сервис не запускается, обратитесь к вашей аккаунт-команде за помощью в настройке.
Если все настроено корректно и верно прописаны DNS записи, при переходе в браузере на video.dion.vc пользователь попадает на гибрид — локальный экземпляр видео-портала.
В нем недоступны облачные записи и файлы.
Можно полноценно пользоваться порталом — работают все разделы, ссылки, можно загрузить видео-файл.
При создании записи в гибридной конференции, она отображается на портале.
1. Ошибки в логах сервиса
2. Сервис не запускается