Руководство администратора¶
Полное наименование: Центральный модуль управления данными и распределёнными вычислениями Обозначение: LPI-VAP-CORE Краткое наименование (для работы с документом): «Центральный модуль» Программный продукт: «Vizorlabs Platform 4.0» («Визорлабс Платформа 4.0») Стандарт: ГОСТ 19.503-79
Аннотация¶
Настоящий документ является руководством администратора Центрального модуля управления данными и распределёнными вычислениями (LPI-VAP-CORE) в составе программного продукта «Vizorlabs Platform 4.0» («Визорлабс Платформа 4.0»; далее — Платформа 4.0). Документ предназначен для специалистов, выполняющих развёртывание, настройку, проверку и обслуживание серверной части компонента.
Документ определяет: общие сведения о компоненте, требования к техническим и программным средствам, состав составных частей и связи между ними, порядок подготовки узлов, развёртывания и запуска, состав параметров настройки, порядок настройки доступа, источников медиаданных и интеграционного обмена, способы проверки работоспособности, регламентные операции обслуживания, а также сообщения и диагностические признаки, возникающие при настройке, проверке и эксплуатации.
Порядок работы пользователя в веб-интерфейсе приведён в руководстве пользователя; состав, логическая структура, входные и выходные данные компонента — в описании программы; состав и версии поставки — в формуляре.
Администратор должен: владеть навыками администрирования серверных
операционных систем и кластеров Kubernetes, уметь работать с Helm и kubectl,
понимать назначение применяемых
хранилищ и брокера сообщений, знать принятый у заказчика порядок
предоставления доступа, резервного копирования и обращения в службу
сопровождения, а также знать настоящее руководство. Подготовка в области
разработки программного обеспечения и машинного обучения не требуется.
1. Общие сведения о программе¶
1.1. Назначение и функции программы¶
Центральный модуль управления данными и распределёнными вычислениями (LPI-VAP-CORE) является управляющим и исполняющим контуром Платформы 4.0. Он обеспечивает ведение данных видеоаналитики, организацию распределённой обработки видеопотоков и отдельных кадров, регистрацию событий и нарушений и представление результатов пользователю.
Администратор обеспечивает работоспособность компонента и выполняет следующие группы задач:
| Группа задач администратора | Содержание | Подраздел |
|---|---|---|
| Подготовка технических средств | Подготовка узлов Kubernetes, назначение меток и ограничений размещения, выделение графических ускорителей, постоянных томов и областей памяти | 3.1 |
| Развёртывание и запуск | Первичное развёртывание Helm-релиза, контроль запуска рабочих нагрузок и готовности составных частей | 3.2 |
| Выбор функций | Включение и отключение функциональных возможностей и соответствующих составных частей | 3.3 |
| Настройка режимов работы | Параметры приёма медиаданных, распределения нагрузки, формирования и хранения событий, отчётности, уведомлений, журналирования | 3.4 |
| Настройка доступа и справочников | Подключение к СУДИР, ведение учётных записей, ролей, полномочий и областей видимости, ведение справочников типов зон и типов ракурсов, контроль журнала аудита | 3.5 |
| Подключение источников и интеграций | Настройка внешних систем видеонаблюдения, сервисов получения кадров и интеграционного обмена событиями | 3.6 |
| Защита эксплуатационной конфигурации | Разделение открытых параметров и секретов, настройка прав, ротация реквизитов и сертификатов | 3.7 |
| Проверка работоспособности | Проверки после развёртывания и в ходе эксплуатации, контрольные примеры | 4 |
| Обслуживание | Резервное копирование и восстановление, обновление версий, управление ёмкостью хранилищ, диагностика, масштабирование вычислительного контура | 5 |
Таблица 1.1.1 — Задачи администратора компонента.
Функциональные возможности компонента, доступные пользователям, приведены в разделах 1 и 2 описания программы, а порядок работы в веб-интерфейсе — в руководстве пользователя.
Подготовка, конвертация и версионирование моделей видеоаналитики выполняются компонентом управления моделями видеоаналитики (LPI-VAP-MM), разработка и отладка версий сценариев — компонентом среды разработки сценариев видеоаналитики (LPI-VAP-RS), обработка изображений мультимодальными языковыми моделями — компонентом обработки мультимодальных данных (LPI-VAP-MLLM). Администрирование этих компонентов выполняется по их собственным руководствам; настоящий документ описывает только использование их результатов Центральным модулем управления данными и распределёнными вычислениями.
1.2. Сведения о технических средствах¶
Компонент размещается в кластере Kubernetes на серверных технических средствах заказчика. Узлы кластера разделены на три типа; их состав приведён в таблице 1.2.1. LLM-нода относится к компоненту LPI-VAP-MLLM и используется Центральным модулем как внешний вычислительный ресурс.
| Тип узла | Размещаемые составные части | Определяющие ресурсы |
|---|---|---|
| Мастер-нода | Веб-интерфейс и шлюз прикладных интерфейсов, доступ и аудит, объекты, камеры, зоны и справочники, синхронизация источников, обработка и хранение событий, уведомления, статистика и отчёты, интеграционный обмен, общесистемные хранилища, брокер сообщений и централизованное журналирование | Процессорные ядра и оперативная память, SSD для транзакционного и аналитического хранилищ, HDD большой ёмкости для медиаданных и отчётов |
| Вычислительная нода | Приём и декодирование видеопотоков, ретрансляция трансляций, покадровая обработка, исполнение версий сценариев с моделями, подготовка видеофрагментов, контроль состояния | Графические ускорители и их видеопамять, процессорные ядра, оперативная и разделяемая память, SSD для локальных артефактов моделей и временных данных |
| LLM-нода | Сервер мультимодальной модели компонента LPI-VAP-MLLM | Графические ускорители и ресурсы по требованиям компонента LPI-VAP-MLLM; в позицию поставки LPI-VAP-CORE не входит |
Таблица 1.2.1 — Типы серверных узлов кластера.
Размещение рабочих нагрузок по типам узлов задаётся метками узлов и правилами
планирования Kubernetes (nodeSelector, affinity и tolerations) в конфигурации
Helm-релиза. Количественные требования к мастер-ноде и вычислительной ноде
приведены в подразделе 4.3 описания программы.
Минимальная конфигурация, установленная требованиями к инфраструктуре заказчика, и вариант её распределения по узлам приведены в таблице 1.2.2.
| Ресурс | Мастер-нода | Вычислительная нода | Минимально суммарно |
|---|---|---|---|
| Процессорные ядра x86 | 48 | 14 | 62 |
| Оперативная память, ГБ | 128 | 128 | 256 |
| HDD, ГБ | 5000 | — | 5000 |
| SSD, ГБ | 1000 | 1000 | 2000 |
| Графические ускорители класса NVIDIA T4 | — | 4 | 4 |
Таблица 1.2.2 — Минимальная конфигурация серверного оборудования.
Таблица 1.2.2 соответствует одной вычислительной ноде. Для обработки не менее 6000 камер при опросе одного кадра раз в две минуты применяются четыре вычислительные ноды, суммарно 16 ускорителей класса NVIDIA T4. Ресурсы LLM-ноды в итог LPI-VAP-CORE не включаются.
Каждый графический ускоритель вычислительного узла должен иметь не менее 16 ГБ видеопамяти, CUDA Compute Capability не ниже 7.5, не менее 2 560 CUDA-ядер и 300 Tensor Cores, пропускную способность видеопамяти не менее 300 ГБ/с и аппаратную поддержку вычислений FP16 и INT8. Допускается применение эквивалента, не уступающего указанным значениям.
Требования «не хуже», подтверждённые обследованием контрольной конфигурации, приведены в таблице 1.2.3. Полный состав требований и порядок расчёта числа узлов приведены в подразделах 4.1–4.4 описания программы.
| Характеристика | Требование целевой поставки |
|---|---|
| Процессор узла | Не хуже двух процессоров Intel Xeon Gold 6454S: 64 физических ядра, 128 логических процессоров, x86-64, до 3,4 ГГц |
| Оперативная память | Не менее 512 ГБ на узле с совмещёнными ролями; не менее 128 ГБ на каждом узле при разделении ролей |
| Разделяемая память узла | Не менее половины оперативной памяти узла; выделенная область для обмена кадрами и сегментов трансляций — не менее 4 ГБ |
| Графические ускорители | Не хуже ускорителя класса NVIDIA T4 с характеристиками по подразделу 1.2 (в том числе CUDA Compute Capability не ниже 7.5); подтверждено на ускорителях с 24 ГБ видеопамяти и вычислительной способностью 8.6 |
| Дисковая подсистема | Не хуже массива уровня RAID 5 из корпоративных SSD; раздельное размещение системных данных, хранилищ и медиаданных, запас свободного места не менее 20 % |
| Сетевые интерфейсы | Не хуже 1 Гбит/с на узел; при профиле, превышающем подтверждённый, — 10 Гбит/с и отдельный сегмент сети для приёма видеопотоков |
| Синхронизация времени | Единый источник точного времени, расхождение между узлами не более 1 секунды |
| Бесперебойное питание | Не менее 10 минут автономной работы серверных узлов и активного сетевого оборудования с автоматическим завершением работы по сигналу источника |
Таблица 1.2.3 — Требования «не хуже» к техническим средствам.
Размещение данных компонента по носителям приведено в таблице 1.2.4.
| Группа данных | Носитель | Назначение |
|---|---|---|
| Конфигурация и прикладные данные | Постоянный том Kubernetes на SSD мастер-ноды | Учётные записи, роли и полномочия, объекты, камеры, зоны, справочники, правила уведомлений, карточки событий |
| Аналитическое хранилище | Постоянный том Kubernetes на SSD мастер-ноды | Выборки журнала событий и агрегированные показатели |
| Объектное хранилище медиаданных | HDD большой ёмкости | Изображения событий и превью, видеофрагменты, файлы отчётов |
| Архивные видеоматериалы | Отдельный том большой ёмкости | Записи и подготовленные фрагменты при использовании видеоархива |
| Локальные артефакты моделей и сценариев | SSD вычислительного узла | Исполняемые артефакты опубликованных версий, загружаемые перед обработкой |
| Временные кадры, кэш и сегменты трансляций | Оперативная память и SSD | Кадры с ограниченным сроком жизни, кэш сессий, сегменты HLS |
| Состояние брокера сообщений | Постоянный том Kubernetes на SSD мастер-ноды | Сообщения обмена до их обработки потребителями |
| Журналы | Постоянный том Kubernetes на мастер-ноде с регламентом очистки | Централизованно собираемые журналы составных частей |
| Резервные копии | Внешнее по отношению к узлам хранилище | Восстановление данных по регламенту заказчика |
Таблица 1.2.4 — Размещение данных на технических средствах.
Рабочее место администратора должно соответствовать требованиям подраздела 2.1 руководства пользователя и дополнительно обеспечивать защищённый доступ к консоли управления серверными узлами в соответствии с принятым у заказчика порядком.
1.3. Сведения о программных средствах¶
Системное программное обеспечение узлов приведено в таблице 1.3.1.
| Наименование | Версия | Назначение |
|---|---|---|
| «Московская серверная операционная система» | По спецификации поставки; ядро Linux не ниже 6.8 | Целевая серверная операционная система эксплуатации |
| Среда исполнения контейнеров | По спецификации поставки; драйвер хранилища overlay2 |
Изолированное исполнение контейнеров на узлах кластера |
| Kubernetes | По спецификации поставки | Оркестрация составных частей, размещение по типам узлов, контроль готовности, перезапуск при отказе и управление ресурсами |
| Helm | Версия, совместимая с Kubernetes целевой поставки | Установка и обновление единого релиза BOX5 из родительского чарта и его дочерних чартов |
kubectl |
Версия, совместимая с Kubernetes целевой поставки | Проверка ресурсов, событий и журналов в пространстве имён компонента |
| Драйвер NVIDIA | Не ниже 580.76.05 | Использование графических ускорителей вычислительных узлов |
| Средства предоставления NVIDIA GPU в Kubernetes | Совместимые с драйвером и Kubernetes целевой поставки | Обнаружение графических ускорителей и предоставление ресурса nvidia.com/gpu рабочим нагрузкам |
| CUDA, cuDNN, TensorRT | Не ниже 12.6, 9.5 и 10.4 соответственно, в составе согласованных образов | Исполнение моделей видеоаналитики и аппаратное кодирование видео |
| Служба синхронизации системного времени | В составе целевой операционной системы | Единая шкала времени кадров, событий, отчётов и записей аудита |
Таблица 1.3.1 — Системное программное обеспечение.
Инфраструктурные сервисы, входящие в поставку компонента, приведены в таблице 1.3.2.
| Наименование | Версия | Использование |
|---|---|---|
| PostgreSQL | Не ниже 17.5 | Общее транзакционное хранилище конфигурации и карточек событий |
| ClickHouse | Не ниже 24.6.1 | Аналитическое хранилище журнала событий и статистики |
| Apache Kafka (режим KRaft) | Не ниже 3.7.0 | Обмен сообщениями между составными частями |
| MinIO (S3-совместимое хранилище) | Не ниже выпуска RELEASE.2022-10-24 | Хранение изображений, видеофрагментов и файлов отчётов |
| Redis | Не ниже 6.0.9 | Кэш сессий, временные состояния и очереди коротких заданий |
| nginx | Не ниже 1.29.0 | Веб-шлюз и маршрутизация запросов |
| MediaMTX | Не ниже 1.8.0 | Публикация и ретрансляция видеопотоков |
| coturn | Не ниже 4.6.1 | Служба TURN/STUN при доставке видео по WebRTC |
| Loki | Не ниже 2.7.0 | Централизованный сбор журналов контейнеров |
Таблица 1.3.2 — Инфраструктурные сервисы компонента.
Внешние программные средства, необходимые для работы компонента, приведены в таблице 1.3.3.
| Внешнее средство | Назначение | Требования к подключению |
|---|---|---|
| СУДИР | Аутентификация пользователей по протоколу OIDC/OAuth 2.0 и предоставление сведений о групповых правах | Зарегистрированное приложение, разрешённые адреса возврата, согласованные разрешения, сетевая доступность и доверенные сертификаты |
| Внешние системы видеонаблюдения | Источник перечня камер, параметров подключения и видеопотоков | Учётные данные, сетевой доступ, согласованный интерфейс синхронизации |
| Сервисы получения отдельных кадров | Получение изображений по расписанию опроса камер | Учётные данные и сетевой доступ |
| Системы хранения архивных видеозаписей | Предоставление архивных фрагментов для просмотра из карточки нарушения | Сетевой доступ, согласованный протокол |
| Внешние интеграционные интерфейсы | Приём передаваемых событий и синхронизация идентификаторов камер | Адреса, реквизиты доступа, идентификатор задачи, согласованный формат обмена |
| Почтовый сервер (SMTP) | Отправка уведомлений и отчётов | Адрес и порт сервера, учётные данные, параметры шифрования |
| Серверы мессенджеров | Доставка уведомлений | Реквизиты подключения каналов доставки |
| Смежные компоненты LPI-VAP-MM, LPI-VAP-RS, LPI-VAP-MLLM | Публикация версий моделей и сценариев, мультимодальная обработка | Сетевая связность в пределах Платформы 4.0 |
Таблица 1.3.3 — Внешние программные средства.
Для работы администратора требуются: веб-браузер в соответствии с подразделом
2.2 руководства пользователя, защищённый
доступ к консоли управления узлами и к API Kubernetes, а также Helm и kubectl.
Установка средств разработки и сборки на серверные узлы не требуется:
составные части поставляются готовыми контейнерными образами. Точные версии
программных средств целевой поставки приведены в формуляре.
2. Структура программы¶
2.1. Составные части программы¶
Компонент поставляется набором контейнерных образов и Helm-чартом box5.
Родительский чарт объединяет дочерние чарты функциональных доменов, в том числе
workflow, ui-rest, statistics, integration, data-storage, data-sync,
utils, mediamtx, inference и redis. Конкретный состав дочерних чартов и
их версии фиксируются формуляром целевой поставки. Состав функций приведён в
таблице 2.1.1. Технические обозначения сервисов соответствуют схеме
развёртывания Платформы 4.0 и не являются самостоятельными программными
продуктами.
| Функциональный контур | Обозначения сервисов | Назначение | Обязательность |
|---|---|---|---|
| Веб-интерфейс и шлюз | ui-nginx, ui-react, ui-rest-to-grpc, ui-front-settings |
Выдача клиентского приложения, единая точка входа, маршрутизация HTTP-, GraphQL- и WebSocket-запросов, параметры оформления | Обязательно |
| Доступ и аудит | st-auth, st-access, st-audit |
Учётные записи, взаимодействие с СУДИР при аутентификации, роли, полномочия и области видимости, журнал действий пользователей | Обязательно |
| Объекты, камеры, зоны и справочники | st-camera-storage, st-directory-storage, st-offline-camera |
Иерархия объектов, карточки камер, зоны и полигоны, справочники, контроль статусов активности | Обязательно |
| Синхронизация источников | st-camera-csvm-integration, dsync-camera-sync |
Подключение внешних систем видеонаблюдения, синхронизация перечня камер и параметров подключения | Обязательно при подключении внешних систем |
| Приём и ретрансляция медиаданных | inf-mediaserver, mtx-mediamtx, mtx-mediamtx-proxy, inf-coturn |
Приём и декодирование потоков, публикация трансляций HLS и WebRTC, доставка видео в браузер | Обязательно |
| Покадровая обработка и хранение кадров | inf-snapshot-processor, inf-image-storage, ds-data-temporary-storage |
Опрос камер по расписанию, приём и хранение кадров, временное хранение двоичных данных | Обязательно при покадровом режиме получения медиаданных |
| Распределение нагрузки и видеоаналитика | inf-load-balancer, inf-nri-inference, inf-models-storage, inf-monitoring |
Распределение камер по вычислительным узлам, исполнение версий сценариев с моделями, хранение исполняемых артефактов, контроль состояния | Обязательно |
| Обработка и хранение событий | st-event-filter, st-decision-matrix, st-event-storage, st-comments |
Фильтрация результатов, применение правил формирования нарушений, хранение событий и медиаданных, решения и комментарии | Обязательно |
| Подготовка видеоматериалов | inf-report-video-extractor, va-video-archive |
Формирование видеофрагментов событий, хранение и выдача архивных материалов | Опционально; требует графических ускорителей и дополнительной ёмкости хранилища |
| Уведомления | st-event-alert2, st-report-email, utils-telegram-bot, utils-vk-teams-bot |
Правила уведомлений, доставка сообщений по электронной почте и в мессенджеры | Обязательно для канала электронной почты; каналы мессенджеров — опционально |
| Статистика и отчётность | st-event-statistic, st-ex-statistics, st-dashboard-backend, st-report-pdf-xlsx-generator |
Агрегированные показатели информационной панели, формирование и выгрузка отчётов | Обязательно |
| Интеграционный обмен | st-dit-integration, int-vizorlabs-integration, dsync-event-sync, dsync-sync-logger |
Передача событий во внешние интерфейсы, синхронизация идентификаторов камер, журнал обмена | Опционально; определяется составом интеграций поставки |
| Общесистемные средства | db-postgres, узлы ClickHouse, inf-kafka, ds-minio, кэш, log-loki |
Хранение конфигурации и событий, аналитические выборки, обмен сообщениями, объектное хранилище, кэш, централизованное журналирование | Обязательно |
Таблица 2.1.1 — Составные части компонента.
Отключение опциональной составной части выполняется исключением
соответствующего дочернего чарта или рабочей нагрузки из состава Helm-релиза
(подраздел 3.3). В Kubernetes прикладные сервисы обычно представлены ресурсами
Deployment, хранилища — StatefulSet и постоянными томами, сетевые точки
доступа — Service и Ingress, параметры — ConfigMap, а конфиденциальные
значения — Secret. При отключении связанная функция становится недоступной,
а остальные функции продолжают работать.
2.2. Связи между составными частями¶
Составные части взаимодействуют тремя способами:
- синхронные вызовы — пользовательские и программные запросы поступают через веб-шлюз в прикладной шлюз, который обращается к сервисам по внутренним типизированным интерфейсам и возвращает результат;
- асинхронный обмен — команды, результаты обработки и уведомления передаются через брокер сообщений; получатель обрабатывает сообщение независимо от отправителя, при недоступности потребителя сообщение сохраняется в брокере;
- общие хранилища и локальные области узла — транзакционное, аналитическое и объектное хранилища, кэш, временное хранилище кадров, а на вычислительном узле — разделяемая память между приёмом видеопотоков и исполняющим ядром и локальный каталог артефактов моделей.
Схема связей приведена на схеме 2.1.
зоны и справочники"] GW --> EVT["События и решения"] GW --> STAT["Статистика и отчёты"] CFG --> BUS["Брокер сообщений"] SYNC["Синхронизация источников"] --> BUS BUS --> LB["Распределение нагрузки"] LB --> NRI["Исполняющее ядро
видеоаналитики"] MED["Приём и ретрансляция
медиаданных"] --> NRI MED --> GW NRI --> BUS BUS --> EVT EVT --> VID["Подготовка видеоматериалов"] VID --> EVT EVT --> NOTIF["Уведомления"] EVT --> INTG["Интеграционный обмен"] EVT --> STAT ACC --> DATA[("Хранилища:
транзакционное,
аналитическое, объектное")] CFG --> DATA EVT --> DATA STAT --> DATA NRI --> LOCAL[("Локальные артефакты
и разделяемая память узла")]
Схема 2.1 — Связи между составными частями компонента.
Основные группы сообщений обмена приведены в таблице 2.2.1.
| Группа сообщений | Содержание | Отправитель | Получатели |
|---|---|---|---|
| Управление камерами | Добавление, изменение и удаление камеры, изменение зон и наборов категорий, состав назначенных сценариев | Объекты, камеры, зоны и справочники | Распределение нагрузки, приём медиаданных, обработка событий, статистика |
| Состояние источников и узлов | Подтверждения работоспособности камеры, детектора и вычислительного узла, сообщения о недоступности камеры | Приём медиаданных, исполняющее ядро | Распределение нагрузки, контроль состояния, интерфейс |
| Результаты обработки | Результаты детекции и сообщения о нарушениях | Исполняющее ядро видеоаналитики | Фильтрация и правила формирования событий |
| Регистрация и изменение событий | Команды регистрации события, добавление материалов, изменение статуса и решения | Правила формирования событий, интерфейс | Хранилище событий, статистика, интеграционный обмен |
| Подготовка видеоматериалов | Запрос видеофрагмента и ответ с готовым материалом | Хранилище событий | Подготовка видеоматериалов |
| Уведомления и отчёты | Задания на уведомление и формирование отчёта, сведения о ходе выполнения | Хранилище событий, интерфейс | Уведомления, статистика и отчётность |
| Справочники и версии | Изменения справочников, публикация версий моделей и сценариев | Справочники, смежные компоненты | Исполняющее ядро, обработка событий |
| Аудит | Записи о действиях пользователей | Прикладной шлюз и сервисы | Журнал аудита |
Таблица 2.2.1 — Группы сообщений обмена.
Зависимости запуска составных частей приведены в таблице 2.2.2; порядок выполнения запуска описан в подразделе 3.2.
| Группа | Зависит от | Признак готовности |
|---|---|---|
| Транзакционное хранилище | — | Хранилище принимает соединения, созданы базы данных и учётные записи сервисов |
| Централизованное журналирование | — | Служба сбора журналов принимает записи |
| Брокер сообщений | — | Брокер принимает подключения, доступны требуемые топики |
| Объектное и временное хранилища | — | Хранилища принимают запросы, доступны требуемые разделы |
| Прикладные сервисы | Транзакционное хранилище, брокер, объектное и временное хранилища | Все сервисы прошли собственную проверку готовности |
| Вычислительный контур | Прикладные сервисы, брокер, хранилище артефактов моделей | Узлы подтверждают работоспособность, камеры распределены |
| Ретрансляция и доставка видео | Приём медиаданных | Трансляция доступна в интерфейсе |
| Синхронизация источников и интеграции | Прикладные сервисы, внешние системы | Выполнена первичная синхронизация, обмен без накопления очереди |
| Веб-интерфейс и шлюз | Все перечисленные выше группы | Открывается страница входа, выполняется вход, отображаются камеры |
Таблица 2.2.2 — Зависимости запуска составных частей.
2.3. Связи с другими программами¶
Внешние связи компонента и требования к ним приведены в таблице 2.3.1.
| Взаимодействующая программа или система | Направление | Передаваемые данные | Протокол | Требования к сетевому доступу | Поведение при недоступности |
|---|---|---|---|---|---|
| СУДИР | Двустороннее | Запрос авторизации, авторизационный код, маркеры доступа, обновления и идентификации, сведения о пользователе и групповых правах | HTTPS, OIDC/OAuth 2.0 | Исходящий доступ к адресам СУДИР, доверенные сертификаты, зарегистрированные адреса возврата | Вход новых пользователей невозможен; действующие сеансы работают до истечения срока действия маркера |
| Компонент управления моделями видеоаналитики (LPI-VAP-MM) | В компонент | Опубликованные версии моделей, исполняемые артефакты, категории детекции | Внутренние интерфейсы Платформы 4.0 и сообщения брокера | Связность в пределах серверной сети Платформы 4.0 | Применяются ранее полученные артефакты; новые версии не поступают |
| Компонент среды разработки сценариев видеоаналитики (LPI-VAP-RS) | В компонент | Опубликованные исполняемые версии сценариев | Внутренние интерфейсы Платформы 4.0 и сообщения брокера | Связность в пределах серверной сети Платформы 4.0 | Назначенные ранее версии продолжают исполняться; привязка новых версий недоступна |
| Компонент обработки мультимодальных данных (LPI-VAP-MLLM) | Двустороннее | Кадры и контекст события, структурированный результат проверки | Сообщения брокера и внутренние интерфейсы | Связность в пределах серверной сети Платформы 4.0 | События регистрируются без дополнительной проверки |
| Внешние системы видеонаблюдения | Двустороннее | Перечни камер и параметры подключения, ссылки на потоки и кадры | HTTPS API внешней системы, RTSP для потоков | Доступ к адресам системы и медиапортам, учётные данные | Камеры переводятся в состояние «недоступна», синхронизация повторяется по расписанию |
| Сервисы получения отдельных кадров | В компонент | Изображения камер по расписанию опроса | HTTPS | Доступ к адресам сервиса, учётные данные | Кадры за период недоступности не восстанавливаются |
| Системы хранения архивных видеозаписей | Двустороннее | Запросы фрагментов и полученные материалы | HTTPS и потоковые протоколы | Доступ к адресам системы | Просмотр архивной записи из карточки нарушения и приложение видеофрагментов недоступны |
| Внешние интеграционные интерфейсы | Из компонента, с подтверждением | События с идентификатором задачи и материалами, соответствие идентификаторов камер | HTTPS API или брокер сообщений внешней системы | Доступ к адресам интерфейса, реквизиты и сертификаты | Сообщения накапливаются в очереди и передаются повторно |
| Почтовый сервер (SMTP) | Из компонента | Уведомления и отчёты | SMTP | Доступ к адресу и порту сервера, учётные данные | Повторные попытки отправки, фиксация ошибки |
| Серверы мессенджеров | Из компонента | Уведомления | HTTPS API мессенджера | Исходящий доступ к адресам сервиса | Повторные попытки, фиксация ошибки доставки |
| Рабочее место пользователя | Двустороннее | Экранные формы, команды, потоки событий и статусов, видеопотоки, файлы выгрузок | HTTPS, GraphQL, WebSocket, HLS, WebRTC | Доступ к веб-интерфейсу и медиапортам | Работа серверной части продолжается |
Таблица 2.3.1 — Связи с другими программами и системами.
Перечень сетевых адресов, портов и реквизитов подключения для целевой поставки приводится в эксплуатационной документации и в приложении Г.
3. Настройка программы¶
3.1. Настройка на состав технических средств¶
Подготовка кластера выполняется до развёртывания компонента в следующем порядке.
- Кластер Kubernetes. На узлах устанавливаются серверная операционная
система, совместимая среда исполнения контейнеров и Kubernetes. Проверяются
состояния
Ready, системные рабочие нагрузки, внутренняя служба DNS и доступ администратора к API кластера. - Типы узлов и планирование. Узлам назначаются согласованные проектом
метки для мастер-нод и вычислительных нод. Для рабочих нагрузок задаются
nodeSelector, affinity и tolerations, исключающие размещение хранилищ и прикладных сервисов на неподходящих узлах. LLM-нода настраивается по руководству компонента LPI-VAP-MLLM. - Постоянные тома. Создаются классы хранения и постоянные тома для транзакционного и аналитического хранилищ, объектного хранилища, брокера, журналов и, при использовании видеоархива, архивных материалов. Политика возврата томов не должна удалять данные при удалении Helm-релиза. Запас свободного места — не менее 20 %.
- Оперативная и разделяемая память. На вычислительных нодах выделяются область разделяемой памяти для передачи кадров между медиасервером и исполняющим ядром — не менее половины оперативной памяти ноды — и отдельная область для обмена кадрами и сегментов трансляций — не менее 4 ГБ. Способ предоставления задаётся томами и параметрами рабочих нагрузок чарта.
- Графические ускорители. На вычислительных нодах устанавливаются драйвер
NVIDIA и средства предоставления GPU в Kubernetes. Ускорители должны
отображаться как доступный ресурс
nvidia.com/gpu; запросы и пределы GPU задаются в Helm-конфигурации рабочих нагрузок вычислительного контура. - Сеть и входной трафик. Проверяются связность узлов, разрешение имён
сервисов, доступ к источникам медиаданных, внешним системам и СУДИР. Для
пользовательского доступа настраиваются
Ingressлибо предусмотренная проектом служба типаLoadBalancer, сертификат HTTPS и медиапорты HLS, WebRTC и TURN/STUN. - Время. Все узлы синхронизируются с единым источником NTP; расхождение не должно превышать 1 секунды.
- Образы и секреты. В пространстве имён создаётся
imagePullSecretдля реестра образов. Пароли хранилищ, ключи СУДИР, SMTP и иные реквизиты помещаются в KubernetesSecret, а не в открытый файл значений Helm. - Режим работы серверов. На серверных узлах отключаются спящий режим и гибернация, включается автоматический запуск служб Kubernetes после перезагрузки. Системные лимиты, параметры ядра и файловых систем задаются проектом поставки; произвольное изменение этих параметров не допускается.
Исходное состояние кластера проверяется командами:
kubectl get nodes -o wide
kubectl get storageclass
kubectl get pods -A
kubectl describe node <имя-вычислительной-ноды>
В выводе describe node вычислительной ноды должно присутствовать требуемое
число ресурсов nvidia.com/gpu. Фактические имена меток, классов хранения,
пространства имён и секретов устанавливаются схемой развёртывания целевой
поставки и фиксируются в приложении Г.
3.1.1. Контроль готовности инфраструктуры¶
До установки релиза администратор заполняет контрольный лист. Версии и имена в таблице сверяются со спецификацией конкретной поставки, а не с примерами из документов предыдущих версий.
| Объект | Способ проверки | Ожидаемый результат | Действие при отклонении |
|---|---|---|---|
| Операционная система и ядро | Проверка на каждой ноде средствами ОС | Наименование и версия соответствуют спецификации поставки | Обновить или переустановить ОС до присоединения ноды к кластеру |
Kubernetes, Helm и kubectl |
Вывод версий клиента и сервера | Версии присутствуют в матрице совместимости поставки | Установить согласованные версии; повторить проверку API кластера |
| Ноды кластера | kubectl get nodes -o wide |
Все требуемые ноды имеют состояние Ready |
Проверить службы ноды, сеть, CNI и системные поды |
| Метки и ограничения размещения | kubectl get nodes --show-labels и описания рабочих нагрузок |
Мастер- и вычислительные ноды имеют проектные метки; affinity и tolerations согласованы с ними | Исправить метки либо значения чарта до установки |
| Внутренняя сеть и DNS | Проверка системных подов CNI и DNS, разрешение тестового имени Service |
Системные поды готовы, имя разрешается из тестового пода | Устранить отказ CNI, DNS или сетевой политики |
| Постоянное хранение | kubectl get storageclass; контрольное создание и удаление PVC |
Доступен проектный класс хранения, PVC переходит в Bound, запись и чтение выполняются |
Проверить CSI, ёмкость, режим доступа и привязку к ноде |
| Время | Состояние службы NTP на каждой ноде | Источник времени доступен, расхождение между нодами не более 1 секунды | Восстановить синхронизацию до запуска прикладных сервисов |
| Реестр образов | Контрольная загрузка согласованного образа через imagePullSecret |
Образ загружается по имени и digest без ошибок TLS и авторизации | Проверить DNS, сертификат, сетевой доступ и секрет реестра |
| Графические ускорители | nvidia-smi, ресурсы ноды и запуск согласованного тестового пода |
Ускорители видны ОС и Kubernetes, тестовый контейнер получает выделенный GPU | Проверить драйвер, средство предоставления GPU, запрос ресурса и размещение пода |
| Входной трафик | Проверка DNS, сертификата TLS и маршрутов Ingress/LoadBalancer | Адрес разрешается, сертификат действителен, требуемые порты доступны | Исправить DNS, сертификат, маршруты или правила межсетевого экрана |
| Внешние зависимости | Проверка соединений с СУДИР, источниками медиаданных, SMTP и интеграционными системами | Требуемые адреса и порты доступны с тех нод или подов, откуда выполняется обращение | Согласовать маршрутизацию, сертификаты и правила доступа |
Таблица 3.1.1 — Предварительная проверка инфраструктуры.
HTTPS, WebSocket, медиапорты"] subgraph K8S["Кластер Kubernetes"] direction TB subgraph MASTER["Мастер-нода"] APP["Прикладные рабочие нагрузки
и веб-шлюз"] DATA["StatefulSet и сервисы
хранилищ и брокера"] PVC[("Постоянные тома
SSD и HDD")] APP --> DATA --> PVC end subgraph COMPUTE["Вычислительные ноды"] MEDIA["Медиасерверы"] NRI["Исполняющее ядро
видеоаналитики"] GPU["Ресурс nvidia.com/gpu"] MEDIA --> NRI --> GPU end end LLM["LLM-нода
компонента LPI-VAP-MLLM"] REGISTRY["Реестр
контейнерных образов"] INGRESS --> APP APP <--> NRI APP <--> LLM REGISTRY --> MASTER REGISTRY --> COMPUTE
Схема 3.1 — Размещение рабочих нагрузок Центрального модуля в Kubernetes.
3.2. Развёртывание и запуск¶
Целевое развёртывание выполняется единым Helm-релизом родительского чарта
box5. В командах ниже используются обозначения, значения которых задаются
проектом поставки:
<релиз>— имя Helm-релиза;<пространство>— пространство имён Kubernetes;<чарт>— путь к каталогу или пакету чарта BOX5;<значения>— файл открытых значений целевой поставки.
| Команда | Назначение |
|---|---|
helm dependency build <чарт> |
Проверка и подготовка зависимостей родительского чарта |
helm lint <чарт> -f <значения> |
Статическая проверка чарта и значений |
helm template <релиз> <чарт> -n <пространство> -f <значения> |
Формирование и просмотр ресурсов без изменения кластера |
helm upgrade --install <релиз> <чарт> -n <пространство> --create-namespace -f <значения> --atomic --wait |
Первичная установка либо согласованное обновление релиза с ожиданием готовности и автоматическим откатом при ошибке |
helm status <релиз> -n <пространство> |
Состояние релиза и его ресурсов |
helm history <релиз> -n <пространство> |
История редакций релиза для диагностики и отката |
kubectl get pods -n <пространство> -o wide |
Состояние и размещение подов по узлам |
kubectl get events -n <пространство> --sort-by=.lastTimestamp |
События планирования, подключения томов, загрузки образов и проверок готовности |
Таблица 3.2.1 — Основные команды развёртывания и контроля.
3.2.1. Состав и проверка дистрибутива¶
Комплект установки формируется для конкретной версии поставки и должен позволять установить её без обращения к публичным репозиториям. Рекомендуемый состав комплекта приведён в таблице 3.2.2.
| Элемент | Содержание | Проверка перед установкой |
|---|---|---|
| Helm-чарт BOX5 | Пакет родительского чарта и все дочерние чарты | Имя и версия соответствуют формуляру; helm lint завершается успешно |
| Файл значений-шаблон | Открытые параметры, состав функций, ресурсы, размещение, хранилища и внешние адреса без секретных значений | Заполнены обязательные поля; результат helm template соответствует схеме развёртывания |
| Описание секретов | Перечень требуемых Secret, ключей и источников значений без самих паролей и токенов |
Для каждого ключа определены владелец, способ безопасной передачи и порядок ротации |
| Контейнерные образы | Перечень образов всех включённых составных частей с тегами и неизменяемыми digest | Все образы доступны во внутреннем реестре и загружаются через imagePullSecret |
| Ведомость целостности | Контрольные суммы файлов комплекта и, при наличии, сведения о составе программных компонентов | Контрольные суммы совпадают; повреждённый комплект не используется |
| Изменения схем данных | Задания и порядок миграции, требования к исходной версии, признак обратимости | Путь обновления поддерживается; создана согласованная резервная копия |
| Эксплуатационная документация | Формуляр, описание программы, руководства администратора и пользователя | Версии документов соответствуют версии комплекта |
Таблица 3.2.2 — Состав комплекта установки.
В изолированном контуре образы сначала загружаются в доверенный внутренний реестр с сохранением digest, затем ссылки на него указываются в значениях Helm. Установка образов непосредственно на отдельные ноды не применяется: Kubernetes должен получать одинаковый образ из реестра при любом повторном планировании пода.
Факт приёмки дистрибутива фиксируется в протоколе приложения Е: версия, контрольные суммы, перечень загруженных образов и результат шаблонизации чарта.
3.2.2. Первичное развёртывание¶
- Подготовить пространство имён,
Secretс конфиденциальными параметрами,imagePullSecret, классы хранения и постоянные тома. - Заполнить файл значений: версии образов, адреса хранилищ и брокера, параметры СУДИР и внешних систем, состав включённых дочерних чартов, ресурсы, метки размещения и параметры входного трафика.
- Выполнить
helm dependency build,helm lintиhelm template; проверить, что секретные значения не попали в сформированные общедоступныеConfigMap. - Установить релиз командой
helm upgrade --installиз таблицы 3.2.1. - Проконтролировать состояние релиза, подов, заданий и постоянных томов; дождаться завершения инициализации баз данных и выполнить проверки раздела 4.
3.2.3. Порядок запуска групп¶
Зависимости групп приведены в таблице 2.2.2. Kubernetes запускает независимые рабочие нагрузки параллельно, поэтому порядок обеспечивается проверками готовности, заданиями инициализации и повторными подключениями сервисов:
- транзакционное хранилище — при первом запуске создаются базы данных и учётные записи сервисов, при последующих применяются изменения схем данных;
- централизованное журналирование;
- брокер сообщений;
- объектное и временное хранилища;
- прикладные сервисы;
- вычислительный контур;
- ретрансляция и доставка видео;
- синхронизация источников и интеграционный обмен;
- веб-интерфейс и шлюз прикладных интерфейсов.
До допуска пользовательского трафика должны успешно завершиться задания
инициализации, хранилища — перейти в состояние готовности, а прикладные рабочие
нагрузки — пройти startupProbe и readinessProbe. При отказе процесса
livenessProbe инициирует перезапуск контейнера. Наличие пода в фазе Running
само по себе не подтверждает готовность компонента.
3.2.4. Остановка и перезапуск¶
Штатный перезапуск отдельной рабочей нагрузки выполняется командой
kubectl rollout restart deployment/<имя> -n <пространство> с последующей
командой kubectl rollout status. Для StatefulSet применяют предусмотренную
проектом процедуру с сохранением постоянных томов. Полная остановка выполняется
только для регламентных работ: сначала прекращается входной трафик и работа
прикладных и вычислительных нагрузок, затем брокера и хранилищ. Удаление
Helm-релиза не является штатным способом остановки и не должно удалять
постоянные данные.
3.2.5. Признаки успешного запуска¶
- открывается страница входа и выполняется вход пользователя;
- камеры отображаются с актуальными состояниями, обновляются превью;
- камеры распределены по вычислительным узлам, узлы подтверждают работоспособность;
- в журнал поступают новые события;
- отсутствует накопление очереди в брокере сообщений и в интеграционном обмене;
helm statusне сообщает об ошибке, все обязательные поды готовы, задания инициализации завершены,PersistentVolumeClaimнаходятся в состоянииBound, а число повторных запусков контейнеров не растёт.
3.3. Выбор функций¶
Состав функций определяется двумя способами: включением соответствующих дочерних чартов и рабочих нагрузок в значениях Helm-релиза и параметрами включения отдельных возможностей.
| Функция | Способ включения и отключения | Последствия отключения |
|---|---|---|
| Подготовка видеофрагментов событий и видеоархив | Включение группы сервисов подготовки видеоматериалов и параметр включения видеоархива (VIDEO_ARCHIVE_IS_ENABLED) |
События регистрируются с изображениями без видеофрагментов; в карточке нарушения не отображается кнопка просмотра архивной записи |
| Покадровый режим получения медиаданных | Включение сервиса покадровой обработки и задание расписания опроса камер | Обрабатываются только камеры с приёмом видеопотока |
| Дополнительная проверка событий мультимодальными средствами | Параметр включения проверки событий (ENABLE_LLM_EVENT_VERIFICATION) и наличие компонента LPI-VAP-MLLM |
События регистрируются без дополнительной проверки |
| Аналитическое хранилище событий | Параметр использования аналитического хранилища (USE_CLICKHOUSE) |
Выборки журнала и статистика выполняются средствами транзакционного хранилища с иными характеристиками производительности |
| Интеграционный обмен | Включение группы интеграционных сервисов и параметров подключения внешних интерфейсов | События не передаются во внешние системы; синхронизация идентификаторов камер не выполняется |
| Каналы уведомлений | Включение сервисов доставки: электронная почта, мессенджеры | Уведомления по отключённому каналу не отправляются; правила сохраняются |
| Синхронизация источников медиаданных | Включение сервисов синхронизации и настройка внешних систем (подраздел 3.6) | Камеры ведутся только вручную |
| Обработка загруженных видеозаписей | Включение сервиса обработки загруженных записей | Загруженные записи не обрабатываются как источник |
| Оценка стройготовности объектов | Включение проверки событий мультимодальными средствами, ведение справочника типов ракурсов и закрепление за ними промптов оценки фасада | Раздел «Журналы → Стройготовность» остаётся пустым: проверки по зданиям не выполняются |
Таблица 3.3.1 — Включение и отключение функций.
Группы сервисов, не входящие в целевую поставку, отключаются в файле значений;
их ресурсы не должны присутствовать в результате helm template. Функциональные
возможности, требующие графических ускорителей (видеоаналитика, подготовка
видеофрагментов), включаются только для рабочих нагрузок с запросом GPU и
правилом размещения на вычислительных нодах.
3.4. Настройка режимов работы¶
Параметры настройки задаются в файле значений Helm и создаваемых из него
ConfigMap и Secret. Конфиденциальные значения хранятся только в Secret;
их запрещается помещать в репозиторий документации и вывод команд диагностики.
Назначение параметров по областям приведено в таблице 3.4.1; полный перечень с
допустимыми значениями приводится в приложении А.
| Область настройки | Назначение параметров | Влияние на работу |
|---|---|---|
| Приём видеопотоков и трансляции | Предельная частота обрабатываемых кадров (DECODE_MAX_FPS), аппаратное декодирование, параметры публикации трансляций: длительность сегмента и глубина плейлиста (HLS_CHANK_DURATION, HLS_PLAYLIST_LENGTH), битрейт (HLS_VIDEO_BITRATE), наложение служебной информации на изображение |
Определяют нагрузку на графические ускорители и сеть, задержку просмотра и качество трансляции |
| Покадровый опрос камер | Интервал опроса камеры, параметры получения кадров от внешнего сервиса, время ожидания ответа | Определяют объём получаемых кадров, нагрузку на вычислительный контур и внешние сервисы |
| Контроль состояния камер | Время жизни камеры без подтверждения работоспособности (CAMERA_LIFE_TIME), период учёта отказов (CAMERA_FAILURES_DURATION_SECONDS) |
Определяют скорость перевода камеры в состояние «недоступна» и состав диагностических сведений |
| Распределение нагрузки | Период проверки состояния узлов (LB_CHECK_TIME), интервал перебалансировки (LB_REBALANCE_TIMEOUT), весовые коэффициенты узлов |
Определяют скорость реакции на отказ узла и частоту перераспределения камер |
| Формирование событий | Минимальное число подтверждений нарушения (MIN_NUMBER_OF_VIOLATIONS), интервал и коэффициенты фильтра одиночных срабатываний (ADAPTIVE_ANTISPAM_FILTER_TIMERANGE, ADAPTIVE_ANTISPAM_PERSONS_MULTIPLIER) |
Определяют долю ложных срабатываний и полноту регистрации нарушений |
| Хранение и очистка событий | Окно ожидания дополнительных материалов события, параметры группировки похожих событий, высота превью, предельный объём хранилища событий (MAX_EVENT_STORAGE_SIZE_GB), периодичность и размер порции очистки |
Определяют полноту карточки события, объём занимаемого хранилища и глубину доступной истории |
| Временное хранение кадров | Срок жизни временных данных (DATA_LIFE_TIME) |
Определяет объём временного хранилища и возможность повторной обработки кадра |
| Обмен сообщениями | Предельный размер сообщения брокера (KAFKA_MAX_REQUEST_SIZE), срок хранения сообщений |
Определяют возможность передачи крупных сообщений и устойчивость к недоступности потребителей |
| Подготовка видеофрагментов | Длительность фрагмента и предельная длительность обработки (OUTPUT_VIDEOS_LENGTH_FRAMES, VIDEO_LENGTH_LIMIT_SEC), кодек |
Определяют размер видеоматериалов события и нагрузку на графические ускорители |
| Отчётность | Глубина выборки событий (EVENTS_DEPTH_HOURS), размер порции при формировании периодических отчётов (PERIODIC_REPORT_CHUNK_SIZE), состав включаемых сведений |
Определяют время формирования отчёта и полноту выгрузки |
| Уведомления | Параметры почтового сервера и каналов мессенджеров, роли получателей, тексты и адреса ссылок в сообщениях | Определяют доставку уведомлений и состав сведений в них |
| Журналирование | Уровень журналирования сервисов, правила ротации и срок хранения журналов | Определяют объём журналов и полноту диагностических сведений |
Таблица 3.4.1 — Области настройки режимов работы.
Изменение параметров выполняется обновлением файла значений и применением новой
редакции Helm-релиза. Если изменение ConfigMap или Secret не вызывает
автоматического обновления подов, выполняется контролируемый rollout restart
только затронутой рабочей нагрузки. Перед изменением параметров,
влияющих на нагрузку (частота кадров, интервалы опроса, число камер на узел),
следует оценить запас производительности вычислительных узлов по подразделу 4.4
описания программы.
3.5. Настройка доступа¶
3.5.1. Подключение к СУДИР¶
Компонент подключается к СУДИР по протоколу OIDC/OAuth 2.0 в режиме авторизационного кода. Порядок подключения и состав заявки установлены методикой подключения к СУДИР (внутренний контур); требования к составу запросов и обработке ответов — документом ИИПМ-5ген-СУДИР.
- Оформить заявку на подключение приложения к СУДИР по регламенту подключения
(внутренний контур). В заявке указываются разрешённые префиксы адресов
возврата при авторизации (
redirect_uri) и при логауте (post_logout_redirect_uri), перечень запрашиваемых разрешений (scope), необходимость получения маркера обновления и перечень дополнительных атрибутов маркера идентификации. - По результатам исполнения заявки получить идентификатор приложения
(
client_id), секрет приложения (client_secret), зарегистрированные адреса возврата и перечень разрешений. Секрет приложения хранится как реквизит доступа и в эксплуатационную документацию не переносится. - Согласовать разрешённые адреса возврата: их префиксы должны соответствовать доменным именам веб-интерфейса целевой поставки. Адрес возврата, не совпадающий ни с одним зарегистрированным префиксом, приводит к отказу в аутентификации.
- Согласовать запрашиваемые разрешения и состав сведений о пользователе. Применяемые разрешения приведены в таблице 3.5.1.
- Задать параметры подключения в конфигурации развёртывания: идентификатор и секрет приложения, адрес возврата, адреса сервисов СУДИР по таблице 3.5.2 либо единый адрес метаданных, из которого эти адреса считываются.
- Обеспечить сетевой доступ узлов и рабочих мест к серверам СУДИР по HTTPS (порт 443) и доверие к их сертификатам (п. 3.5.1.1).
- Проверить вход пользователя: перенаправление на страницу входа, возврат в интерфейс по адресу возврата, обмен авторизационного кода на маркеры, получение сведений о пользователе и его групповых правах.
| Разрешение | Назначение | Получаемые сведения |
|---|---|---|
openid |
Обязательное разрешение, аутентификация выполняется по спецификации OpenID Connect 1.0 | Маркер идентификации id_token |
profile |
Основные данные профиля пользователя | Уникальный идентификатор, имя входа в домен, фамилия, имя, отчество, служебный адрес электронной почты |
employee |
Служебные данные сотрудника | Организация, подразделение, должность, служебный телефон, служебный адрес электронной почты |
userinfo |
Основные данные профиля в наименованиях атрибутов OpenID Connect | Уникальный идентификатор, фамилия, имя, служебный адрес электронной почты |
Таблица 3.5.1 — Разрешения СУДИР, запрашиваемые компонентом.
Состав запрашиваемых разрешений определяется проектом целевой поставки:
обязательным является openid, состав остальных разрешений согласуется исходя
из сведений о пользователе, отображаемых в интерфейсе и в журнале аудита.
| Назначение адреса | Продуктивная среда | Тестовая среда |
|---|---|---|
| Запрос авторизации и аутентификации | https://sudir.mos.ru/blitz/oauth/ae |
https://sudir-test.mos.ru/blitz/oauth/ae |
| Получение и обновление маркеров | https://sudir.mos.ru/blitz/oauth/te |
https://sudir-test.mos.ru/blitz/oauth/te |
| Получение сведений о пользователе | https://sudir.mos.ru/blitz/oauth/me |
https://sudir-test.mos.ru/blitz/oauth/me |
| Проверка маркера доступа | https://sudir.mos.ru/blitz/oauth/introspect |
https://sudir-test.mos.ru/blitz/oauth/introspect |
| Выход из системы | https://sudir.mos.ru/blitz/login/logout |
https://sudir-test.mos.ru/blitz/login/logout |
| Метаданные подключения | https://sudir.mos.ru/blitz/oauth/.well-known/openid-configuration |
https://sudir-test.mos.ru/blitz/oauth/.well-known/openid-configuration |
| Ключи проверки подписи маркеров | https://sudir.mos.ru/blitz/oauth/.well-known/jwks |
https://sudir-test.mos.ru/blitz/oauth/.well-known/jwks |
Таблица 3.5.2 — Адреса сервисов СУДИР.
Вместо перечисления отдельных адресов в конфигурации допускается указать адрес метаданных: остальные адреса считываются из него. Среда СУДИР (тестовая или продуктивная) выбирается по контуру целевой поставки.
Запрос авторизации формируется с параметрами client_id, response_type=code,
redirect_uri, scope, state (случайный идентификатор запроса для защиты от
перехвата) и access_type; значение access_type=offline запрашивается, если
требуется маркер обновления. Полученный авторизационный код обменивается
серверной частью компонента на маркер доступа, маркер обновления и маркер
идентификации; срок действия маркера доступа — 3600 секунд, продление
выполняется по маркеру обновления без повторного входа пользователя.
3.5.1.1. Сетевой доступ к СУДИР¶
Серверы СУДИР должны быть доступны по HTTPS (порт 443) как с рабочих мест пользователей (перенаправление браузера на страницу входа и возврат), так и с тех узлов Платформы 4.0, которые обращаются к сервисам обмена маркерами, получения сведений о пользователе и проверки маркеров.
| Расположение источника запроса | Продуктивная среда (sudir.mos.ru) |
Тестовая среда (sudir-test.mos.ru) |
|---|---|---|
| Сети общего пользования | 212.11.152.248 | 212.11.152.249 |
| Внутренние сети правительства Москвы и ЦОД | 10.15.21.7 | 10.15.21.8 |
Таблица 3.5.3 — IP-адреса серверов СУДИР для правил межсетевого экрана.
Адреса приведены по приложению 1 методики подключения и подлежат проверке на актуальность при настройке правил фильтрации трафика.
Доступ к компоненту предоставляется при наличии у пользователя соответствующего группового права. Пользователю без такого права выполняется отказ в доступе после успешной аутентификации.
3.5.2. Учётные записи, роли и области видимости¶
- В разделе администрирования пользователей создать или проверить учётную запись пользователя.
- Назначить роль: «Пользователь (оператор)» или «Администратор» в соответствии с подразделом 1.3 руководства пользователя.
- Задать область видимости — перечень объектов и камер, доступных пользователю; выборки журнала, отчёты, уведомления и статистика ограничиваются этой областью.
- При необходимости назначить пользователя ответственным за камеры объекта для адресации уведомлений.
- Отзыв доступа выполняется отключением учётной записи и (или) отзывом группового права в СУДИР.
3.5.3. Справочники, определяющие работу видеоаналитики¶
Два справочника ведутся администратором в интерфейсе и определяют, что и как обрабатывается по камерам.
| Справочник | Назначение | Порядок ведения |
|---|---|---|
| Типы зон | Тип зоны — признак, по которому опубликованная версия сценария сопоставляется с зоной камеры. Без нужного типа зону невозможно связать со сценарием, который её обрабатывает | Подраздел 3.7.2 руководства пользователя |
| Типы ракурсов | Тип ракурса закрепляет за ракурсом камеры набор промптов — проверок по её изображению — и пресетов. Применяется, в частности, для оценки стройготовности фасада | Подраздел 3.7.3 руководства пользователя |
Таблица 3.5.4 — Справочники, ведущиеся администратором.
Изменение справочника затрагивает все камеры, на которых используются соответствующие типы: после изменения проверяются разметка зон, привязка версий сценариев и результаты проверок по затронутым камерам. Промпты и языковые модели ведутся компонентом обработки мультимодальных данных (LPI-VAP-MLLM).
3.5.4. Контроль действий пользователей¶
Действия пользователей регистрируются в журнале аудита. Администратор контролирует журнал в разделе логирования действий: доступны отбор по периоду, пользователю, сервису и виду действия, а также выгрузка выборки. Записи журнала содержат имя входа, сетевой адрес, отображаемое имя, дату и время, сервис и описание действия. Порядок работы с журналом приведён в подразделе 3.7.3 руководства пользователя.
3.6. Настройка источников медиаданных и интеграций¶
3.6.1. Внешние системы видеонаблюдения и сервисы получения кадров¶
- В разделе администрирования открыть перечень систем видеонаблюдения и добавить систему.
- Задать параметры подключения: наименование, адрес программного интерфейса, реквизиты доступа, признак включения.
- Задать параметры синхронизации: периодичность, размер порции при включении камер, правила именования и привязки камер к объектам, интервал опроса кадров по умолчанию.
- Выполнить первичную синхронизацию и проконтролировать её результат по времени последней синхронизации и истории синхронизаций.
- Проверить, что полученные камеры отображаются в дереве объектов и переходят в работоспособное состояние.
Камеры, исчезнувшие из внешней системы, помечаются признаком отсутствия и не удаляются автоматически. Реквизиты доступа после сохранения не отображаются. Порядок работы с формой приведён в подразделе 3.3.4 руководства пользователя.
3.6.2. Интеграционный обмен событиями¶
- Задать параметры внешнего интеграционного интерфейса: адреса, реквизиты доступа, способ аутентификации, идентификатор задачи, передаваемый вместе с событием.
- Задать условия передачи: состав категорий, требование предварительного подтверждения события оператором, состав передаваемых материалов.
- Задать параметры очереди и повторных попыток при недоступности внешней системы.
- Выполнить контрольную передачу и проконтролировать результат по журналу обмена.
3.6.3. Уведомления¶
- Задать параметры почтового сервера: адрес, порт, учётные данные, параметры шифрования, адрес отправителя.
- При использовании мессенджеров задать реквизиты подключения каналов доставки.
- Задать роли получателей и назначить ответственных за камеры объектов.
- Выполнить контрольную отправку и проконтролировать доставку.
Контроль результатов настройки источников, интеграций и уведомлений выполняется проверками раздела 4.
3.7. Защита конфигурации, секретов и сертификатов¶
Администратор разделяет открытые параметры и конфиденциальные данные. Открытые
значения Helm допускается хранить в системе управления версиями; пароли,
токены, закрытые ключи, строки подключения с реквизитами и клиентские секреты
СУДИР хранятся в Kubernetes Secret либо во внешнем хранилище секретов
заказчика.
| Объект | Требование | Регламентная операция |
|---|---|---|
| Доступ к Kubernetes | Пользователю и служебной учётной записи предоставляются только необходимые действия и пространства имён | Периодический просмотр RBAC и удаление неиспользуемых привязок |
| Секреты приложений | Значения не включаются в открытые файлы Helm, журналы, снимки экрана и обращения в сопровождение | Ротация по политике заказчика и после подозрения на раскрытие; контролируемый перезапуск потребителей |
imagePullSecret |
Доступ ограничен чтением требуемых репозиториев образов | Обновление до истечения реквизитов и контрольная загрузка образа |
| Сертификаты TLS | Доменное имя, цепочка доверия и срок действия соответствуют входной точке поставки | Контроль срока действия; обновление с последующей проверкой HTTPS и WebSocket |
| Сетевой доступ | Разрешены только необходимые входные и исходящие направления | Проверка правил межсетевого экрана и NetworkPolicy после изменения интеграций |
| Резервные копии | Копии шифруются и размещаются вне кластера, доступ протоколируется | Проверка прав, срока хранения и возможности расшифрования при контрольном восстановлении |
Таблица 3.7.1 — Защита эксплуатационной конфигурации.
После ротации секрета определяют все использующие его рабочие нагрузки, применяют новую редакцию секрета, выполняют контролируемый перезапуск и проверяют соответствующую внешнюю связь. Старое значение отзывается только после успешной проверки нового, если политика внешней системы допускает переходный период.
4. Проверка программы¶
4.1. Способы проверки работоспособности¶
Проверки выполняются после развёртывания, после изменения параметров настройки и обновления версии, а также периодически в ходе эксплуатации. Состав проверок приведён в таблице 4.1.1. Проверки выполняются последовательно на трёх уровнях:
- инфраструктура Kubernetes — ноды, системные сервисы, GPU, сеть и тома;
- прикладной контур — рабочие нагрузки, хранилища, брокер и внутренние связи;
- сквозные функции — вход пользователя, камера, видеоаналитика, событие, отчёт, уведомление и интеграционный обмен.
Переход к следующему уровню допускается после успешного завершения предыдущего.
| Объект проверки | Способ выполнения | Признак работоспособности |
|---|---|---|
| Состояние Helm-релиза | helm status <релиз> -n <пространство> и helm history <релиз> -n <пространство> |
Текущая редакция релиза развёрнута успешно, незавершённые и ошибочные обновления отсутствуют |
| Узлы и системные ресурсы Kubernetes | kubectl get nodes; описание мастер-ноды и вычислительных нод |
Все узлы имеют состояние Ready, метки типов узлов назначены, на вычислительных нодах доступен ресурс nvidia.com/gpu |
| Состав и состояние рабочих нагрузок | kubectl get deploy,statefulset,daemonset,job,pods -n <пространство> |
Требуемое число реплик готово; задания завершены; поды не находятся в Pending, Failed или цикле перезапуска |
| События пространства имён | kubectl get events -n <пространство> --sort-by=.lastTimestamp |
Нет повторяющихся ошибок планирования, загрузки образов, подключения томов и проверок готовности |
| Постоянные тома | kubectl get pvc -n <пространство> и контроль заполнения файловых систем |
Все обязательные заявки находятся в состоянии Bound, запас свободного места не ниже установленного |
| Транзакционное и аналитическое хранилища | Проверка приёма соединений и наличия баз данных сервисов | Хранилища принимают соединения, базы данных и учётные записи сервисов созданы |
| Объектное и временное хранилища | Проверка доступности разделов хранения изображений, видеофрагментов и отчётов | Разделы доступны, запись и чтение выполняются |
| Брокер сообщений | Проверка доступности брокера и отставания групп потребителей по топикам обмена | Брокер доступен; отставание групп потребителей не накапливается |
| Веб-интерфейс и вход | Открытие адреса веб-интерфейса и вход пользователя | Выполняется перенаправление на страницу входа СУДИР, возврат в интерфейс и открытие главной страницы |
| Состояние камер и детекторов | Раздел мониторинга камер интерфейса; служебные интерфейсы контроля состояния (подтверждения работоспособности камер, детекторов и исполняющего ядра, журналы отказов и помех) | Камеры отображаются в работоспособном состоянии, превью обновляются, отказы не накапливаются |
| Приём и декодирование видеопотоков | Показатели приёма и декодирования по камерам в служебном интерфейсе распределения нагрузки | Для включённых камер частота декодирования соответствует заданной, ошибки декодирования отсутствуют |
| Распределение камер по вычислительным узлам | Служебный интерфейс распределения нагрузки: перечень узлов и назначенных камер | Все включённые камеры распределены, узлы подтверждают работоспособность |
| Просмотр изображения камеры | Открытие вкладки «Трансляция» карточки камеры | Для камеры типа «Снапшот» доступна ссылка на видеоплеер заказчика; для камеры, подключённой видеопотоком, трансляция воспроизводится в режимах HLS и WebRTC |
| Выполнение видеоаналитики | Наличие назначенных версий сценариев у камер и поступление результатов обработки | По камерам с назначенными сценариями формируются события; состояние детекторов — включено |
| Одновременный просмотр камер | Раскладка видеостены с несколькими выбранными камерами | Изображения выбранных камер выводятся одновременно, полноэкранный режим работает |
| Регистрация событий | Динамический поток, журналы нарушений и событий, представление мультикарточками | Новые события появляются в потоке и журнале, время от возникновения до отображения не превышает установленного показателя |
| Медиаматериалы событий | Карточка события | Доступны размеченное изображение, исходный кадр и, при включённой подготовке, видеофрагмент |
| Отчётность | Формирование отчёта по выборке журнала | Отчёт формируется и сохраняется на рабочее место в форматах PDF и XLSX; при выборке сверх предельного числа записей выводится сообщение об ограничении |
| Уведомления | Контрольное событие по камере, включённой в правило уведомления | Уведомление доставлено получателю, ошибки доставки в журнале отсутствуют |
| Синхронизация источников медиаданных | Запуск синхронизации и просмотр её истории | Синхронизация завершается без ошибок, перечень камер соответствует внешней системе |
| Интеграционный обмен | Журнал обмена и состояние очереди передачи | События передаются во внешнюю систему, очередь не накапливается, отказы обрабатываются повторными попытками |
| Разграничение доступа | Вход под учётными записями с разными ролями и областями видимости | Состав доступных разделов и данных соответствует роли и области видимости |
| Оценка стройготовности | Раздел «Журналы → Стройготовность» | По объектам, для камер которых настроены ракурсы с промптами оценки фасада, приводится процент готовности; карточка проверки содержит изображение, ответ языковой модели и показатели по сторонам здания |
| Журнал действий пользователей | Раздел логирования действий | Действия пользователей регистрируются, выборка по периоду и пользователю выполняется |
| Централизованное журналирование | Поступление записей журналов составных частей | Журналы поступают, глубина хранения соответствует настройкам |
| Ёмкость хранилищ | Контроль свободного места на томах данных | Свободное место не ниже установленного запаса, очистка выполняется по правилам |
Таблица 4.1.1 — Проверки работоспособности компонента.
Служебные программные интерфейсы контроля состояния предназначены для диагностики и доступны в пределах серверной сети. Они предоставляют перечень камер и их состояний, подтверждения работоспособности камер, исполняющего ядра и медиасерверов, журналы отказов, помех и ошибок, а также показатели приёма и декодирования видеопотоков.
Минимальная инфраструктурная проверка после установки выполняется командами:
helm status <релиз> -n <пространство>
kubectl get nodes
kubectl get pods -n <пространство> -o wide
kubectl get pvc -n <пространство>
kubectl get events -n <пространство> --sort-by=.lastTimestamp
Если под не готов, сначала просматривают kubectl describe pod, затем журналы
контейнера командой kubectl logs; для контейнера после перезапуска применяют
параметр --previous. Значения секретов в диагностические материалы не
включают.
4.2. Контрольные примеры¶
Контрольные примеры выполняются последовательно: результат предыдущего примера является исходным состоянием для следующего.
| № | Проверяемая функция | Исходные данные | Порядок выполнения | Ожидаемый результат |
|---|---|---|---|---|
| 1 | Доступ к системе | Учётная запись с групповым правом доступа и назначенной ролью | Открыть адрес веб-интерфейса, выполнить вход | Выполнен вход, открыта главная страница, состав разделов соответствует роли |
| 2 | Ведение объектов и камер | Объект наблюдения, параметры подключения камеры | Создать объект, зарегистрировать камеру, включить её | Камера отображается в дереве объектов и в перечне камер, состояние — работоспособна, обновляется превью |
| 3 | Получение медиаданных | Камера из примера 2 | Открыть карточку камеры и вкладку «Трансляция» | Изображение камеры доступно: для камеры типа «Снапшот» — по ссылке на видеоплеер заказчика, для камеры, подключённой видеопотоком, — в режимах HLS и WebRTC |
| 4 | Разметка зоны | Камера из примера 2 | Создать зону выбранного типа и построить полигон на изображении камеры | Зона сохранена и отображается на изображении камеры |
| 5 | Выполнение видеоаналитики | Опубликованная версия сценария | Назначить камере версию сценария, включить видеоаналитику | Камера отображается со статусом наличия сценариев, распределена на вычислительный узел, детекторы включены |
| 6 | Регистрация события | Условия сценария выполняются в контролируемой зоне | Дождаться возникновения события и открыть журнал | Событие отображается в динамическом потоке и журнале не позднее установленного показателя; карточка содержит изображение и сведения о камере, зоне и категории |
| 7 | Разбор события | Событие из примера 6 | Открыть карточку, подтвердить или отклонить событие, добавить комментарий | Решение и комментарий сохранены, изменения отражены в истории и в журнале |
| 8 | Формирование отчёта | Выборка событий за период | Задать в журнале условия отбора, выполнить выгрузку в форматах PDF и XLSX и подтвердить состав отчёта | Файлы сформированы и сохранены на рабочее место |
| 9 | Уведомление | Правило уведомления, включающее камеру из примера 2, и назначенный получатель | Дождаться события по камере | Уведомление доставлено получателю, содержит сведения о событии и ссылку на карточку |
| 10 | Синхронизация источника | Настроенная внешняя система видеонаблюдения | Запустить синхронизацию и открыть её историю | Синхронизация завершена без ошибок, камеры внешней системы отображаются в дереве объектов |
| 11 | Интеграционный обмен | Настроенный внешний интеграционный интерфейс, подтверждённое событие | Дождаться передачи события и открыть журнал обмена | Событие передано, зафиксирован положительный результат передачи |
| 12 | Разграничение доступа | Учётные записи с ролями «Пользователь (оператор)» и «Администратор» | Выполнить вход под каждой учётной записью | Оператору недоступны разделы настройки и администрирования; состав объектов и камер соответствует области видимости |
| 13 | Оценка стройготовности | Камера с назначенным типом ракурса, за которым закреплены промпты оценки фасада, и объект капитального строительства в справочнике | Дождаться выполнения проверки, открыть раздел «Журналы → Стройготовность», найти объект по «УИН ОКС» и перейти к карточке проверки | Процент готовности рассчитан; карточка проверки содержит изображение, ответ языковой модели и показатели по стороне здания; результат выгружается в PDF |
| 14 | Регистрация действий | Действия из примеров 2, 5 и 7 | Открыть журнал логирования действий и задать период выполнения проверок | В журнале присутствуют записи о выполненных действиях с указанием пользователя, времени и сервиса |
| 15 | Восстановление после перезагрузки ноды | Тестовый или подготовленный для приёмки контур; подтверждённая резервная копия; достаточный запас ресурсов на остальных нодах | Перераспределить камеры, выполнить cordon и drain, перезагрузить выбранную ноду, вернуть её в планирование и повторить инфраструктурные и прикладные проверки |
Нода возвращается в Ready; системные и прикладные поды готовы; PVC подключены; GPU снова доступен; камеры распределены; события продолжают поступать |
Таблица 4.2.1 — Контрольные примеры.
Если в целевой поставке отключена соответствующая функция (подраздел 3.3), относящийся к ней контрольный пример не выполняется, о чём делается отметка в результатах проверки.
4.3. Результаты проверки¶
Проверка считается успешной, если выполнены все условия таблицы 4.3.1.
| Группа проверок | Критерий успешного результата |
|---|---|
| Состояние кластера и инфраструктуры | Helm-релиз развёрнут успешно; узлы Kubernetes имеют состояние Ready; обязательные рабочие нагрузки и поды готовы; повторные перезапуски отсутствуют; постоянные тома, хранилища и брокер сообщений доступны; отставание групп потребителей не накапливается |
| Доступ | Вход выполняется через СУДИР, состав доступных разделов и данных соответствует роли и области видимости, действия регистрируются в журнале аудита |
| Медиаданные | Включённые камеры находятся в работоспособном состоянии, распределены по вычислительным узлам, трансляции воспроизводятся |
| Видеоаналитика и события | По камерам с назначенными версиями сценариев формируются события; событие отображается в интерфейсе не позднее установленного показателя; карточка содержит требуемые материалы |
| Представление результатов | Журнал, информационная панель и отчёты формируются по заданным условиям отбора; выгрузка в форматах PDF и XLSX сохраняется на рабочее место |
| Внешние взаимодействия | Синхронизация источников выполняется без ошибок; уведомления доставляются; события передаются во внешние интеграционные интерфейсы |
Таблица 4.3.1 — Критерии успешного результата проверки.
При отрицательном результате проверки выполняется следующий порядок действий:
- зафиксировать проверку, время, состав выполненных действий и полученное сообщение;
- определить границу отказа: составная часть, внешняя система, источник медиаданных или параметры настройки;
- просмотреть журналы соответствующих составных частей и служебные интерфейсы контроля состояния;
- проверить параметры настройки, относящиеся к отказавшей функции (подразделы 3.3–3.7), и связанные внешние системы;
- устранить причину, повторить проверку и убедиться, что связанные проверки также выполняются успешно;
- при повторяющемся отказе передать в службу сопровождения сведения по подразделу 6.3.
Результаты проверок фиксируются в эксплуатационной документации в порядке, принятом у заказчика: дата и время, состав выполненных проверок, результат по каждой из них, выявленные отклонения и принятые меры.
5. Дополнительные возможности¶
5.1. Резервное копирование и восстановление¶
5.1.1. Состав резервируемых данных¶
| Группа данных | Критичность | Способ копирования | Периодичность и контроль |
|---|---|---|---|
| Транзакционное хранилище PostgreSQL | Высокая | Согласованная логическая или физическая копия штатными средствами СУБД либо утверждённого оператора резервного копирования | Не реже одного раза в сутки; проверка завершения и возможности прочитать каталог копии |
| Аналитическое хранилище ClickHouse | Высокая | Штатная резервная копия ClickHouse либо согласованный снимок постоянного тома после обеспечения согласованности | Не реже одного раза в сутки; проверка состава таблиц и состояния копии |
| Объектное хранилище медиаданных MinIO | Высокая | Репликация или копирование бакетов штатными S3-совместимыми средствами; снимок тома допускается только по согласованной процедуре | Не реже одного раза в сутки и согласованно с копированием метаданных; выборочная проверка объектов |
| Конфигурация развёртывания | Высокая | Версия Helm-чарта, открытые значения, перечень секретов, политики, сертификаты и конфигурация внешних средств; секретные значения — защищённым средством заказчика | При каждом изменении; проверка контрольных сумм и возможности сформировать ресурсы командой helm template |
| Справочники и результаты оценки стройготовности | Высокая | В составе транзакционного и объектного хранилищ: типы ракурсов с промптами, справочник объектов капитального строительства, проверки с изображениями и ответами языковой модели | Восстанавливаются вместе с хранилищами; проверяется соответствие записей и медиаматериалов |
| Состояние брокера сообщений | Определяется проектом | Согласованная копия состояния либо документированное исключение, если все значимые сообщения восстанавливаются источниками | Решение фиксируется в регламенте с учётом допустимой потери ожидающих событий и интеграционных сообщений |
| Архивные видеоматериалы | Определяется проектом | Штатное копирование архива или резервирование нижележащего хранилища | Периодичность и глубина определяются объёмом и требованиями заказчика |
Таблица 5.1.1 — Состав резервируемых данных.
Для мастер-ноды целевой конфигурации RPO устанавливается не хуже 24 часов; конкретные RPO и RTO, глубина хранения и место размещения копий фиксируются регламентом резервного копирования заказчика.
Не подлежат копированию восстанавливаемые данные: контейнерные образы, локальные артефакты моделей и код версий сценариев на вычислительных узлах, сегменты трансляций, временные кадры и содержимое кэша. Они восстанавливаются из реестра образов и от смежных компонентов при следующем запуске.
Копирование хранилища метаданных и объектного хранилища выполняется согласованно: карточка события в хранилище метаданных и её изображения в объектном хранилище должны относиться к одному моменту, иначе часть событий восстановится без медиаматериалов.
5.1.2. Порядок копирования¶
- Проверить доступность целевого хранилища копий, запас свободного места и состояние предыдущего задания резервного копирования.
- Зафиксировать время начала, версию Helm-релиза и состояние хранилищ.
- Выполнить согласованную копию транзакционного и аналитического хранилищ.
- Выполнить копирование объектного хранилища из той же согласованной точки.
- Скопировать конфигурацию развёртывания и защищённую копию секретов.
- Проверить отсутствие ошибок, размер и контрольные суммы файлов или объектов, а также возможность прочитать каталог резервной копии.
- Зарегистрировать результат: время начала и окончания, состав, объём, место хранения, срок хранения, версию релиза и ответственного.
Копии размещаются вне серверных узлов компонента. Глубина хранения, порядок шифрования и права доступа к копиям определяются регламентом заказчика.
5.1.3. Порядок восстановления¶
- Прекратить входной трафик и масштабировать до нуля прикладные и вычислительные рабочие нагрузки, оставив работающими хранилища; состав и исходное число реплик зафиксировать перед изменением.
- Восстановить хранилища метаданных из выбранной копии.
- Восстановить разделы объектного хранилища из копии того же момента.
- Восстановить версию Helm-чарта, открытые значения,
Secretи конфигурацию постоянных томов, соответствующие выбранной копии. - Применить Helm-релиз и восстановить число реплик; дождаться готовности рабочих нагрузок и завершения заданий инициализации.
- Выполнить проверки по разделу 4, обратив внимание на доступность медиаматериалов событий и состояние камер.
Контрольное восстановление выполняется периодически на отдельном контуре в объёме, установленном регламентом заказчика; результат фиксируется в эксплуатационной документации.
5.1.4. Автоматизация и ротация¶
Автоматическое резервное копирование выполняется Kubernetes CronJob либо
внешней системой резервного копирования заказчика. Способ выбирается проектом
поставки и должен обеспечивать:
- запрет параллельного запуска двух копирований одного хранилища;
- ограничение времени выполнения и повторные попытки при временном отказе;
- передачу копий за пределы узлов кластера и шифрование при хранении;
- автоматическую ротацию по сроку хранения без удаления последней успешной копии;
- уведомление об ошибке, отсутствии свежей копии и недостатке места;
- журналирование результата без вывода паролей, ключей и токенов.
Удаление копий выполняется по утверждённой политике хранения. Перед включением ротации проверяется, что маска удаления ограничена каталогом или бакетом резервных копий и не затрагивает данные рабочих хранилищ.
5.1.5. Проверка после восстановления¶
После восстановления выполняется контроль по таблице 5.1.2.
| Объект | Проверка | Критерий успешного результата |
|---|---|---|
| Helm и Kubernetes | Состояние релиза, рабочих нагрузок, заданий, событий и перезапусков | Релиз развёрнут, обязательные поды готовы, повторные ошибки отсутствуют |
| Постоянные тома | Состояние PVC и доступность файловых систем | Все требуемые PVC находятся в Bound, тома доступны на запись и чтение |
| PostgreSQL и ClickHouse | Подключение, наличие схем, таблиц и контрольных записей | Структура соответствует версии релиза, контрольные запросы выполняются без ошибок |
| События и медиаматериалы | Открытие выбранных событий до момента копирования | Метаданные, изображения и видео относятся к одним событиям и доступны пользователю |
| Камеры, модели и сценарии | Состояние камер, распределение, назначенные версии и получение нового кадра | Камеры распределены, назначенные версии восстановлены или повторно получены, обработка продолжается |
| Доступ и аудит | Вход контрольного пользователя и просмотр журнала действий | Аутентификация и разграничение доступа работают, записи аудита доступны |
| Отчёты, уведомления и интеграции | Контрольный отчёт и проверка очередей | Отчёт формируется, очереди не растут; внешнюю отправку выполняют только по согласованию |
Таблица 5.1.2 — Проверки после восстановления.
5.2. Обновление версий и откат¶
До обновления оформляется план изменения по таблице 5.2.1.
| Сведение | Что требуется зафиксировать |
|---|---|
| Исходная и целевая версии | Редакции Helm-релиза и чарта, версии и digest изменяемых образов |
| Совместимость | Поддерживаемый путь обновления, версии Kubernetes и API чарта, совместимость внешних интерфейсов |
| Изменения данных | Состав миграций, ожидаемая длительность, возможность отката без восстановления копии |
| Влияние на работу | Ожидаемый перерыв, временное увеличение числа реплик и требуемый запас CPU, памяти, GPU и места |
| Критерии успеха | Обязательные проверки раздела 4 и допустимые значения показателей |
| Условие отката | Ошибка миграции, неготовность рабочей нагрузки, нарушение сквозной функции или превышение допустимого времени работ |
| Ответственные | Исполнитель, принимающий решение об откате, представитель заказчика и канал уведомления |
Таблица 5.2.1 — План обновления.
- Ознакомиться с составом обновления по формуляру целевой поставки: перечень изменяемых составных частей, изменения схем данных, изменения параметров настройки.
- Проверить
helm history, состояние узлов, подов и постоянных томов; убедиться в наличии ресурсов для одновременной работы старых и новых реплик во время последовательного обновления. - Выполнить резервное копирование по подразделу 5.1.
- Подготовить новую версию чарта и значений, затем выполнить
helm lintиhelm templateи проверить различия сформированных ресурсов. - Выполнить обновление командой
helm upgradeс параметрами релиза, чарта, пространства имён и файла значений, а также ключами--atomic --wait; затем дождаться готовности рабочих нагрузок. - Проверить результат
helm status, размещение подов, события Kubernetes, журналы заданий изменения схем данных и доступность постоянных томов. - Выполнить проверки по разделу 4.
Если новая редакция чарта и состояние данных совместимы с предыдущей версией,
откат выполняется командой helm rollback с именем релиза, номером предыдущей
редакции, пространством имён и ключом --wait. Если обновление необратимо
изменило схему данных, одного отката Helm недостаточно: восстанавливают
хранилища и конфигурацию из
согласованной копии по подразделу 5.1. Предыдущие версии чарта и образов не
удаляются до подтверждения работоспособности новой редакции.
Решение об откате принимается по схеме:
завершены успешно?"} MIG -- Нет --> RESTORE["Остановить изменение;
восстановить данные и конфигурацию
из согласованной копии"] MIG -- Да --> CHECK{"Инфраструктурные и сквозные
проверки успешны?"} CHECK -- Да --> ACCEPT["Зафиксировать приёмку
новой редакции"] CHECK -- Нет --> REV{"Изменения данных
обратимы?"} REV -- Да --> HELM["Выполнить helm rollback
и повторить проверки"] REV -- Нет --> RESTORE
Схема 5.1 — Выбор способа отката обновления.
5.3. Управление ёмкостью и очистка данных¶
| Область | Что контролируется | Средства управления |
|---|---|---|
| Хранилище событий и медиаданных | Занятый объём, глубина доступной истории | Предельный объём хранилища событий, периодичность и размер порции очистки, срок хранения по видам данных |
| Отклонённые события | Объём, занимаемый отклонёнными событиями | Правила и периодичность их очистки |
| Удалённые объекты | Содержимое корзины удалённых камер и объектов | Просмотр и окончательное удаление в разделе администрирования |
| Временные данные | Объём временного хранилища кадров | Срок жизни временных данных |
| Брокер сообщений | Объём хранимых сообщений | Срок хранения сообщений в топиках; при увеличении срока пропорционально растёт занимаемое место |
| Архивные видеоматериалы | Объём тома архива | Глубина архива и правила его очистки |
| Журналы | Объём журналов составных частей | Уровень журналирования, правила ротации и срок хранения |
| Проверки стройготовности | Объём изображений и ответов языковой модели, накопленных по проверкам зданий | Периодичность опроса камер ракурсов фасада и правила очистки проверок |
| Отчёты и выгрузки | Объём файлов, формируемых при выгрузке из журнала | Срок хранения файлов до их передачи пользователю |
Таблица 5.3.1 — Управление ёмкостью хранилищ.
Порядок действий при приближении к пределу ёмкости:
- определить группу данных, занимающую наибольший объём;
- проверить, выполняется ли очистка по установленным правилам, и при необходимости изменить их параметры;
- сократить глубину хранения наименее востребованных данных (архивные материалы, журналы, отклонённые события);
- при устойчивом росте объёма увеличить ёмкость хранилища в соответствии с расчётом по подразделу 4.4 описания программы.
Расширение постоянного тома выполняется только если используемый
StorageClass допускает увеличение. После изменения размера
PersistentVolumeClaim контролируют состояние PVC, события Kubernetes и новый
размер файловой системы внутри пода. Уменьшение существующего PVC не выполняют:
для него создают новый том и переносят данные по процедуре хранилища.
Уменьшение глубины хранения событий и медиаматериалов согласовывается с заказчиком: оно ограничивает доступную пользователям историю и глубину отчётности.
5.4. Диагностические средства и журналы¶
| Средство | Содержание | Применение |
|---|---|---|
| Централизованный сбор журналов | Журналы всех составных частей с привязкой к сервису и времени | Основное средство диагностики: поиск сообщений об ошибках, анализ последовательности событий |
| Журналы отдельной рабочей нагрузки | kubectl logs для выбранного пода и контейнера, в том числе с --previous |
Диагностика при недоступности централизованного сбора и после перезапуска контейнера |
| Служебные интерфейсы контроля состояния | Перечень камер и их состояний, подтверждения работоспособности камер, исполняющего ядра и медиасерверов, журналы отказов, помех и ошибок | Диагностика источников медиаданных и вычислительного контура |
| Интерфейс распределения нагрузки | Назначение камер узлам, показатели приёма и декодирования | Диагностика распределения и производительности обработки |
| Состояние Kubernetes и Helm | Редакция релиза, состояния Deployment, StatefulSet, DaemonSet, Job, подов, проверок готовности, событий и перезапусков | Быстрая оценка состояния развёртывания и причины отказа планирования или запуска |
| Средства брокера сообщений | Перечень топиков, группы потребителей и их отставание | Диагностика задержек обработки и накопления очередей |
| Журнал обмена с внешними системами | Результаты передачи событий и синхронизации камер | Диагностика интеграционного обмена |
| Журнал действий пользователей | Действия пользователей с указанием времени, сервиса и адреса | Разбор инцидентов, связанных с действиями пользователей |
Таблица 5.4.1 — Диагностические средства.
Уровень журналирования задаётся параметрами настройки соответствующих составных частей. Повышенный уровень применяется временно, на период диагностики: он увеличивает объём журналов и нагрузку на дисковую подсистему. После устранения неисправности уровень возвращается к штатному.
Рекомендуемый порядок диагностики:
- определить границу отказа по разделу 4: интерфейс, прикладной сервис, вычислительный контур, хранилище, внешняя система;
- проверить состояние Helm-релиза, рабочих нагрузок, подов, постоянных томов и результаты проверок готовности;
- проверить события пространства имён и просмотреть журналы соответствующих составных частей за интервал возникновения отказа;
- проверить служебные интерфейсы контроля состояния и отставание групп потребителей брокера;
- проверить параметры настройки, относящиеся к отказавшей функции;
- при необходимости передать в службу сопровождения сведения по подразделу 6.3.
Для обращения в службу сопровождения формируется диагностический пакет по
приложению Ж. Он охватывает только интервал инцидента и затронутые рабочие
нагрузки. Перед передачей из файлов удаляются значения Secret, маркеры
доступа, пароли, строки подключения, персональные данные и кадры, не требуемые
для разбора. Полная выгрузка конфигурации пространства имён и команда
kubectl cluster-info dump без фильтрации не применяются, поскольку могут
раскрыть конфиденциальные сведения.
5.5. Масштабирование вычислительного контура¶
Производительность обработки масштабируется числом вычислительных нод Kubernetes. Порядок добавления ноды:
- подготовить узел по подразделу 3.1: системное программное обеспечение, драйверы графических ускорителей, тома, разделяемая память, сетевой доступ;
- включить ноду в кластер, назначить метки и tolerations целевой конфигурации;
проверить состояние
Readyи доступность ресурсаnvidia.com/gpu; - изменить число реплик или параметры размещения вычислительных рабочих нагрузок в Helm-конфигурации и применить новую редакцию релиза;
- убедиться, что поды размещены на новой ноде, нода подтверждает работоспособность и отображается в интерфейсе распределения нагрузки;
- дождаться перераспределения камер либо инициировать его; при необходимости изменить весовые коэффициенты узлов;
- проверить показатели приёма и декодирования и поступление событий по перераспределённым камерам.
Перед выводом ноды проверяют достаточность оставшихся ресурсов, переводят
камеры на другие ноды и запрещают новое планирование командой kubectl cordon.
После перераспределения камер и рабочих нагрузок выполняют kubectl drain с
параметрами, согласованными с типами томов и PodDisruptionBudget. Ноду удаляют
из кластера только после подтверждения отсутствия рабочих нагрузок компонента.
Расчёт требуемого числа узлов выполняется по удельным величинам подраздела 4.4 описания программы: производительность одного узла — не менее 45 000 кадров в час, что соответствует примерно 1500 камерам при опросе раз в две минуты. При изменении интервала опроса, разрешения кадров или состава сценариев расчёт выполняется заново.
Признаки недостатка вычислительных ресурсов: устойчивое снижение частоты обрабатываемых кадров, накопление отставания групп потребителей брокера, задержка отображения событий сверх установленного показателя, нераспределённые камеры при работоспособных узлах.
6. Сообщения системному программисту¶
Сообщения выводятся в журналы составных частей, в ответы программных интерфейсов и в веб-интерфейс. В настоящем разделе приведены типовые сообщения с указанием причины и порядка действий; тексты приведены по смыслу, поскольку точная формулировка зависит от версии составной части. Сообщения, адресованные пользователю, приведены в разделе 4 руководства пользователя.
6.1. Сообщения при настройке¶
| Сообщение или признак | Причина | Действия администратора |
|---|---|---|
helm lint или helm template сообщает об отсутствующем либо недопустимом значении |
Не заполнены обязательные значения чарта или нарушен тип параметра | Заполнить значения по подразделам 3.1–3.6 и повторить обе проверки до изменения кластера |
Под находится в состоянии Pending |
Не хватает CPU, памяти или GPU; правила размещения не соответствуют меткам нод; не назначен постоянный том | Просмотреть kubectl describe pod и события пространства имён; проверить ресурсы, метки, affinity, tolerations и PersistentVolumeClaim |
ImagePullBackOff или ErrImagePull |
Указана несуществующая версия образа либо отсутствует или неверен imagePullSecret |
Проверить версии образов по формуляру, адрес реестра, привязку imagePullSecret и события пода |
PersistentVolumeClaim находится в состоянии Pending |
Нет подходящего класса хранения или тома требуемого размера и режима доступа | Проверить StorageClass, запрос PVC, доступную ёмкость и события контроллера хранения; не продолжать запуск хранилищ до состояния Bound |
CrashLoopBackOff |
Процесс завершается из-за неверной конфигурации, недоступной зависимости либо несовместимой версии | Просмотреть состояние и события пода, текущий и предыдущий журналы контейнера; проверить ConfigMap, Secret и зависимости по таблице 2.2.2 |
| Сервис не запускается: соединение с хранилищем не устанавливается | Хранилище не запущено, недоступно по сети либо неверны реквизиты подключения | Проверить состояние хранилища, сетевой доступ и параметры подключения; при первом запуске убедиться, что созданы базы данных и учётные записи сервисов |
| Сервис не запускается: соединение с брокером сообщений не устанавливается | Брокер не запущен или недоступен | Проверить состояние брокера, порядок запуска групп (подраздел 3.2) и сетевой доступ |
| Ошибка применения изменений схемы данных при старте сервиса | Несовместимость версии сервиса и состояния базы данных | Восстановить состояние базы данных из копии и повторить обновление в порядке подраздела 5.2 |
| Под вычислительного контура не получает графический ускоритель | Не установлен драйвер или средство предоставления GPU в Kubernetes, ресурс nvidia.com/gpu не опубликован нодой либо не запрошен рабочей нагрузкой |
Проверить таблицу 1.3.1, kubectl describe node, запросы ресурсов пода и правила размещения (подраздел 3.1) |
| Отказ при обращении к каталогу артефактов моделей | Каталог не смонтирован либо недоступен для записи | Проверить монтирование томов и права доступа (подраздел 3.1) |
| Ошибка проверки подключения к СУДИР: несовпадение адреса возврата | Адрес возврата не зарегистрирован в СУДИР либо отличается от адреса поставки | Согласовать адреса возврата и привести параметры подключения в соответствие (подраздел 3.5.1) |
| Ошибка подключения к почтовому серверу или каналу мессенджера | Неверные адрес, порт, учётные данные или параметры шифрования; отсутствует сетевой доступ | Проверить параметры канала доставки и сетевой доступ (подраздел 3.6.3) |
Таблица 6.1.1 — Сообщения при настройке.
6.2. Сообщения при проверке¶
| Сообщение или признак | Причина | Действия администратора |
|---|---|---|
| Сервис не проходит проверку готовности и перезапускается | Недоступна зависимость (хранилище, брокер, смежный сервис) либо ошибка параметров | Проверить зависимости по таблице 2.2.2, просмотреть журнал сервиса, устранить причину |
| Программный интерфейс отвечает сообщением о неразрешённом методе обращения | Обращение выполнено способом, не предусмотренным интерфейсом | Использовать способ обращения, предусмотренный описанием интерфейса |
| Программный интерфейс отвечает сообщением о недопустимом значении параметра запроса | В запросе передано значение неверного типа или формата | Исправить параметры обращения; сообщение содержит наименование поля и ожидаемый тип |
| Ответ шлюза: внутренняя ошибка с указанием невозможности разрешения имени сервиса | Целевая составная часть не готова, отсутствует Kubernetes Service или нарушена работа DNS кластера |
Проверить поды и конечные точки Service, имя и пространство имён сервиса, а затем системные поды DNS |
| Ответ шлюза: маркер доступа недействителен или истёк | Истёк срок действия маркера, полученного при аутентификации | Повторить вход; при систематическом появлении проверить параметры срока действия маркеров и синхронизацию времени |
| Камера не переходит в работоспособное состояние | Недоступен источник, неверны параметры подключения, не выделен вычислительный ресурс | Проверить параметры камеры, доступность источника и распределение камеры на узел (подраздел 4.1) |
| События по камере не формируются | Не назначена версия сценария, отключена видеоаналитика, условия зоны не выполняются | Проверить назначение сценария, состояние детекторов и разметку зон |
| Отчёт не формируется | Отказ сервиса формирования, недоступно объектное хранилище либо выборка превышает предельное число выгружаемых записей | Сократить период и условия отбора, проверить состояние сервиса и доступность объектного хранилища; предельное число записей задаётся параметрами поставки |
| Процент стройготовности не рассчитывается, в перечне объектов выводится прочерк | За типом ракурса камеры не закреплены промпты оценки фасада, камера не соотнесена со зданием и стороной объекта, недоступен компонент обработки мультимодальных данных либо не заданы проектные значения числа этажей и входных групп | Проверить справочник типов ракурсов и назначение ракурса камере, состав справочника объектов капитального строительства, доступность LPI-VAP-MLLM и проектные значения в карточке проверки |
| Уведомление не доставлено | Недоступен канал доставки, не назначены получатели, правило отключено | Проверить параметры канала, назначение ответственных и состояние правила |
| Событие не передано во внешнюю систему | Внешняя система недоступна, не выполнены условия передачи, ошибка аутентификации | Проверить журнал обмена, доступность внешней системы и условия передачи (подраздел 3.6.2) |
Таблица 6.2.1 — Сообщения при проверке.
6.3. Сообщения при выполнении программы¶
| Сообщение или признак | Причина | Влияние | Действия администратора |
|---|---|---|---|
| Камера переведена в состояние «недоступна»; в журнале отказов зафиксировано отсутствие подтверждений работоспособности | Источник не отвечает, изменились параметры подключения, недоступна сеть | События по камере не формируются; остальные камеры обрабатываются | Проверить источник и сетевой доступ; при массовом характере проверить внешнюю систему видеонаблюдения |
| В журнале обработки: за установленное время не получен новый кадр камеры, итерация пропущена | Внешний сервис получения кадров отвечает медленнее интервала опроса или недоступен | Пропуск отдельных кадров, снижение полноты обработки | Проверить доступность сервиса кадров и согласовать интервал опроса со временем ответа |
| Таймаут подключения к внешней системе при синхронизации | Внешняя система недоступна или превышено время ответа | Перечень камер не обновляется | Проверить доступность внешней системы и параметры синхронизации; синхронизация повторится по расписанию |
| Вычислительный узел не подтверждает работоспособность, камеры перераспределены | Отказ узла, потеря сетевой связности, перезапуск составных частей | Обработка продолжается на оставшихся узлах с увеличенной нагрузкой | Проверить состояние узла и его ресурсов; при исчерпании ресурсов оставшихся узлов ограничить состав обрабатываемых камер |
| Отставание групп потребителей брокера сообщений растёт | Недостаточная производительность потребителя, отказ сервиса, всплеск нагрузки | Задержка регистрации событий, уведомлений и передачи во внешние системы | Проверить состояние сервисов-потребителей; при устойчивом отставании увеличить ресурсы или пересмотреть параметры нагрузки |
| Свободное место на томе данных ниже установленного запаса | Рост объёма событий, медиаданных, архива или журналов | Возможен отказ записи новых данных | Выполнить действия по подразделу 5.3 |
| Отказ записи в объектное хранилище | Хранилище недоступно или исчерпана ёмкость | События сохраняются без медиаматериалов до восстановления | Восстановить доступность хранилища; сообщения повторяются из брокера |
| Ошибки аутентификации пользователей | Недоступна СУДИР, изменились параметры подключения, отозвано групповое право | Вход новых пользователей невозможен; действующие сеансы работают до истечения маркера | Проверить доступность СУДИР и параметры подключения (подраздел 3.5.1) |
| Новые проверки стройготовности не появляются | Остановлен покадровый опрос камер ракурсов фасада, недоступен компонент обработки мультимодальных данных либо не выполняется синхронизация справочника объектов капитального строительства | Оценка готовности объектов не обновляется; ранее выполненные проверки сохраняются | Проверить расписание опроса камер, доступность LPI-VAP-MLLM и журнал синхронизации справочника; при устранении причины проверки возобновляются со следующего опроса |
| Накопление очереди интеграционного обмена | Внешний интеграционный интерфейс недоступен или отвергает сообщения | События не передаются, обмен возобновится после восстановления | Проверить журнал обмена и доступность внешней системы; при отказах по содержанию согласовать формат обмена |
Таблица 6.3.1 — Сообщения при выполнении программы.
При обращении в службу сопровождения передаются: дата и время, наименование составной части, текст сообщения из журнала, состав выполнявшихся действий, идентификаторы камеры и события (при наличии), а также сведения о конфигурации: версия поставки, состав узлов, изменения параметров настройки за последнее время.
6.4. Диагностические коды¶
| Группа | Значения | Смысл и применение |
|---|---|---|
| Коды ответов прикладных интерфейсов | 200 — успешно; 400 — недопустимые данные запроса; 401 — отсутствует или недействителен маркер доступа; 403 — отсутствует полномочие; 404 — объект или маршрут не найден; 409 — конфликт состояния; 500 — внутренняя ошибка | Определяют характер отказа при обращении к программным интерфейсам и разделение ответственности между клиентом, доступом и серверной частью |
| Состояния камеры | Отключена; доступна; недоступна; есть помехи | Отражают возможность получения медиаданных; используются при отборе камер и диагностике источников |
| Состояния видеоаналитики камеры | Сценарий не назначен; выполняется; не выполняется | Отражают наличие назначенной версии сценария и фактическое выполнение обработки |
| Состояния вычислительного узла | Доступен; недоступен | Определяют участие узла в распределении камер |
| Состояния решения по событию | Без решения; в обработке; подтверждено; отклонено | Определяют учёт события в статистике, отчётности и передаче во внешние системы. В интерфейсе им соответствуют «Не проверено», «Есть нарушения» и «Нет нарушений» |
| Состояния операций обмена | Ожидает передачи; передана; ошибка передачи | Используются при разборе интеграционного обмена по журналу |
| Состояния формирования отчёта | Выполняется; завершено; ошибка | Определяют доступность файла отчёта для выгрузки |
| Состояния узла Kubernetes | Ready; NotReady; SchedulingDisabled |
Определяют возможность исполнения и планирования рабочих нагрузок на ноде |
| Состояния пода и контейнера | Pending; Running; Succeeded; Failed; CrashLoopBackOff; ImagePullBackOff |
Используются для определения стадии запуска и первичной причины отказа |
| Состояния проверок рабочей нагрузки | Запущен; готов; работоспособен | Определяются startupProbe, readinessProbe и livenessProbe; только успешная проверка готовности допускает трафик к поду |
Таблица 6.4.1 — Диагностические коды и признаки состояний.
Перечень кодов ответов конкретных программных интерфейсов приводится в описании программных интерфейсов целевой поставки. Соответствие признаков состояний наименованиям в интерфейсе приведено в руководстве пользователя.
Приложения¶
Приложение А (обязательное). Параметры настройки¶
Параметры сгруппированы по областям подраздела 3.4. Значения целевой поставки фиксируются в конфигурации развёртывания и в формуляре; в таблице приведены назначение, характер значения и рекомендации по выбору.
| Область | Параметр | Назначение | Характер значения и рекомендации |
|---|---|---|---|
| Kubernetes | Пространство имён и имя Helm-релиза | Изоляция ресурсов и идентификация установленной редакции BOX5 | Фиксируются схемой развёртывания целевой поставки; изменяются только по отдельной процедуре миграции |
| Kubernetes | Метки нод, nodeSelector, affinity и tolerations |
Размещение мастер- и вычислительных рабочих нагрузок на узлах соответствующего типа | Значения должны совпадать с метками фактических нод; LLM-нагрузки относятся к LPI-VAP-MLLM |
| Kubernetes | Запросы и пределы CPU, памяти и nvidia.com/gpu |
Резервирование ресурсов и защита рабочих нагрузок от взаимного вытеснения | Устанавливаются по типу сервиса и расчётной нагрузке; GPU запрашивается только вычислительными нагрузками |
| Kubernetes | StorageClass, размеры PVC и режимы доступа |
Предоставление постоянных томов хранилищам, брокеру и журналированию | Класс и режим доступа выбираются по схеме хранения; политика возврата должна сохранять данные при удалении релиза |
| Kubernetes | Параметры Ingress, TLS и внешних служб |
Доступ пользователей к HTTPS, WebSocket, HLS, WebRTC и TURN/STUN | Адреса, сертификаты и порты согласуются со схемой соединений и настройками СУДИР |
| Kubernetes | imagePullSecrets |
Доступ подов к реестру контейнерных образов | Секрет создаётся в пространстве имён и не включается в открытый файл значений |
| Приём видеопотоков | USE_GPU, LIST_GPU, USE_AUTO_LIST_GPU |
Прикладное использование выделенных Kubernetes ускорителей вычислительным контуром | Согласуется с запросом nvidia.com/gpu; контейнер не должен обращаться к ускорителям, не выделенным Kubernetes |
| Приём видеопотоков | DECODE_MAX_FPS |
Предельная частота обрабатываемых кадров одной камеры | Целое число кадров в секунду; повышение увеличивает нагрузку на ускорители пропорционально числу камер |
| Трансляции | HLS_CHANK_DURATION, HLS_PLAYLIST_LENGTH |
Длительность сегмента и глубина плейлиста трансляции | Секунды и число сегментов; уменьшение снижает задержку просмотра и увеличивает частоту запросов |
| Трансляции | HLS_VIDEO_BITRATE |
Битрейт публикуемой трансляции | Килобиты в секунду; определяет требуемую пропускную способность канала к рабочим местам |
| Трансляции | HLS_ENCODE_TIMESTAMPS_ENABLED, HLS_ENCODE_INFERENCE_META_ENABLED, HLS_ENCODE_FRAME_INFO_ENABLED |
Наложение времени, результатов обработки и сведений о кадре на изображение трансляции | Логические признаки; включение увеличивает нагрузку на кодирование |
| Контроль камер | CAMERA_LIFE_TIME |
Время без подтверждения работоспособности, после которого камера считается недоступной | Секунды; уменьшение ускоряет реакцию, но повышает чувствительность к кратковременным перерывам |
| Контроль камер | CAMERA_FAILURES_DURATION_SECONDS |
Период накопления сведений об отказах камеры | Секунды; определяет глубину диагностических сведений |
| Распределение нагрузки | LB_CHECK_TIME |
Период проверки состояния вычислительных узлов | Секунды; уменьшение ускоряет обнаружение отказа узла |
| Распределение нагрузки | LB_REBALANCE_TIMEOUT |
Минимальный интервал между перераспределениями камер | Секунды; увеличение снижает частоту переназначений при нестабильных узлах |
| Распределение нагрузки | NODE_SCORE_MULT |
Весовые коэффициенты узлов при распределении камер | Соответствие «узел — коэффициент»; применяется при разной производительности узлов |
| Формирование событий | MIN_NUMBER_OF_VIOLATIONS |
Минимальное число подтверждений нарушения до регистрации события | Целое число; увеличение снижает долю ложных срабатываний и повышает задержку регистрации |
| Формирование событий | ADAPTIVE_ANTISPAM_FILTER_TIMERANGE, ADAPTIVE_ANTISPAM_PERSONS_MULTIPLIER |
Интервал и коэффициент фильтра одиночных срабатываний | Секунды и множитель; настраиваются по фактической доле ложных событий |
| Хранение событий | EVENT_STORE_SEC |
Окно ожидания дополнительных материалов события до сохранения | Секунды; увеличение повышает полноту карточки и задержку её появления |
| Хранение событий | EVENT_STORAGE_PREVIEW_IMAGE_HEIGHT |
Высота формируемого превью события | Точки; влияет на объём хранилища и скорость отображения журнала |
| Хранение событий | EVENTS_GROUP_BY_ARGS, EVENTS_GROUP_TIMESTAMP_INTERVAL_SEC, IS_EVENTS_GROUP_PROCESSOR_ENABLED |
Признаки и временное окно группировки похожих событий | Перечень признаков, секунды, логический признак; группировка сокращает число записей в журнале |
| Очистка событий | MAX_EVENT_STORAGE_SIZE_GB |
Предельный объём хранилища событий, при превышении которого выполняется очистка | Гигабайты; нулевое значение отключает очистку по объёму |
| Очистка событий | EVENTS_CLEANUP_STANDBY_INTERVAL_SEC, CLEANUP_BY_STORAGE_SIZE_ONE_ITER_COUNT, CLEANUP_FROM_TRASH_SIZE_ONE_ITER_COUNT |
Периодичность и размер порции очистки, в том числе корзины | Секунды и число записей; увеличение порции ускоряет освобождение места и повышает нагрузку на хранилище |
| Временные данные | DATA_LIFE_TIME |
Срок жизни данных во временном хранилище кадров | Секунды; должен превышать время обработки кадра и подготовки события |
| Обмен сообщениями | KAFKA_MAX_REQUEST_SIZE |
Предельный размер сообщения брокера | Байты; определяет возможность передачи сообщений с крупными вложениями |
| Обмен сообщениями | Срок хранения сообщений в топиках | Время, в течение которого сообщение доступно потребителю | Часы; определяет устойчивость к недоступности потребителя и объём хранилища брокера |
| Видеофрагменты | OUTPUT_VIDEOS_LENGTH_FRAMES, VIDEO_LENGTH_LIMIT_SEC |
Длительность формируемого фрагмента и предел обработки | Кадры и секунды; влияют на размер материалов и нагрузку на ускорители |
| Отчётность | EVENTS_DEPTH_HOURS |
Глубина выборки событий для периодических отчётов | Часы; согласуется с периодичностью формирования отчётов |
| Отчётность | PERIODIC_REPORT_CHUNK_SIZE |
Размер порции при формировании отчёта | Число записей; влияет на потребление оперативной памяти сервисом отчётов |
| Уведомления | Параметры почтового сервера и каналов мессенджеров | Адрес, порт, учётные данные, параметры шифрования, адрес отправителя | Задаются по данным заказчика (подраздел 3.6.3) |
| Уведомления | Роли получателей и адрес ссылок в сообщениях | Определяют состав получателей и переход к карточке события | Соответствуют ролевой модели и адресу веб-интерфейса поставки |
| Синхронизация источников | Периодичность синхронизации, размер порции включения камер, интервал опроса по умолчанию | Режим обновления перечня камер внешней системы | Секунды и число камер; уменьшение порции снижает пиковую нагрузку при массовом включении |
| Интеграционный обмен | Адреса и реквизиты внешнего интерфейса, идентификатор задачи, условия передачи | Определяют состав и адресацию передаваемых событий | Задаются по данным заказчика (подраздел 3.6.2) |
| Журналирование | Уровень журналирования составных частей | Полнота диагностических сведений | Штатный уровень — информационный; повышенный применяется временно |
Таблица А.1 — Параметры настройки компонента.
Изменение параметра применяется новой редакцией Helm-релиза. Если шаблон чарта
не связывает изменение ConfigMap или Secret с шаблоном пода, соответствующая
рабочая нагрузка перезапускается контролируемо. Параметры, влияющие на нагрузку,
изменяются с последующим контролем показателей по разделу 4.
Для целевой поставки дополнительно составляется карта применения настроек по форме таблицы А.2. Она связывает пользовательское значение с ресурсом Kubernetes и позволяет определить, какие поды должны получить новую конфигурацию.
| Группа параметров | Источник | Ресурс Kubernetes | Конфиденциальность | Способ применения |
|---|---|---|---|---|
| Размещение и ресурсы | Файл значений Helm | Шаблон Deployment, StatefulSet или DaemonSet | Нет | Новая редакция Helm-релиза |
| Хранилища | Файл значений Helm | StorageClass, PVC и шаблон рабочей нагрузки | Адреса — нет; реквизиты — да | Новая редакция релиза; изменение PVC — по отдельной процедуре |
| Входной трафик и TLS | Файл значений и защищённое хранилище сертификатов | Ingress, Service и TLS Secret | Закрытый ключ — да | Новая редакция релиза или замена сертификата с проверкой маршрутов |
| Доступ к реестру | Защищённое хранилище реквизитов | imagePullSecret |
Да | Обновление секрета и контрольная загрузка образа |
| Прикладные параметры | Файл значений Helm | ConfigMap и шаблон рабочей нагрузки | Нет | Новая редакция релиза; при необходимости rollout restart |
| Пароли, ключи и маркеры | Защищённое хранилище реквизитов | Secret и шаблон рабочей нагрузки | Да | Ротация по подразделу 3.7 и контролируемый перезапуск потребителей |
Таблица А.2 — Карта применения параметров целевой поставки.
Приложение Б (рекомендуемое). Регламентные операции обслуживания¶
| Операция | Периодичность | Содержание | Подраздел |
|---|---|---|---|
| Контроль состояния Kubernetes и Helm | Ежедневно | Проверка состояния релиза, узлов, рабочих нагрузок, подов, результатов проверок готовности, событий и перезапусков | 4.1 |
| Контроль состояния камер и узлов | Ежедневно | Проверка доступности камер, распределения камер по узлам, накопления отказов | 4.1 |
| Контроль поступления событий | Ежедневно | Проверка регистрации событий по камерам с назначенными сценариями | 4.1 |
| Контроль очередей обмена | Ежедневно | Проверка отставания групп потребителей и очереди интеграционного обмена | 5.4 |
| Контроль свободного места | Ежедневно | Проверка заполнения томов данных и работы правил очистки | 5.3 |
| Контроль резервного копирования | Ежедневно | Проверка результата последнего задания, возраста копии, её состава, объёма и места хранения | 5.1.4 |
| Проверка ротации копий | Ежемесячно | Контроль соблюдения срока хранения и наличия последней успешной копии после ротации | 5.1.4 |
| Проверка синхронизации источников | Еженедельно | Просмотр истории синхронизаций, устранение расхождений перечня камер | 3.6.1 |
| Проверка доставки уведомлений | Еженедельно | Контроль отправки и ошибок доставки по каналам | 3.6.3 |
| Просмотр журнала действий пользователей | Ежемесячно | Контроль действий администраторов и операторов | 3.5.4 |
| Контрольное восстановление | По регламенту заказчика | Восстановление из копии на отдельном контуре с проверкой согласованности данных и сквозных функций | 5.1.5 |
| Проверка после изменения конфигурации | По событию | Выполнение проверок раздела 4 после изменения параметров, состава узлов или внешних систем | 4 |
| Обновление версии | По событию | Обновление в установленном порядке с резервным копированием и последующей проверкой | 5.2 |
Таблица Б.1 — Регламентные операции обслуживания.
Приложение В (справочное). Контрольные проверки после развёртывания¶
| № | Проверка | Способ | Признак успешного результата |
|---|---|---|---|
| 1 | Kubernetes и Helm-релиз | helm status, kubectl get nodes, kubectl get pods и kubectl get events |
Релиз развёрнут успешно, узлы и обязательные поды готовы, повторные перезапуски и критические события отсутствуют |
| 2 | Хранилища | Проверка приёма соединений и наличия баз данных сервисов | Хранилища доступны, базы данных созданы |
| 3 | Брокер сообщений | Проверка доступности и отставания групп потребителей | Отставание не накапливается |
| 4 | Веб-интерфейс | Открытие адреса и вход пользователя | Выполняется вход через СУДИР, открывается главная страница |
| 5 | Разграничение доступа | Вход под учётными записями двух ролей | Состав разделов соответствует роли и области видимости |
| 6 | Камеры | Раздел мониторинга камер | Камеры работоспособны, превью обновляются |
| 7 | Распределение нагрузки | Интерфейс распределения нагрузки | Все включённые камеры распределены, узлы подтверждают работоспособность |
| 8 | Изображение камеры | Вкладка «Трансляция» карточки камеры | Для камеры типа «Снапшот» открывается видеоплеер заказчика; для камеры, подключённой видеопотоком, трансляция воспроизводится в режимах HLS и WebRTC |
| 9 | Видеоаналитика | Назначение версии сценария камере | Детекторы включены, обработка выполняется |
| 10 | События | Журнал и динамический поток | События поступают, карточка содержит материалы |
| 11 | Отчётность | Формирование отчёта по выборке журнала в форматах PDF и XLSX | Файлы сформированы и сохранены на рабочее место |
| 12 | Уведомления | Контрольное событие по камере из правила | Уведомление доставлено |
| 13 | Синхронизация источников | Запуск синхронизации | Завершена без ошибок, перечень камер соответствует внешней системе |
| 14 | Интеграционный обмен | Журнал обмена | Событие передано, очередь не накапливается |
| 15 | Стройготовность | Раздел «Журналы → Стройготовность» | Процент готовности рассчитан, карточка проверки содержит изображение и ответ языковой модели |
| 16 | Журналирование и аудит | Централизованные журналы и журнал действий | Записи поступают, выборка выполняется |
Таблица В.1 — Чек-лист проверок после развёртывания.
Приложение Г (обязательное при подготовке целевой поставки). Уточняемые сведения¶
| Группа | Требуется установить | Документ, в котором фиксируется результат |
|---|---|---|
| Кластер Kubernetes | Версия кластера и Helm, пространство имён, имя релиза, метки типов узлов, affinity и tolerations, запросы и пределы ресурсов, состав GPU-ресурсов | Спецификация технических средств, схема развёртывания и конфигурация Helm-релиза |
| Состав узлов | Количество и типы узлов, их характеристики, распределение составных частей и графических ускорителей | Спецификация технических средств и схема развёртывания |
| Постоянные тома | Классы хранения, размеры и режимы доступа PVC, политика возврата томов, возможность расширения и привязка к типам узлов | Схема хранения и конфигурация Helm-релиза |
| Сетевая схема | Адреса и порты входных точек, правила межсетевого доступа, сегментация сети, параметры доставки видео | Схема соединений и требования безопасности |
| Публикация сервисов | Параметры Ingress или LoadBalancer, доменные имена, сертификаты TLS, маршруты HTTPS и WebSocket, медиапорты | Схема соединений и конфигурация Helm-релиза |
| Дистрибутив | Версия чарта, перечень дочерних чартов, образы с digest, контрольные суммы, поддерживаемый путь обновления | Формуляр, ведомость дистрибутива и протокол приложения Е |
| Подключение к СУДИР | Идентификатор приложения, адреса запроса авторизации и обмена маркерами, адреса возврата, запрашиваемые разрешения, групповые права доступа | Заявка на подключение к СУДИР и инструкция администратора |
| Внешние системы | Перечень систем видеонаблюдения, сервисов получения кадров, архивов и интеграционных интерфейсов, их адреса и реквизиты | Схема интеграций |
| Каналы уведомлений | Параметры почтового сервера и мессенджеров, правила адресации | Инструкция администратора |
| Параметры настройки | Значения параметров приложения А для целевой поставки | Конфигурация развёртывания и формуляр |
| Секреты и сертификаты | Состав Secret, владельцы значений, способ защищённой передачи, периодичность ротации, сроки действия TLS-сертификатов | Регламент управления доступом и секретами |
| Сроки хранения | Сроки хранения событий, изображений, видеофрагментов, архивных записей, журналов и записей аудита | Регламент хранения данных |
| Резервное копирование | Состав копий, периодичность, глубина хранения, место размещения, значения RPO и RTO, порядок контрольного восстановления | Регламент резервного копирования |
| Ролевая модель | Наименования двух функциональных ролей, состав полномочий, правила назначения областей видимости | Модель доступа |
| Справочники | Состав типов зон и типов ракурсов, закрепляемые за ракурсами промпты и пресеты | Инструкция администратора |
| Служба сопровождения | Реквизиты телефонной линии, адреса электронной почты и факса службы гарантийного обслуживания, доступ к средству регистрации обращений, перечень уполномоченных подавать заявки | Формуляр (подраздел 2.4) и Регламент гарантийного обслуживания |
Таблица Г.1 — Сведения, уточняемые для целевой поставки.
Приложение Д (справочное). Исходные тексты схем Mermaid¶
Приложение содержит исходный Mermaid-код графических схем документа. Диаграммы остаются в соответствующих разделах, а настоящее приложение предназначено для просмотра, копирования и проверки кода схем в Mermaid-редакторе, а также для случаев, когда графическое представление недоступно.
| Код | Схема | Раздел документа |
|---|---|---|
| CORE-AG-MER-001 | Схема 2.1 — Связи между составными частями компонента | 2.2. Связи между составными частями |
| CORE-AG-MER-002 | Схема 3.1 — Размещение рабочих нагрузок Центрального модуля в Kubernetes | 3.1. Настройка на состав технических средств |
| CORE-AG-MER-003 | Схема 5.1 — Выбор способа отката обновления | 5.2. Обновление версий и откат |
Исходные тексты¶
CORE-AG-MER-001. Схема 2.1 — Связи между составными частями компонента¶
Расположение схемы: 2.2. Связи между составными частями.
flowchart LR
USER["Рабочее место"] --> GW["Веб-интерфейс и шлюз"]
GW --> ACC["Доступ и аудит"]
GW --> CFG["Объекты, камеры,<br/>зоны и справочники"]
GW --> EVT["События и решения"]
GW --> STAT["Статистика и отчёты"]
CFG --> BUS["Брокер сообщений"]
SYNC["Синхронизация источников"] --> BUS
BUS --> LB["Распределение нагрузки"]
LB --> NRI["Исполняющее ядро<br/>видеоаналитики"]
MED["Приём и ретрансляция<br/>медиаданных"] --> NRI
MED --> GW
NRI --> BUS
BUS --> EVT
EVT --> VID["Подготовка видеоматериалов"]
VID --> EVT
EVT --> NOTIF["Уведомления"]
EVT --> INTG["Интеграционный обмен"]
EVT --> STAT
ACC --> DATA[("Хранилища:<br/>транзакционное,<br/>аналитическое, объектное")]
CFG --> DATA
EVT --> DATA
STAT --> DATA
NRI --> LOCAL[("Локальные артефакты<br/>и разделяемая память узла")]
CORE-AG-MER-002. Схема 3.1 — Размещение рабочих нагрузок Центрального модуля в Kubernetes¶
Расположение схемы: 3.1. Настройка на состав технических средств.
flowchart TB
INGRESS["Ingress / LoadBalancer<br/>HTTPS, WebSocket, медиапорты"]
subgraph K8S["Кластер Kubernetes"]
direction TB
subgraph MASTER["Мастер-нода"]
APP["Прикладные рабочие нагрузки<br/>и веб-шлюз"]
DATA["StatefulSet и сервисы<br/>хранилищ и брокера"]
PVC[("Постоянные тома<br/>SSD и HDD")]
APP --> DATA --> PVC
end
subgraph COMPUTE["Вычислительные ноды"]
MEDIA["Медиасерверы"]
NRI["Исполняющее ядро<br/>видеоаналитики"]
GPU["Ресурс nvidia.com/gpu"]
MEDIA --> NRI --> GPU
end
end
LLM["LLM-нода<br/>компонента LPI-VAP-MLLM"]
REGISTRY["Реестр<br/>контейнерных образов"]
INGRESS --> APP
APP <--> NRI
APP <--> LLM
REGISTRY --> MASTER
REGISTRY --> COMPUTE
CORE-AG-MER-003. Схема 5.1 — Выбор способа отката обновления¶
Расположение схемы: 5.2. Обновление версий и откат.
flowchart TD
START["Применена новая редакция"] --> MIG{"Миграции данных<br/>завершены успешно?"}
MIG -- Нет --> RESTORE["Остановить изменение;<br/>восстановить данные и конфигурацию<br/>из согласованной копии"]
MIG -- Да --> CHECK{"Инфраструктурные и сквозные<br/>проверки успешны?"}
CHECK -- Да --> ACCEPT["Зафиксировать приёмку<br/>новой редакции"]
CHECK -- Нет --> REV{"Изменения данных<br/>обратимы?"}
REV -- Да --> HELM["Выполнить helm rollback<br/>и повторить проверки"]
REV -- Нет --> RESTORE
Приложение Е (рекомендуемое). Протокол установки и приёмочной проверки¶
Протокол заполняется после первичного развёртывания и обновления. Пустое поле означает, что проверка не выполнялась; для неприменимой функции указывается причина.
| Поле | Значение |
|---|---|
| Дата, время начала и окончания | |
| Контур, кластер и пространство имён | |
| Helm-релиз и редакция | |
| Версия чарта BOX5 | |
| Перечень образов и digest | Прилагается ведомость |
| Контрольные суммы дистрибутива | Прилагается ведомость |
| Состав и версии нод | Прилагается перечень |
| Результат предварительной проверки инфраструктуры | Успешно / неуспешно; ссылка на протокол |
| Результат установки и миграций | Успешно / неуспешно; ссылка на журналы |
| Результат проверок раздела 4 | Успешно / неуспешно; перечень исключений |
| Выявленные отклонения и принятые меры | |
| Исполнитель | Должность, фамилия и инициалы, подпись |
| Представитель заказчика | Должность, фамилия и инициалы, подпись |
Таблица Е.1 — Форма протокола установки и приёмочной проверки.
Приложение Ж (рекомендуемое). Состав диагностического пакета¶
| Материал | Содержание | Ограничение |
|---|---|---|
| Паспорт инцидента | Время и часовой пояс, наблюдаемый признак, затронутые функции, действия перед отказом, идентификаторы камеры и события | Не включать персональные данные сверх необходимых для поиска записи |
| Сведения о релизе | Результаты helm status и helm history, версия чарта и digest затронутых образов |
Значения Helm и Secret не прикладывать |
| Состояние Kubernetes | Состояния затронутых нод, рабочих нагрузок, подов, PVC и события пространства имён за интервал инцидента | Не выгружать весь кластер, если отказ ограничен одним пространством имён |
| Журналы | Текущие и, при перезапуске, предыдущие журналы только затронутых контейнеров | Удалить маркеры доступа, пароли, строки подключения и содержимое Secret |
| Ресурсы | Загрузка CPU, памяти, дисков, сети и GPU; число перезапусков; заполнение томов | Указывать период измерения и единицы величин |
| Прикладной контекст | Состояния камер и вычислительных узлов, отставание потребителей, статус интеграционной передачи | Кадры и медиаматериалы передавать только по согласованию |
| Воспроизведение | Последовательность действий, ожидаемый и фактический результат | Не выполнять разрушающие действия на рабочем контуре ради воспроизведения |
Таблица Ж.1 — Состав диагностического пакета.
Лист регистрации изменений¶
| Изм. | Изменённых листов | Заменённых листов | Новых листов | Аннулированных листов | Всего листов в документе | № документа | Входящий № сопроводительного документа | Подпись | Дата |
|---|---|---|---|---|---|---|---|---|---|
| Рабочая редакция 0.1 | — | — | Все листы | — | Определяется при выпуске DOCX/PDF | Требуется присвоить при выпуске | — | Требуется подпись ответственного исполнителя | 01.09.2026 |
Таблица — Лист регистрации изменений
Рабочая редакция 0.1 отражает первоначальное заполнение документа в формате docs-as-code и не является зарегистрированным изменением утверждённого оригинала. При выпуске утверждаемой редакции необходимо:
- присвоить обозначение документа и формальный номер изменения;
- сформировать DOCX или PDF и указать фактическое число и номера листов;
- указать номер сопроводительного документа, если он оформляется;
- получить подписи ответственного исполнителя, проверяющего и нормоконтролёра в порядке, принятом для проекта;
- в последующих строках регистрировать только изменения утверждённого оригинала, а не отдельные технические коммиты Git.
История подготовки рабочей редакции сохраняется в Git. Она используется для трассировки исходного текста, но не заменяет оформленный лист регистрации изменений.