Перейти к основному содержимому
Версия: 1.14.2

7. Администрирование

7.1 Включение отправки писем на SMTP-сервер на развернутой OMNI Platform

  1. Остановите развернутую OMNI Platform:

    $ ./cli.sh platform uninstall
  2. Внесите изменения в файле ./cfg/platform.secrets.json в platform-email-secret.

  3. Пересоздайте секреты:

    $ ./cli.sh platform install-secrets
  4. Заново разверните OMNI Platform:

    $ ./cli.sh platform install

7.2 Загрузка базы лиц

Чтобы загрузить базу изображений лиц, воспользуйтесь скриптом из папки utils/upload_script дистрибутива поставки OMNI Platform. Скрипт принимает файл с путями до изображений и отправляет запросы на создание профилей в OMNI Platform.

Результат работы скрипта - это профили, созданные по изображениям в OMNI Platform, а также список файлов в папке script_files:

  • result.txt: Файл с числом, показывающим количество изображений, обработанных при прошлом запуске скрипта. В это число также входят изображения, во время обработки которых произошла ошибка. Число обновляется во время работы скрипта.

  • errors.txt: Файл, в который записываются ошибки во время загрузки изображений в OMNI Platform, в формате: <путь до изображения> : <ошибка>

  • trace_errors.txt: Файл с подробным описанием ошибки, произошедшей при загрузке изображения, в формате: <путь до изображения> : <ошибка> <traceback>. Можно использовать для самостоятельной отладки или отправки в службу технической поддержки.

Системные требования

  • Операционная система: Ubuntu 20.04
  • Python: Версия 3.8
  • pip: Версия 22.0.4
подсказка

Все последующие шаги выполняются из папки upload_script.

Подготовка

  1. Вам понадобится файл, в котором прописаны пути до изображений, предназначенных для загрузки в OMNI Platform. Путь до каждого изображения должен начинаться с новой строки без отступов.

    Например:

    /home/stranger/Downloads/1.jpeg
    /home/stranger/Downloads/2.jpeg
    /home/stranger/Downloads/3.jpeg

    Такой файл можно создать с помощью команды, которая рекурсивно найдет все файлы формата jpg или jpeg в датасете и выведет абсолютные пути до них в файл:

    find <абсолютный путь до датасета с изображениями> -type f -name "*.jpg" -o -name "*.jpeg" > image_paths.txt
    • -name <регулярное выражение> задает формат изображений, а точнее условие для поиска.
    • -o определяет логическое отношение ИЛИ между двумя условиями.
  2. Сгенерируйте виртуальное окружение для запуска скрипта загрузки изображений в OMNI Platform:

    python3 -m venv generate_persons_env
  3. Подключитесь к сгенерированному окружению:

    source generate_persons_env/bin/activate
  4. Находясь в виртуальном окружении, установите необходимые зависимости:

    pip3 install -r requirements.txt

Работа со скриптом

Запуск скрипта

Запустить скрипт можно только из виртуального окружения, созданного на этапе подготовки, через выполнение файла generate_persosn.py.

python generate_persons.py

Запустите генерацию профилей по ранее сгенерированному списку путей до изображений:

python generate_persons.py -p ./image_paths.txt -H <platform url> -t <platform token> -P <profile group id>

Обязательные аргументы:

-p --paths Путь до файла, содержащего пути до изображений лиц.

-H --host URL инстанса OMNI Platform, в который нужно загрузить изображения. Убедитесь, что URL прописан без косой черты в конце.

-t --token Токен доступа/авторизационный ключ пользователя, который предоставляет доступ к загрузке всех изображений. Токен можно получить на главной странице OMNI Platform после авторизации.

Необязательные аргументы:

-T --throughput Параметр определяет максимальное количество запросов на создание профиля, которое выполняет сервер во время работы скрипта.Рекомендуется не менять этот параметр без предварительных расчётов производительности OMNI Platform на вашей конфигурации серверной машины.

-l --limit <limit> Параметр ограничивает количество загружаемых изображений, если в датасете их содержится больше чем требуется для загрузки.

-P --profile_group uuid4 группы профилей, в которую необходимо поместить все создаваемые по изображениям профили. Добавление в группу требуется для настройки оповещений по созданным профилям. uuid4 можно получить в веб-интерфейсе OMNI Platform, нажав на пять цифр в левом верхнем углу карточки списка наблюдения.

-c --clear-prev Параметр позволяет игнорировать предыдущие результаты запуска скрипта и начинать загрузку заново, очистив файл result.txt. Обратите внимание, что файлы errors.txt и trace_errors.txt также будут очищены. Если требуется сохранить логи, эти файлы необходимо скопировать в другое расположение.

Получить полное описание параметров скрипта:

python3 generate_persons.py -h

Об успешной работе скрипта свидетельствует наличие новых профилей с изображениями из датасета в инстансе OMNI Platform, а также консольные сообщения формата: Handled <количество обработанных изображений> images

Остановка скрипта

Остановить скрипт можно комбинацией клавиш Ctrl+C. Весь прогресс предыдущей обработки сохранится, и при необходимости можно будет возобновить загрузку.

Работа с ошибками загрузки

Сообщение о неудачной загрузке изображения будет выведено в консоль, при этом скрипт продолжит работу. Сообщение об ошибке сохранится в файл errors.txt, а более подробная информация будет записана в файл trace_errors.txt.


- sort: cannot read: ./local_im: No such file or directory

Путь до файла с абсолютными путями до изображений в датасете указан неверно. Проверьте, что файл по переданному пути действительно существует.


-   <class 'aiohttp.client_exceptions.ClientResponseError'>|404, message='Not Found', url=URL('http://sadasdasd/api/v2/')
<class 'aiohttp.client_exceptions.ClientConnectorError'>|Cannot connect to host asdasd:80 ssl:default [Name or service not known]
<class 'aiohttp.client_exceptions.InvalidURL'>|http:///asdasd/api/v2/

URL инстанса OMNI Platform указан неверно. Проверьте, что OMNI Platform действительно находится по указанному URL.


- <class 'Exception'>|[{'message': 'User has no access or id is incorrect'}]

Токен авторизации пользователя указан неверно. Проверьте, что вы верно скопировали токен.


-   <class 'Exception'>|[{'message': 'One or several profiles_groups does not exist', 'code': '0x573bkd35'}]
<class 'Exception'>|[{'message': '“%(value)s” is not a valid UUID.'}]

Группы профилей по переданному id не существует. Проверьте, что вы верно скопировали id группы профилей.


-   <class 'Exception'>|[{'message': 'No faces found', 'code': '0x95bg42fd'}]
<class 'Exception'>|[{'message': 'Low quality photo', 'code': '0x86bd49dh'}]

Лица на изображении отсутствуют, либо загружено изображение недостаточного качества. Профиль по такому изображению не появится в OMNI Platform.


7.3 Резервное копирование и восстановление базы данных

примечание

Не поддерживается для внешних баз данных.

Команды выполняются из директории setup.

Создание резервной копии базы данныx

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

$ ./cli.sh platform db-backup - <root_postgres_user> <dump_path>
примечание

Имя <root_postgres_user> можно посмотреть в файле ./cfg/platform.secrets.json в postgres-root-credentials.user

Восстановление данных из резервной копии базы данных

примечание

Восстановление данных из резервной копии необходимо выполнять на той же версии платформы, с которой была создана резервная копия.

  1. Остановите image-api:

    $ ./cli.sh image-api uninstall
  2. Запросите список сервисов:

    $ kubectl get deployment
  3. Остановите все сервисы, кроме platform-postgres-dep:

    $ kubectl scale deployment <SERVICE_NAME_1> <SERVICE_NAME_2> --replicas=0
  4. Выполните восстановление данных из резервной копии:

    $ ./cli.sh platform db-restore - <dump_path>
  5. Запустите остановленные сервисы

    $ kubectl scale deployment <SERVICE_NAME> --replicas <COUNT>

    либо заново разверните OMNI Platform

    $ ./cli.sh platform install
  6. Запустите image-api:

    $ ./cli.sh image-api install

7.4 Регистрация новых пользователей

Регистрация новых пользователей через веб-интерфейс

  1. Откройте страницу http://$DOMAIN/sign-up и введите адрес электронной почты и пароль нового пользователя.
  2. Войдите в указанную электронную почту и перейдите по ссылке подтверждения регистрации во входящем письме.
к сведению

Если SMTP-сервер не настроен, можно подтвердить регистрацию через кабинет администратора.

  1. Для этого перейдите по ссылке http://$DOMAIN/storage/admin и введите логин и пароль администратора (PLATFORM_ADMIN_EMAIL и PLATFORM_ADMIN_PASSWORD) для входа в систему.
  2. Далее нажмите на вкладку Users, в списке пользователей откройте карточку только что созданного пользователя и проставьте статус Active в разделе Permissions.
  3. Затем нажмите Save, чтобы сохранить изменения, и перейдите на страницу входа в воркспейс с помощью VIEW SITE в верхней части экрана.
  1. Регистрация подтверждена! На странице http://$DOMAIN/sign-in введите электронную почту и пароль для входа в воркспейс.

Регистрация новых пользователей с помощью cURL-запросов

  1. Воспользуйтесь cURL-шаблоном для отправки API запроса на регистрацию нового пользователя:
curl --location 'http://$DOMAIN' --header 'Content-Type: application/json' --data-raw '{"query":"mutation ($userInfo: RegistrationInput!) {registration(userInfo: $userInfo) {ok}}","variables":{"userInfo":{"password":"password","confirmPassword":"password","email":"email@email.com"}}}'

В шаблоне нужно заполнить следующие поля:

  • http://$DOMAIN - URL развернутого сервера платформы
  • "password":"password" - Ввести пароль
  • "confirmPassword":"password" - Подтвердить пароль
  • "email":"email@email.com" - Ввести адрес электронной почты

В ответе на запрос должен вернуться статус "ok": true.

  1. Далее подтвердите регистрацию через адрес электронной почты, или кабинет администратора (если не настроен SMTP-сервер).
  2. Регистрация подтверждена! На странице http://$DOMAIN/sign-in введите электронную почту и пароль для входа в воркспейс.
примечание

Система автоматически создает отдельный воркспейс для каждого нового пользователя. Подключение нескольких пользователей к одному воркспейсу невозможно.

7.5 Обновление лицензии

Предусловия

Установлена OMNI Platform c активированной лицензией.

Инструкция по обновлению лицензии

  1. Скопируйте файл лицензии face_sdk.lic в папку setup. Если имя файла отличается, переименуйте его в face_sdk.lic.

  2. Если ключ лицензии обновился (была выдана новая лицензия, а не продлена существующая), обновите ключ лицензии в файлах ./cfg/platform.secrets.json и ./cfg/license-server.settings.cfg.

  3. Перейдите в директорию setup и пересоздайте секреты:

    ./cli.sh platform install-secrets`

    Ожидаемый вывод:

    secret "rabbit-secret" deleted
    secret/rabbit-secret created
    ...
    secret "face-sdk" deleted
    secret/face-sdk created
    name, server or password is empty, "docker-regcreds" secret creation skipped
    secret "postgres-creds-pack" deleted
    secret/postgres-creds-pack created
  4. Активируйте лицензию:

    ./cli.sh license-server activate`

    Ожидаемый вывод:

    [2023-06-20 13:58:49+03:00] INF Activating license key...
    [2023-06-20 13:58:50+03:00] INF License activated successfully!
  5. Перезапустите сервис:

    kubectl delete $(kubectl get pod -o name) 

    Ожидаемый вывод:

    pod "activity-matcher-dep-5ffdb45cbf-kkmd7" deleted
    ...
    pod "securos-integration-service-dep-6669d88d8b-mdwff" deleted
    pod "verify-matcher-dep-5695b46bd5-nvlr7" deleted

    Выполните команду:

    watch -n 0.1 kubectl get pod

    и дождитесь, пока все поды (pods) не перейдут в статус Running.

    Ожидаемый вывод:

    NAME                                                        READY          STATUS         RESTARTS         AGE
    activity-matcher-dep-6fdc8bfbd5-pl8ql 1/1 Running 2 (24h ago) 24h
    age-estimator-dep-544cdfd7c-4khhh 1/1 Running 0 24h
    ...
    securos-integration-service-dep-77f98b497d-66q 1/1 Running 0 24h
    verify-matcher-dep-85ddfdfd4f-7t7br 1/1 Running 0 24h

    Завершите команду комбинацией клавиш Ctrl+C.

  6. Проверьте, что срок лицензии обновился:

    ./cli.sh license-server status-license

    В результате должен быть выведен ключ лицензии и количество дней до её истечения. Ожидаемый вывод:

    Activation Status: OK
    License key: YOUR-LICENSE-KEY
    Days Left To Expiration: 10

7.6 Увеличение скорости построения биометрического шаблона

предупреждение

Изменение данной конфигурации влияет только на запрос search(sourceImage).

Чтобы увеличить скорость построения биометрического шаблона, откройте файл конфигурации ./cfg/image-api.values.yaml, перейдите в пункт face-detector-template-extractor.configs.recognizer.params, добавьте в нём поле num_threads: <> и пропишите в поле необходимое количество потоков.

примечание

Для максильной производительности количество потоков необходимо подбирать относительно конфигурации сервера, на котором запускается OMNI Platform. Количество потоков не должно превышать количества ядер процессора!