Перейти к основному контенту

Сжатие видеозаписей RDP сессий: настройка Video-Worker

1. Введение

Начиная с JumpServer V3.0.0, добавлен компонент Video-Worker, основная задача которого — обрабатывать записи, создаваемые компонентами Razor и Lion, и конвертировать их в формат MP4 для удобства аудита.

1.1. Принцип работы

После запуска Video-Worker регистрируется как компонент (аналогично Koko), чтобы получить настройки хранилища записей, куда будет загружаться уже перекодированный MP4-файл.
Если в настройках Lion и Razor включён Video-Worker, то они загружают записи напрямую в этот компонент для перекодирования.
После успешного перекодирования файл загружается в указанное хранилище записей.

Если Lion или Razor не могут загрузить запись в Video-Worker, то они откатываются к загрузке в своё собственное хранилище. При использовании хранилища по умолчанию запись отправляется в каталог core/data/media/replay.

⚠️ Важно

  • Задача перекодирования зависит от библиотек ffmpeg, которые активно используют CPU.
    Нагрузка может достигать 100%, поэтому не рекомендуется размещать Video-Worker на той же машине, что и JumpServer.

  • Для Razor: запись сначала конвертируется в серию изображений, затем ffmpeg собирает их в видео. Процесс использует все доступные ядра CPU.

  • Для Lion: используется официальный CLI-инструмент guacenc, который полностью загружает одно CPU-ядро на протяжении всего процесса.

1.2. Сравнение до и после перекодирования

ТестДлительностьРазмер исходного файлаРазмер MP4Снижение занимаемого места
Тест 18 часов4.1 GB0.80 GB80.5%
Тест 21 час2.4 GB0.37 GB84.6%

1.3. Параметры

Название параметраЗначение по умолчаниюОписаниеПримечание
NAMEhostnameПо умолчанию — имя хоста 
CORE_HOSThttp://127.0.0.1:8080URL JumpServer, используется для регистрации через APIvideo-worker регистрируется в core так же, как и koko
BOOTSTRAP_TOKENнетПредварительно созданный секретный ключ; должен совпадать с конфигурацией JumpServer 
BIND_HOST0.0.0.0IP-адрес привязки при запуске, по умолчанию 0.0.0.0 
HTTPD_PORT9000Порт для HTTP/WS 
LOG_LEVELINFOВозможные значения: [DEBUG, INFO, WARN, ERROR] 
VIDEO_WORKER_COUNT0Количество параллельных процессов; 0 означает, что значение не задано и вычисляется автоматически как «число ядер CPU + 1»Если указано значение > 0, используется оно
VIDEO_WORKER_SECRET_KEY''Случайно генерируемая строка из 32 символов; используется как ключ шифрования/дешифрованияЕсли нужно использовать несколько video-worker, ключ должен быть одинаковым
VIDEO_WORKER_CLEAN_PERIOD7В днях — срок хранения логов перекодированных сессийПри запуске очистка выполняется раз в 24 часа
IGNORE_VERIFY_CERTSFalseИгнорировать ли HTTPS-сертификат CORE_HOST, чтобы избежать ошибок валидацииПоддерживается с версии v3.10.8+

2. Включение Video-Worker в существующей среде (не рекомендуется)

Файл конфигурации JumpServer находится по адресу:

/opt/jumpserver/config/config.txt

Добавьте следующие параметры для включения перекодирования записей Windows в MP4:


USE_VIDEO=1 
ENABLE_VIDEO_WORKER=True 
VIDEO_WORKER_HOST=http://jms_video:9000
После изменения параметров перезапустите сервис:

jmsctl restart
Примечание:
Поскольку ffmpeg сильно нагружает CPU, не рекомендуется запускать Video-Worker на той же машине, что и JumpServer. Подробности можно уточнить у инженеров техподдержки JumpServer.

3. Отдельное развёртывание сервера перекодирования

Версия JumpServer на сервере перекодирования должна совпадать с версией основной среды.

3.1. Запуск с использованием Docker Compose

Пример окружения:

СервисIP
JumpServer192.168.10.10
Video-Worker192.168.10.11

📌 Настройка на сервере перекодирования

Распаковать установочный пакет JumpServer и подготовить окружение:


tar -zxvf jumpserver-offline-release-v3.10.9-amd64.tar.gz
cd /opt/jumpserver-offline-release-v3.10.9-amd64/scripts
./2_install_docker.sh      # установка Docker
docker load -i images/video-worker:v3.10.9.tar

Конфигурация Video-Worker

Редактировать файл:

vim /data/config.txt
Содержимое:

CORE_HOST=http://192.168.10.10:8080
BOOTSTRAP_TOKEN=YTc1NjNmNDItZjNlYS00NTMw   # должен совпадать с конфигом JumpServer

IGNORE_VERIFY_CERTS=true  # игнорировать сертификат HTTPS при подключении к CORE_HOST

VIDEO_WORKER_COUNT=6       # количество параллельных задач
VIDEO_WORKER_CLEAN_PERIOD=7  # период очистки логов (в днях)

HTTPD_PORT=9000
LOG_LEVEL=ERROR

Docker Compose-файл Video-Worker


vim /data/docker-compose-video.yml

(Полное содержимое приведено в оригинале.)

Конфигурация на стороне JumpServer

vim /opt/jumpserver/config/config.txt

ENABLE_VIDEO_WORKER=true
VIDEO_WORKER_HOST=http://192.168.10.11:9000

Управление запуском Video-Worker


docker-compose -f docker-compose-video.yml up -d   # запуск
docker-compose -f docker-compose-video.yml down    # остановка


3.2. Запуск с использованием оригинальных файлов JumpServer

Настройка на сервере перекодирования

Редактировать:

vim /opt/jumpserver/config/config.txt

Отключить ненужные компоненты:

CORE_ENABLED=0
CELERY_ENABLED=0
KOKO_ENABLED=0
LION_ENABLED=0
MAGNUS_ENABLED=0
CHEN_ENABLED=0
KAEL_ENABLED=0
PANDA_ENABLED=0
WEB_ENABLED=0
XRDP_ENABLED=0

USE_VIDEO=1
ENABLE_VIDEO_WORKER=True
CORE_HOST=http://192.168.10.10:8080
BOOTSTRAP_TOKEN=YTc1NjNmNDItZjNlYS00NTMw

Затем изменить соответствующие YAML-файлы и выполнить:


cd /opt/jumpserver-offline-release-v3.10.9-amd64/compose/
jmsctl restart

Конфигурация на стороне JumpServer


vim /opt/jumpserver/config/config.txt

ENABLE_VIDEO_WORKER=true
VIDEO_WORKER_HOST=http://192.168.10.11:9000

Также изменить YAML-файлы и выполнить:


jmsctl restart

🔍 Диагностика проблем

Если перекодирование завершилось ошибкой, проверяйте два направления:

  1. Найдите лог выполнения по ID сессии в:
    video/data/tasks/{id}

  2. Если в каталоге tasks нет записи с этим ID, проверьте логи компонентов lion или razor, возможно, ошибка в загрузке файла.