В результате выполнения шагов данного руководства ожидается, что:
Архитектура DION предусматривает возможность переноса части компонентов, отвечающих за обработку медиа-трафика и создание/хранение записей конференции, на площадку организации. Такие компоненты называются гибридными узлами (hybrid node). Наличие гибридных узлов позволяет проводить конференции в защищенном контуре, не передавая медиа-трафик в облако DION.
В гибридном сценарии связь гибридных узлов с облаком DION является обязательным условием для работы конференций, так как в облако передаются сигнальная информация и управляющие команды.
Все гибридные компоненты, доступные к установке, можно разделить на группы по функциональному назначению:
В данном руководстве рассмотрена установка:
- служебных сервисов,
- сервисов проведения конференций,
- сервисов проведения записи.
Сервисы конференций и записи DION, вынесенные в гибридную архитектуру, представлены на схеме зеленым цветом:
Наименование компонента | Описание компонента |
---|---|
MEDIA (SFU + Audiohub) | Компонент, отвечающий за обработку аудио и видео-потоков. |
Recorder, Record Converter, Record delivery | Компоненты, отвечающие за создание, конвертацию и скачивание пользователями видеозаписей конференций. Рекомендуется размещение на одном хосте. |
TURN | Компонент, отвечающий за подключение внешних пользователей ко внутренним медиа-серверам через NAT. |
Dion Proxy | Компонент, отвечающий за обнаружение гибридных узлов (hybrid node) облаком DION. |
KMS | Компонент, отвечающий за хранение секрета для шифрования записей конференции при хранении. |
Компоненты могут быть дублированы с целью обеспечения отказоустойчивости и масштабирования.
Прежде, чем перейти к установке пакетов и редактированию конфигурационных файлов, выполните следующие шаги:
Во время установки гибридных узлов (hybrid node) необходим доступ в репозиторий операционной системы для установки необходимых зависимостей. При отсутствии доступа к публичному репозиторию некоторые пакеты не будут установлены корректно.
Скачайте образы в виде deb- (или rpm-) пакетов и образов контейнеров в следующем составе:
Для проведения конференций в контуре предприятия:
Сервис dion-proxy:
dion-proxy.deb
Сервис MEDIA:
dion-sfu.deb
dion-audiohub.deb
Сервис TURN:
coturn.deb
Для сервиса записи, шифрования и хранения записей конференций:
Сервис Recorder:
recorder.deb
vscreen\_transcoder.tar
Сервис Record Delivery:
dion-record-delivery.deb
Сервис Record Converter:
dion-record-converter.deb
Сервис KMS (может быть установлен на любой из VM):
kms.deb
s3\_demo\_storage.zip
(содержит три файла: readme
, docker.image
, docker-compose.yml
)
Также передайте белые адреса будущих серверов dion-proxy вашей аккаунт-команде или службе поддержки пользователей (support@diongo.ru) и запросите в ответ сертификаты, выпущенные для вашей организации.
Для выдачи сертификатов нам необходимо получить от вас белые адреса серверов dion-proxy.
Если серверов каждого типа несколько, укажите адрес для каждого из них.
Вам должны быть предоставлены следующие файлы:
crt
и key
) с ограниченным сроком действия.pem
) с ограниченным сроком действия.org_id.txt
.ID организации можно также посмотреть и скопировать в административной панели DION.
Примеры в данном разделе приведены для ОС Ubuntu.
Если в процессе установки и конфигурации возникнут ошибки, рекомендуем воспользоваться руководством по устранению неисправностей в гибридном DION.
Во время установки гибридных узлов (hybrid node) необходим доступ в репозиторий операционной системы для установки необходимых зависимостей. При отсутствии доступа к публичному репозиторию некоторые пакеты не будут установлены корректно.
Выполните следующие действия:
1. Перенесите образы на соответствующие серверы/виртуальные машины.
2. Перенесите полученные файлы (txt
и сертификаты) на каждый из серверов/виртуальных машин.
3. Установите deb
-пакеты:
a. Выполните обновление репозиториев:
sudo apt update
sudo apt upgrade
b. Запустите установку пакета с помощью менеджера пакетов, например apt
:
sudo apt install -f {путь к файлу}
4. Загрузите образ контейнера vscreen_transcoder.tar
в Docker на машине, где будет установлен Recorder.
На машине предварительно должен быть установлен Docker. Для установки рекомендуем воспользоваться официальной инструкцией.
sudo docker load -i {путь к образу vscreen_transcoder.tar}
5. Установите ffmpeg
на машине, где будет установлен Record Converter:
sudo apt install ffmpeg
Если при установке TURN возникла ошибка:
The following packages have unmet dependencies:
coturn : Depends: libssl1.1 (>= 1.1.0) but it is not installable
**E: **Unable to correct problems, you have held broken packages.
выполните следующие команды и повторите установку:
echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list
sudo apt-get update
sudo apt-get install libssl1.1
Если вы не планируете использовать сервис записи конференций, пропустите эту секцию и переходите к разделу Редактирование конфигурационных файлов DION.
⚠️ Наличие хранилища S3 является обязательным требованием для проведения записи конференций в гибридной системе.
Предполагается, что в вашей организации существует хранилище S3, которое может быть использовано DION для хранения аудио и видео записей конференций.
Обратите внимание на то, что в конфигурационных файлах DION указываются IP-адрес/имя хоста S3 и порт доступа, имя
bucket
(директория для хранения записей), параaccess-key
иsecret-key
.
Мы рекомендуем создать или получитьbucket
, а также паруaccess-key
иsecret-key
для доступа на S3 хранилище заблаговременно.
Для пилотной инсталляции вы можете запросить демо-образ S3 у вашей аккаунт-команды.
Демо-образ не подходит для продуктивной инсталляции, так как не поддерживает отказоустойчивость.
Рекомендуем установить
minio
на отдельной VM.Для установки на машине требуются
docker
иdocker-compose
.Если произошла перезагрузка и демо-S3 не стартовал автоматически, выполните шаги 4 и 5 инструкции ниже, чтобы запустить сервис заново.
Чтобы развернуть демо-образ, выполните следующее:
1. Распакуйте полученный архив на VM. Архив содержит docker-образ minio
, docker-compose.yml
и readme.md
.
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
либо (для docker-compose v1
):
docker-compose up -d
6. Перейдите в веб-консоль minio
по адресуhttp://{IP выбранной VM}:9000
.
7. В веб-консоли создайте новый bucket
и пару access-key
и secret key
. Сохраните имя bucket
и ключи.
⚠️ Сохраните ключи сразу же в процессе создания, позже посмотреть их невозможно.
Примеры в данном разделе приведены для ОС Ubuntu.
Для редактирования конфигурационных файлов и перезапуска сервисов вам потребуются root-права.
При недостатке прав используйте
sudo
перед каждой командой или введитеsudo su
один раз в начале работы.Если в системе несколько экземпляров гибридных узлов (hybrid node), настройки нужно выполнить на каждом экземпляре.
На узле с установленным пакетом dion-proxy.deb
откройте CLI и выполните следующие действия:
1. Откройте на редактирование конфигурационный файл /etc/dion/proxy.yaml
:
sudo nano /etc/dion/proxy.yaml
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте инструкции и комментариям ниже.
При редактировании файла очень важно сохранить исходную табуляцию!
2. Для переменной organizationID
укажите ID вашей организации в кавычках. Его можно взять в файле org_id.txt
, который вы получили.
organizationID: "a2ae8888-b888-4efe-eaee-cf865535555”
Не забудьте поставить пробел между двоеточием и кавычками!
3. Укажите признак дата-центра в переменной logicalDatacenter
. Если используется один дата-центр, признак можно не указывать.
4. В секции grpcOuter
выполните следующие действия:
host
укажите локальный IP-адрес этого узла dion-proxy
, например: 192.168.1.1
. Это адрес, по которому dion-proxy
должен быть доступен для других компонентов гибридной системы.host: "192.168.1.1"
publicHost
укажите внешний белый IP-адрес этого узла сервиса dion-proxy
, например: 92.68.1.1
. Это адрес, по которому dion-proxy
должен быть доступен для облака DION.publicHost: "92.168.1.1"
caCertFile: "путь_к_вашему_сертификату.pem"
serverCertFile: "путь_к_вашему_сертификату.crt"
serverKeyFile: "путь_к_вашему_ключу.key"
5. В секции grpcInner
для переменной host
укажите локальный IP-адрес этого узла dion-proxy
, например: 192.168.1.1
. Это адрес, по которому dion-proxy
должен быть доступен для других компонентов гибридной системы.
host: "192.168.1.1"
6. В секции cloudGateway
для соответствующих переменных укажите полные пути к сертификатам, которые вы загрузили на устройство на этапе подготовки в следующем виде:
⚠️ Имена переменных в этой секции отличаются от секции
grpcOuter
. Не копируйте секцию целиком!
caCertClientsGWFile: "путь_к_вашему_сертификату.pem"
clientCertFile: "путь_к_вашему_сертификату.crt"
clientKeyFile: "путь_к_вашему_ключу.key"
7. Перейдите в секцию # адреса нод DION в контуре организации
и выполните конфигурацию узлов в системе.
В секции allProxyGrpcOuterAddresses
перечислите публичные адреса всех узлов dion-proxy
в вашем дата-центре. Если в системе развернут один узел dion-proxy
, укажите его публичный адрес.
- host: 18.6.14.5
port: 5443
# если есть другие dion-proxy, раскомментируйте блок ниже и внесите публичный адрес
- host: 18.6.14.6
port: 5443
Если в системе развернуто несколько узлов
dion-proxy
, порядок следования адресов в секцииallProxyGrpcOuterAddresses:
во всех конфигурационных файлах должен быть абсолютно одинаковым. Если установлено дваdion-proxy
, в файлахproxy.yaml
на обеих VM в этой секции должно быть два адреса, следующих в одинаковом порядке.
В секции turns
укажите параметры подключения узлов TURN
.
Для переменной host
укажите адрес, который в конфигурационном файле TURN
указан в поле web-admin-ip
.
При заполнении обратите внимание на формат заполнения переменной addresses
секции meta
:
TURN
работает только по порту 3478 UDP:- addresses: turn:внешний_IP_адрес:3478
TURN
работает только по портам 3478 UDP и 443 TCP:- addresses: turn:внешний_IP_адрес:3478,turn:внешний_IP_адрес:443?transport=tcp
TURN
работает только по порту 443 TCP:⚠️Использование TURN-сервера исключительно с TCP не рекомендуется, поскольку для передачи real-time-трафика (голоса, видео) предпочтительнее использовать UDP. Он обеспечивает низкую задержку и отсутствие буферизации, в то время как TCP добавляет дополнительные накладные расходы, которые могут существенно повлиять на качество real-time-трафика.
- addresses: turn:внешний_IP_адрес:443?transport=tcp
Не убирайте решетку перед полем
addresses
в комментариях, просто используйте комментарии как пример, чтобы заполнить секциюmeta
!
# впишите в переменную host локальный адрес TURN
# пример: -host: 192.168.0.1
- host: 192.168.0.2
healthCheck:
connectionType: tcp
port: 9088
meta:
# впишите публичный адрес TURN в формате, описанном выше
- addresses: turn:18.6.1.1:3478,turn:18.6.1.1:443?transport=tcp
# впишите Turn Secret, который указан в переменной static-auth-secret в конфигурационном файле turnserver.conf
authSecret: banana
# не меняйте данное значение
isTechnical: false
isInnerUse: false
Если вы планируете использовать каскадирование в облако, заполните отдельную секцию конфигурации TURN
.
Конфигурация TURN
в таком случае должна выглядеть так:
turns:
- host: 192.168.0.2
healthCheck:
connectionType: tcp
port: 9088
meta:
# секция для пользовательского трафика
- addresses: turn:18.6.1.1:3478,turn:18.6.1.1::443?transport=tcp
authSecret: banana
isTechnical: false
isInnerUse: false
# секция для каскадирования в облако
- addresses: turn:18.6.1.1:3478,turn:18.6.1.1::443?transport=tcp
authSecret: banana
isTechnical: true
isInnerUse: false
Если в системе развернуто несколько узлов
TURN
, добавьте полную дополнительную секцию, начиная сhost
.
В секциях sfus
и audiohubs
для переменных host
укажите локальные IP-адреса серверов, на которых развернуты соответствующие медиа-компоненты, например: 192.168.1.2
. Порты не меняйте. Если необходимо добавить дополнительные серверы SFU
или Audiohub
, следуйте примеру в комментариях в конфигурационном файле.
Обратите внимание, что адреса сервисов необходимо писать в строке
host
, а не в строке с именем сервиса.
Если вы не планируете разворачивать сервисы записи, не заполняйте эти секции.
В секциях recorders
, recorderConverters
и recorderDeliverys
для переменных host
укажите локальные IP-адреса серверов, на которых развернуты соответствующие компоненты, например: 192.168.1.2
. Порты не меняйте. Если необходимо добавить дополнительные серверы, следуйте примеру в комментариях в конфигурационном файле.
Если вы не планируете разворачивать сервисы SIP, не заполняйте эти секции.
Заполните секции следующим образом:
sipservers:
- host: 192.168.0.14
commandGRPCPort: 9091
healthCheck:
connectionType: http
port: 9092
meta:
# для перенаправления исходящих вызовов через АТС вашей организации измените значение переменной is_outgoing_calls_enabled на true
# для перенаправления потребуется внести соотвествующие изменения в файл organizations.yml и конфигурацию sip server, следуйте инструкции по установке
# при значении false исходящие звонки из конференций совершаются через облачную АТС DION
is_outgoing_calls_enabled: false
organizations:
- "" # Укажите ID вашей организации в кавычках
siptranslators:
- host: 192.168.0.13
commandGRPCPort: 9059
healthCheck:
connectionType: http
port: 8059
transcoderservers:
- host: 192.168.0.12
commandGRPCPort: 9034
healthCheck:
connectionType: http
port: 8034
Перенаправление исходящих вызовов подробно описано в разделе Перенаправление исходящих вызовов через локальную АТС инструкции по установке и конфигурированию гибридных узлов SIP.
Меняйте значение переменной
is_outgoing_calls_enabled
наtrue
, только если вы включили перенаправление в секцииoutgoingCalls
конфигурационного файлаsipserver.yml
и заполнили файлorganizations.yml
.
Настройте параметры логирование следующим образом:
# Логирование в файл и уровень логов
# Уровень логирования:
# -1 = debug (подробные сообщения для отладки)
# 0 = info (обычные информационные сообщения)
# 1 = warn (предупреждения о возможных проблемах)
# Установленный уровень логирования: -1 (debug)
logging:
level: -1
# Запись логов в файл:
# Если параметр "writeToFile" установлен в true, логи будут записываться в файл.
# Важно, чтобы файл журнала был предварительно создан и пользователю "dion"
# были предоставлены права на запись в этот файл.
writeToFile: true
# Путь к файлу логов:
# Укажите путь к файлу, в который будут записываться логи.
# Файл должен существовать, а у пользователя "dion" должны быть права на запись.
# Пример пути: "/var/log/dion/proxy.log"
logsFilePath: "/var/log/dion/proxy.log"
Дополнительную информацию см. в разделе Настройка ротации логов с помощью Logrotate.
Чтобы исключить дублирование записей логов в общий системный файл
/var/log/syslog
, отредактируйте конфигурационный файл сервисаrsyslog
:sudo nano /etc/rsyslog.d/50-default.conf
1. В начало файла добавьте строку, которая остановит передачу логов от программы
dion-proxy
вsyslog
:if ($programname == 'dion-proxy') then stop
2. Сохраните изменения в файле и закройте редактор. После редактирования конфигурации перезапустите службу
rsyslog
, чтобы изменения вступили в силу:sudo service rsyslog restart
8. Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
9. Перезапустите сервис:
systemctl stop dion-proxy
systemctl start dion-proxy
10. Убедитесь, что сервис запущен без ошибок и находится в статусе active (running)
:
systemctl status dion-proxy
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
Скачайте архив Docker-образа с TURN для настройки на сервере. Архив содержит три файла:
docker-compose.yaml
— файл с параметрами запуска контейнераturnserver.conf
— конфигурационный файл TURNcoturn_XXX
— образ для запуска контейнера (вместо XXX указана версия Coturn и расширение архива, которое может отсутствовать)1. Создайте директорию для размещения содержимого архива на целевой виртуальной машине:
mkdir -p /app/dion/coturn/certs
2. Распакуйте полученный архив в созданную директорию /app/dion/coturn/
.
3. В директорию /app/dion/coturn/certs/
скопируйте сертификат и ключ для вашей организации (crt
и key
), предоставленные командой DION.
4. Установите docker
и docker-compose
. Рекомендуем воспользоваться официальной инструкцией на сайте Docker.
5. Загрузите образ из архива в локальный реестр, выполнив команду:
docker load -i /app/dion/coturn/coturn_XXX
6. Откройте на редактирование конфигурационный файл docker-compose.yaml
:
sudo nano /app/dion/coturn/docker-compose.yaml
a. Убедитесь, что имя загруженного образа соответствует образу, указанному в переменной image
, и, при необходимости, отредактируйте файл.
Для вывода списка загруженных образов воспользуйтесь командой docker images
:
b. Отредактируйте переменную image
в соответствии с выводом команды docker images
. Укажите имя Repository
и TAG
через двоеточие.
version: "2.2"
services:
coturn:
image: registry.onprem.dion.vc/external/coturn:4.6.2-r11-alpine
restart: unless-stopped
network_mode: "host"
volumes:
- ./turnserver.conf:/etc/turnserver.conf:ro
- ./certs:/app/certs:ro
logging:
driver: "json-file"
options:
max-size: "20m"
max-file: "3"
labels: "gtlabel"
labels:
gtlabel: "coturn"
c. Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
7. Откройте на редактирование конфигурационный файл turnserver.conf
:
sudo nano /app/dion/coturn/turnserver.conf
a. Убедитесь, что значение static-auth-secret
совпадает с переменной authSecret
секции TURN
> meta
конфигурационного файла proxy.yaml
и, при необходимости, отредактируйте файл.
web-admin
web-admin-ip=*ЛОКАЛЬНЫЙ_АДРЕС_TURN_СЕРВЕРА*
web-admin-port=9088
listening-port=3478
#Если планируете использовать TURN на 443 порту
tls-listening-port=443
cert=/app/certs/*ИМЯ_СЕРТИФИКАТА*.crt
pkey=/app/certs/*ИМЯ_КЛЮЧА*.key
external-ip=*ВНЕШНИЙ_АДРЕС_TURN_СЕРВЕРА*
min-port=49152
max-port=65535
verbose
fingerprint
use-auth-secret
static-auth-secret=*СТРОКА*
realm=turn
dh2066
simple-log
new-log-timestamp
log-file=stdout
b. Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
8. Запустите контейнер командой:
docker compose -f /app/dion/coturn/docker-compose.yaml up -d
В системах Debian или Astra может использоваться docker-compose v1
и команда выше может не сработать. В таком случае используйте команду:
docker-compose -f /app/dion/coturn/docker-compose.yaml up -d
9. Выведите список запущенных контейнеров с помощью команды docker ps
:
10. Проверьте работоспособность сервера TURN по инструкции.
Если контейнер не запускается, направьте запрос в поддержку на support@diongo.ru.
deb
или rpm
На узле с установленным пакетом turn.deb
, откройте CLI и выполните следующие действия:
1. Откройте на редактирование конфигурационный файл /etc/turnserver.conf
:
sudo nano /etc/turnserver.conf
2. Добавьте в начало файла следующие строки:
listening-port=3478
fingerprint
use-auth-secret
realm=turn
При необходимости раскомментируйте строку для указания файла журнала.
Файл журнала должен быть создан заранее, и у пользователя turnserver
должны быть права на запись:
log-file=/var/log/dion/turn.log
Добавьте или раскомментируйте строку для включения временных меток в журнал:
new-log-timestamp
Вы можете выбрать между упрощенным или расширенным форматами ведения логов:
simple-log
включает упрощенный формат логирования, без избыточной информации.verbose
включает подробное логирование, которое может быть полезно для диагностики.Дополнительную информацию см. в разделе Настройка ротации логов с помощью Logrotate.
Чтобы исключить дублирование записей логов в общий системный файл
/var/log/syslog
, отредактируйте конфигурационный файл сервисаrsyslog
:sudo nano /etc/rsyslog.d/50-default.conf
1. В начало файла добавьте строку, которая остановит передачу логов от программы
dion-sfu
вsyslog
:if ($programname == 'dion-sfu') then stop
2. Сохраните изменения в файле и закройте редактор. После редактирования конфигурации перезапустите службу
rsyslog
, чтобы изменения вступили в силу:sudo service rsyslog restart
Добавьте в файл следующие строки:
web-admin
web-admin-ip=xx.xx.xx.xx
eb-admin-port=9088
Где xx.xx.xx.xx
– это локальный IP-адрес сервера TURN
, например: 192.168.1.1
.
4. Добавьте в файл строку:
external-ip=xx.xx.xx.xx
Где xx.xx.xx.xx
– это внешний IP-адрес сервера TURN
, например: 92.168.1.1
.
Если TURN
имеет два сетевых интерфейса, вместо external-ip
укажите дополнительные параметры:
listening-ip=xx.xx.xx.xx
– внешний адрес, на котором TURN
слушает пользовательские запросы из Интернета.relay-ip=xx.xx.xx.xx
– адрес внутреннего интерфейса, который перенаправляет запросы в сторону гибридных сервисов DION.5. Добавьте в файл строку:
static-auth-secret=xxx
Где XXX
– это строковое значение ключа TURN
. Значение может быть произвольным, но должно совпадать с указанным в конфигурационном файле proxy.yaml
(см. раздел Сервис Dion-Proxy).
Если TURN
должен работать по 443 TCP, выполните следующие действия:
/bin
с заменой расширения на pem
:cp <исходный путь>.key /bin/<имя файла ключа>.pem
cp <исходный путь>.crt /bin/<имя файла сертификата>.pem
turnserver.conf
следующие строки:tls-listening-port=443
cert=/bin/путь_к_вашему_сертификату.pem
pkey=/bin/путь_к_вашему_ключу.pem
dh2066
Важно поместить сертификаты именно в каталог /bin
и изменить расширение файлов key
и crt
на pem
.
Замену расширения можно выполнить командой mv
:
mv /путь_к_вашему_сертификату.crt /путь_к_вашему_сертификату.pem
6. Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
7. Выполните перезагрузку сервиса:
rm /lib/systemd/system/coturn.service
systemctl daemon-reload
8. Откройте на редактирование файл /etc/default/coturn
и выполните следующие действия:
a. Раскомментируйте строку:
TURNSERVER_ENABLED=1
b. Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
9. Перезапустите сервис:
systemctl stop coturn
systemctl start coturn
10. Убедитесь, что сервис запущен без ошибок и находится в статусе active (running)
:
systemctl status coturn
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
На узле с установленным пакетом sfu.deb
, откройте CLI и выполните следующие действия:
1. Откройте на редактирование конфигурационный файл /etc/dion/sfu.yaml
:
sudo nano /etc/dion/sfu.yaml
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте инструкции и комментариям ниже.
При редактировании файла очень важно сохранить исходную табуляцию!
2. Перейдите в секцию mediacontrollerGateway
и для переменной host
вместо URL укажите IP-адрес узла dion-proxy
, например: 192.168.1.1
:
- host: 192.168.1.1
Если в системе несколько узлов dion-proxy
, укажите все в виде списка:
- host: 192.168.1.1
port: 9764
- host: 192.168.1.2
port: 9764
3. Настройте параметры логирование следующим образом:
# Логирование в файл и уровень логов
# Уровень логирования:
# -1 = debug (подробные сообщения для отладки)
# 0 = info (обычные информационные сообщения)
# 1 = err (предупреждения о возможных ошибках)
# Установленный уровень логирования: 1 (err)
log:
level: 1
# Запись логов в файл:
# Если параметр "writeToFile" установлен в true, логи будут записываться в файл.
# Важно, чтобы файл журнала был предварительно создан и пользователю "dion"
# были предоставлены права на запись в этот файл.
writeToFile: true
# Путь к файлу логов:
# Укажите путь к файлу, в который будут записываться логи.
# Файл должен существовать, а у пользователя "dion" должны быть права на запись.
# Пример пути: /var/log/dion/sfu.log
filePath: /var/log/dion/sfu.log
Дополнительную информацию см. в разделе Настройка ротации логов с помощью Logrotate.
Чтобы исключить дублирование записей логов в общий системный файл
/var/log/syslog
, отредактируйте конфигурационный файл сервисаrsyslog
:sudo nano /etc/rsyslog.d/50-default.conf
1. В начало файла добавьте строку, которая остановит передачу логов от программы
dion-sfu
вsyslog
:if ($programname == 'dion-sfu') then stop
2. Сохраните изменения в файле и закройте редактор. После редактирования конфигурации перезапустите службу
rsyslog
, чтобы изменения вступили в силу:sudo service rsyslog restart
4. Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
5. Перезапустите сервис:
systemctl stop dion-sfu
systemctl start dion-sfu
6. Убедитесь, что сервис запущен без ошибок и находится в статусе active (running)
:
systemctl status dion-sfu
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
На узле с установленным пакетом audiohub.deb
откройте CLI и выполните следующие действия:
1. Откройте на редактирование конфигурационный файл /etc/dion/audiohub.conf
:
sudo nano /etc/dion/audiohub.conf
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте инструкции и комментариям ниже.
По умолчанию в конфигурационном файле указаны следующие пути:
AUDIO\_RECORDS\_DIR\_PATH=/app/dion/records
SPEECH\_RECORDS\_DIR\_PATH=/app/dion/speech
После установки проверьте наличие этих каталогов. Если их нет, создайте их и выдайте на них права пользователю
dion
(от его имени работает службаdion-audiohub
) для хранения временных файлов записи.Чтобы создать эти каталоги и выдать на них права пользователю
dion
, выполните команды:sudo mkdir -p /app/dion/speech /app/dion/records/ sudo chown dion:dion /app/dion/speech/ /app/dion/records/
2. Для переменной NET_INTERFACE_NAME
укажите имя активного сетевого интерфейса сервера, например: eth0
. Чтобы узнать имя интерфейса, используйте команду ip link
:
NET_INTERFACE_NAME=eth0
3. Для переменной GW_ADDRESSES
перечислите адреса узлов Proxy
. Для каждого адреса укажите порт 9764 через двоеточие:
GW_ADDRESSES=192.168.1.1:9764
Если адресов несколько, перечислите через запятую без пробелов:
GW_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
4. Для переменной ORGANIZATION
укажите ID вашей организации без кавычек. Его можно взять в файле org_id.txt
, который вы получили.
ORGANIZATION=a2ae8888-b888-4efe-eaee-cf865535555
В шагах 5 и 6 описаны настройки параметров, позволяющих включить аудиозапись конференций. Обязательным условием для этого является наличие хранилища S3.
По умолчанию аудиозаписи хранятся в S3 в незашифрованном виде. Для поддержки шифрования необходим сервис DION-KMS.
Если вы не планируете использовать аудиозапись конференций в гибридной системе, не заполняйте эти строки. При попытке создать аудиозапись пользователю отобразится сообщение об ошибке.
5. Чтобы включить шифрование аудиозаписей, измените значение RECORD_ENCRYPTION_ENABLED
на true
и укажите адреса всех узлов KMS
для переменной KMS_ADDRESSES
. Адреса указываются через запятую, порт 9135 указывается через двоеточие для каждого адреса. Если шифрование не требуется, оставьте значения переменных по умолчанию.
RECORD_ENCRYPTION_ENABLED=true
KMS_ADDRESSES=192.168.1.3:9135,192.168.1.4:9135
6. В секции #S3
выполните следующие действия:
S3_ENABLED
значение true
:S3_ENABLED=true
S3_API_URL
укажите локальный адрес сервера (например: 192.168.1.3
), на котором работает S3, и порт (9000 по умолчанию):S3_API_URL=192.168.1.3:9000
minio
:S3_ACCESS_KEY={access_key}
S3_SECRET_KEY={secret}
S3_BUCKET_NAME={name}
Имя
bucket
должно совпадать в конфигурационных файлах сервисовaudiohub
,recorder
,record-delivery
,record-converter
.
7. Настройте параметры логирование следующим образом:
# Логирование в файл и уровень логов
# Уровень логирования:
# -1 = debug (подробные сообщения для отладки)
# 0 = info (обычные информационные сообщения)
# 1 = err (предупреждения о возможных ошибках)
# Установленный уровень логирования: 1 (err)
LOG_LEVEL=1
# Запись логов в файл:
# Если параметр "LOG_WRITE_TO_FILE" установлен в true, логи будут записываться в файл.
# Важно, чтобы файл журнала был предварительно создан и пользователю "dion"
# были предоставлены права на запись в этот файл.
LOG_WRITE_TO_FILE=true
# Путь к файлу логов:
# Укажите путь к файлу, в который будут записываться логи.
# Файл должен существовать, а у пользователя "dion" должны быть права на запись.
# Пример пути: /var/log/dion/audiohub.log
LOG_FILE_PATH=/var/log/dion/audiohub.log
Дополнительную информацию см. в разделе Настройка ротации логов с помощью Logrotate.
Чтобы исключить дублирование записей логов в общий системный файл
/var/log/syslog
, отредактируйте конфигурационный файл сервисаrsyslog
:sudo nano /etc/rsyslog.d/50-default.conf
1. В начало файла добавьте строку, которая остановит передачу логов от программы
dion-sfu
вsyslog
:if ($programname == 'dion-sfu') then stop
2. Сохраните изменения в файле и закройте редактор. После редактирования конфигурации перезапустите службу
rsyslog
, чтобы изменения вступили в силу:sudo service rsyslog restart
8. Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
9. Перезапустите сервис:
systemctl stop dion-audiohub
systemctl start dion-audiohub
10. Убедитесь, что сервис запущен без ошибок и находится в статусе active (running)
:
systemctl status dion-audiohub
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
⚠️ После конфигурирования сервисов и настроек административных параметров выполните проверку работоспособности сервисов.
⚠️ Перед тем, как приступить к конфигурированию и запуску сервисов записи конференций, убедитесь что хранилище S3 сконфигурировано и доступно для подключения, в противном случае служба не будет запущена и отобразится сообщение об ошибке.
При расчете сайзинга для сервисов записи, подразумевается, что сервисы
Recorder
,Record Converter
иRecord Delivery
размещаются на одном хосте.
Если вы планируете развернуть несколько узлов KMS, их конфигурационные файлы должны быть идентичны. Используйте одинаковый секрет для шифрования!
На узле с установленным пакетом kms.deb
, откройте CLI и выполните следующие действия:
1. Откройте на редактирование конфигурационный файл /etc/dion/kms.yaml
:
sudo nano /etc/dion/kms.yaml
2. Для переменной recordsMasterKeySecret
укажите произвольную строку. Эта строка будет использоваться при генерации ключа шифрования для хранения записей конференций в S3. Строка указывается без кавычек через пробел после двоеточия, например:
recordsMasterKeySecret: averysecretstring
3. Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
4. Перезапустите сервис:
systemctl stop dion-kms
systemctl start dion-kms
Убедитесь, что сервис запущен без ошибок и находится в статусе active (running)
:
systemctl status dion-kms
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
В результате запуска правильно настроенного сервиса
Recorder
станет возможна запись конференции с включенным параметром безопасности On-Premises с сохранением файла записи форматаts
в S3-бакете.
Прежде чем приступить к конфигурированию убедитесь, что на узле с установленным пакетом recorder.deb
установлен docker
. Затем выполните следующие действия:
1. Загрузите в docker
образ контейнера vscreen_transcoder.tar
с помощью команды:
sudo docker load -i {путь к образу vscreen_transcoder.tar}
2. Выполните проверку:
docker image ls
Затем откройте CLI и выполните следующие действия:
1. Откройте на редактирование конфигурационный файл /etc/dion/recorder.conf
:
sudo nano /etc/dion/recorder.conf
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте инструкции и комментариям ниже.
2. Для переменной NET_INTERFACE_NAME
укажите имя активного сетевого интерфейса сервера, например: eth0
. Чтобы узнать имя интерфейса, используйте команду ip link
:
NET_INTERFACE_NAME=eth0
3. Для переменной CAPI_GW_ADDRESSES
укажите локальный адрес сервиса dion-proxy
и через двоеточие порт 9764 для каждого адреса:
CAPI_GW_ADDRESSES=192.168.1.1:9764
Если адресов несколько, перечислите через запятую без пробелов:
CAPI_GW_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
4. Для переменной MEDIA_CONTROLLER_ADDRESSES
укажите локальный адрес сервиса dion-proxy
и через двоеточие порт 9764 для каждого адреса:
MEDIA_CONTROLLER_ADDRESSES=192.168.1.1:9764
Если их несколько, перечислите через запятую без пробелов:
MEDIA_CONTROLLER_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
5. Для переменной USERS_SERVICE_GW_ADDRESSES
укажите локальный адрес сервиса dion-proxy
и через двоеточие порт 9764 для каждого адреса:
USERS_SERVICE_GW_ADDRESSES=192.168.1.1:9764
Если их несколько, перечислите через запятую без пробелов:
USERS_SERVICE_GW_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
6. Перейдите в секцию #S3
.
API_URL
укажите локальный адрес сервера (например: 192.168.1.3
), на котором работает S3, и порт (9000 по умолчанию):API_URL=192.168.1.3:9000
minio
:ACCESS_KEY={access_key}
SECRET_KEY={secret}
BUCKET_NAME={name}
Имя
bucket
должно совпадать в конфигурационных файлах сервисовaudiohub
,recorder
,record-delivery
,record-converter
.
7. Для переменной ORGANIZATION
укажите ID вашей организации без кавычек. Его можно взять в файле org_id.txt
, который вы получили.
ORGANIZATION=a2ae8888-b888-4efe-eaee-cf865535555
В шаге 8 описаны настройки параметров, позволяющих включить шифрование записей конференций при хранении. По умолчанию записи хранятся в S3 в незашифрованном виде. Для поддержки шифрования необходим сервис DION-KMS.
8. Чтобы включить шифрование записей, измените значение RECORD_ENCRYPTION_ENABLED
на true
и укажите адреса всех узлов KMS
для переменной KMS_ADDRESSES
. Адреса указываются через запятую, порт 9135 указывается через двоеточие для каждого адреса. Если шифрование не требуется, оставьте значения переменных по умолчанию.
RECORD_ENCRYPTION_ENABLED=true
KMS_ADDRESSES=192.168.1.3:9135,192.168.1.4:9135
9. Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
10. Перезапустите сервис:
systemctl stop dion-recorder
systemctl start dion-recorder
11. Убедитесь, что сервис запущен без ошибок и находится в статусе active (running)
:
systemctl status dion-recorder
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
В результате правильно настроенного сервиса
Record Converter
, после остановки записи конференции, помимо файла записи форматаts
, будет создан файл с расширениемmp4
.
Прежде чем приступить к конфигурированию, на узле с установленным пакетом dion-record-converter.deb
установите пакетffmpeg
:
sudo apt install ffmpeg
Затем откройте CLI и выполните следующие действия:
1. Откройте на редактирование конфигурационный файл etc/dion/record-converter.conf
:
sudo nano etc/dion/record-converter.conf
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте инструкции и комментариям ниже.
2. Для переменной NET_INTERFACE_NAME
укажите имя активного сетевого интерфейса сервера, например: eth0
. Чтобы узнать имя интерфейса, используйте команду ip link
:
NET_INTERFACE_NAME=eth0
3. Для переменной CAPI_GW_ADDRESSES
укажите локальный адрес сервиса dion-proxy
и через двоеточие порт 9764 для каждого адреса:
CAPI_GW_ADDRESSES=192.168.1.1:9764
Если адресов несколько, перечислите через запятую без пробелов:
CAPI_GW_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
4. Перейдите в секцию #S3
.
API_URL
укажите локальный адрес сервера (например: 192.168.1.3
), на котором работает S3, и порт (9000 по умолчанию):API_URL=192.168.1.3:9000
minio
:ACCESS_KEY={access_key}
SECRET_KEY={secret}
BUCKET_NAME={name}
Имя
bucket
должно совпадать в конфигурационных файлах сервисовaudiohub
,recorder
,record-delivery
,record-converter
.
5. Для переменной ORGANIZATION
укажите ID вашей организации без кавычек. Его можно взять в файле org_id.txt
, который вы получили.
ORGANIZATION=a2ae8888-b888-4efe-eaee-cf865535555
В шаге 6 описаны настройки параметров, позволяющих включить шифрование записей конференций при хранении. По умолчанию записи хранятся в S3 в незашифрованном виде. Для поддержки шифрования необходим сервис DION-KMS.
6. Чтобы включить шифрование записей, измените значение SUPPORT_ENCRYPTED_RECORDS
на true
и укажите адреса всех узлов KMS
для переменной KMS_ADDRESSES
. Адреса указываются через запятую, порт 9135 указывается через двоеточие для каждого адреса. Если шифрование не требуется, оставьте значения переменных по умолчанию.
SUPPORT_ENCRYPTED_RECORDS=true
KMS_ADDRESSES=192.168.1.3:9135,192.168.1.4:9135
7. Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
8. Перезапустите сервис:
systemctl stop dion-record-converter
systemctl start dion-record-converter
9. Убедитесь, что сервис запущен без ошибок и находится в статусе active (running)
:
systemctl status dion-record-converter
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
Если сервисы
Recorder
,Record Converter
иRecord Delivery
настроены корректно и запущены, то при окончании записи конференции, на электронную почту пользователя придёт письмо со ссылкой на скачивание файла записи.
На узле с установленным пакетом dion-record-delivery.deb
откройте CLI и выполните следующие действия:
1. Откройте на редактирование конфигурационный файл /etc/dion/record-delivery.conf
:
sudo nano /etc/dion/record-delivery.conf
Все переменные, требующие редактирования, находятся в первой части файла. Следуйте инструкции и комментариям ниже.
2. Переменная MAX_USER_DOWNLOADS_COUNT_PER_MINUTE
устанавливает ограничение на количество скачиваний одним пользователем в минуту. Если необходимо, укажите для неё значение:
MAX_USER_DOWNLOADS_COUNT_PER_MINUTE=3
Переменная TRUSTED_IP_SUBNETS
перечисляет подсети, для которых это ограничение не действует. Можно оставить значение для этой переменной пустым:
TRUSTED_IP_SUBNETS=
3. Для переменной NET_INTERFACE_NAME
укажите имя активного сетевого интерфейса сервера, например: eth0
. Чтобы узнать имя интерфейса, используйте команду ip link
:
NET_INTERFACE_NAME=eth0
4. Укажите полные пути к сертификатам. Здесь необходимо использовать сертификаты, выпущенные вашим доверенным CA. Если использовать сертификаты, предоставленные DION, пользователи получат предупреждение о потенциальной опасности сайта при скачивании видео:
HTTP_CERT_FILE_PATH=путь_к_вашему_сертификату.crt
HTTP_KEY_FILE_PATH=путь_к_вашему_ключу.key
5. Для переменной CAPI_GW_ADDRESSES
укажите локальный адрес сервиса dion-proxy
и через двоеточие порт 9764 для каждого адреса:
CAPI_GW_ADDRESSES=192.168.1.1:9764
Если адресов несколько, перечислите через запятую без пробелов:
CAPI_GW_ADDRESSES=192.168.1.1:9764,192.168.1.2:9764
6. Перейдите в секцию #S3
.
API_URL
укажите локальный адрес сервера (например: 192.168.1.3
), на котором работает S3, и порт (9000 по умолчанию):API_URL=192.168.1.3:9000
minio
:ACCESS_KEY={access_key}
SECRET_KEY={secret}
BUCKET_NAME={name}
Имя
bucket
должно совпадать в конфигурационных файлах сервисовaudiohub
,recorder
,record-delivery
,record-converter
.
7. Для переменной ORGANIZATION
укажите ID вашей организации без кавычек. Его можно взять в файле org_id.txt
, который вы получили.
ORGANIZATION=a2ae8888-b888-4efe-eaee-cf865535555
В шаге 8 описаны настройки параметров, позволяющих включить шифрование записей конференций при хранении. По умолчанию записи хранятся в S3 в незашифрованном виде. Для поддержки шифрования необходим сервис DION-KMS.
8. Чтобы включить шифрование записей, измените значение SUPPORT_ENCRYPTED_RECORDS
на true
и укажите адреса всех узлов KMS
для переменной KMS_ADDRESSES
. Адреса указываются через запятую, порт 9135 указывается через двоеточие для каждого адреса. Если шифрование не требуется, оставьте значения переменных по умолчанию.
SUPPORT_ENCRYPTED_RECORDS=true
KMS_ADDRESSES=192.168.1.3:9135,192.168.1.4:9135
9. Сохраните изменения в файле: ctrl+O ctrl+X в Nano.
10. Перезапустите сервис:
systemctl stop dion-record-delivery
systemctl start dion-record-delivery
11. Убедитесь, что сервис запущен без ошибок и находится в статусе active (running)
:
systemctl status dion-record-delivery
Если сервис не запускается, обратитесь за помощью к вашей аккаунт-команде.
⚠️ После конфигурирования сервисов и настроек административных параметров выполните проверку работоспособности сервисов.
Чтобы гибридный DION начал работу, необходимо не только установить и сконфигурировать гибридные узлы (hybrid node), но и выполнить соответствующие настройки в административной панели DION.
Для запуска гибридного режима, в административной панели перейдите в настройки гибридных сервисов:
3. В разделе Конференции включите параметр Возможность переноса конференции в On-Premises.
4. После этого в Личном Кабинете пользователя в настройках безопасности конференции можно будет выбрать, где проводить конференцию:
Остальные параметры можно настроить на ваше усмотрение.
Параметр Новые конференции создаются On-Premises позволяет управлять созданием комнат по умолчанию для пользователей. Если флажки сняты, комнаты пользователей создаются в облаке. Если флажки установлены, конференции создаются на гибридных ресурсах. Этот параметр не влияет на уже созданные конференции.
Поведение системы в зависимости от положения Возможность переноса конференции в On-Premises и Новые конференции создаются On-Premises показано в таблице:
Возможность переноса конференции в On-Premises | Новые конференции создаются On-Premises | Результат |
---|---|---|
Выкл | Выкл | Все новые конференции создаются в облаке, пользователь не может перенести их на площадку организации. |
Вкл | Выкл | Все новые конференции создаются в облаке, пользователь может перенести их на площадку организации через свой личный кабинет и настройки конференции. |
Выкл | Вкл | Все новые конференции создаются на площадке организации, пользователь не может перенести их в облако |
Вкл | Вкл | Все новые конференции создаются на площадке организации, пользователь может перенести их в облако через свой личный кабинет и настройки конференции. |
Для подключения внешних пользователей включите параметр Свободный доступ к On-Premises конференциям.
Если сервисы записи установлены:
https://**IP_адрес или FQDN**:443/v1/file
Необходимо вводить адрес именно в указанном выше формате, иначе при попытке сохранить настройки вы получите ошибку.
https://**FQDN**:443/v1/file
При отсутствии в гибридной системе сервисов записи, убедитесь, что в административной панели запись конференций On-Premises отключена. Кнопка записи не будет отображаться пользователю. В противном случае при старте записи пользователю будет отображаться сообщение об ошибке.
После конфигурирования сервисов и настроек административных параметров в настройках безопасности комнаты в DION можно выбрать параметр On-Premises:
Для проверки работоспособности сервисов записи необходимо зайти в гибридную конференцию (отмеченную значком в виде синего щита в интерфейсе) и включить запись.
Для проверки аудиозаписи в настройках конференции в разделе Запись включите параметр Аудиозапись конференции.
Если в процессе записи возникли ошибки или ссылка на скачивание записи не пришла, обратитесь к руководству по устранению неисправностей или к вашей аккаунт-команде за помощью.
Статус регистрации сервисов можно отслеживать в административной панели на вкладке Гибридные сервисы в профиле организации.
При верной конфигурации все сервисы отмечены зеленым цветом.