Перейти к содержанию

Дополнительная информация#

В данном разделе приводится следующая дополнительная информация:

Создание аккаунта#

Аккаунт создается с помощью HTTP-запроса к ресурсу "create account".

Аккаунт также можно создать с помощью сервиса Admin. Данный способ требует наличия существующих логина и пароль (или логина и пароля по умолчанию) и позволяет создать аккаунты типа "admin". См. подробную информацию в разделе "Сервис Admin" руководства администратора.

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

  • login — электронный адрес
  • password — пароль
  • account_type — тип аккаунта ("user" или "advanced_user")

Создайте аккаунт, используя свои аутентификационные данные.

Пример CURL-запроса к ресурсу "create account":

curl --location --request POST 'http://127.0.0.1:5000/6/accounts' \
--header 'Content-Type: application/json' \
--data '{
  "login": "user@mail.com",
  "password": "password",
  "account_type": "user",
  "description": "description"
}'

Необходимо заменить аутентификационные данные из примера на свои.

См. подробную информацию об аккаунтах в разделе "Аккаунты и типы авторизации" руководства администратора.

Для работы с токенами необходимо наличие аккаунта.

Создание расписания задачи GC#

Перед началом работы с LUNA PLATFORM можно создать расписание для задачи Garbage collection.

Для этого следует выполнить запрос "create tasks schedule" к сервису API, указав необходимые правила для расписания.

Пример команды создания расписания для аккаунта из раздела "Создание аккаунта", приведен ниже.

В примере задается расписание для задачи Garbage collection для событий старше 30 дней с удалением БО и исходных изображений. Задача будет повторяться один раз в сутки в 05:30 утра.

curl --location --request POST 'http://127.0.0.1:5000/6/tasks/schedules' \
--header 'Authorization: Basic dXNlckBtYWlsLmNvbTpwYXNzd29yZA==' \
--header 'Content-Type: application/json' \
--data '{
    "task": {
        "task_type": 4,
        "content": {
            "target": "events",
            "filters": {
                "create_time__lt": "now-30d"
            },
            "remove_samples": true,
            "remove_image_origins": true
        }
    },
    "trigger": {"cron": "30 5 * * *", "cron_timezone": "utc"},
    "behaviour": {"start_immediately": false, "create_stopped": false}
}'

При необходимости можно создать расписание без его автоматической активации. Для этого нужно указать параметр "create_stopped": "true". В таком случае после создания расписания его необходимо активировать вручную с помощью параметра "action" = "start" запроса "patch tasks schedule".

См. подробную информацию в разделе "Запуск задач по расписанию" руководства администратора.

Управление шифрованием биометрических шаблонов#

Примечание. См. подробную информацию в разделе "Шифрование биометрических шаблонов" в руководстве администратора.

Для обновления существующих биометрических шаблонов в базе данных Faces/Attributes/Events необходимо запустить скрипт descriptors_encryption.py. Этот скрипт предоставляет три варианта работы:

  • Шифрование исходных биометрических шаблонов.
  • Замена текущего ключа шифрования на новый.
  • Дешифрование зашифрованных биометрических шаблонов.

Скрипт требует установки трех переменных окружения вне зависимости от выбранного варианта:

  • OLD_ENCRYPTION_KEY (может быть пустым)
  • NEW_ENCRYPTION_KEY (может быть пустым)
  • ENCRYPTION_ALGORITHM (всегда обязателен и не может быть пустым)

Шифрование исходных биометрических шаблонов

Этот вариант позволяет зашифровать все биометрические шаблоны в базе данных, если они ранее не были зашифрованы. Уже зашифрованные биометрические шаблоны будут проигнорированы, поэтому скрипт можно запускать несколько раз. Для этого варианта необходимо заполнить переменную NEW_ENCRYPTION_KEY и оставить переменную OLD_ENCRYPTION_KEY пустой.

Замена текущего ключа шифрования на новый

Этот вариант предполагает, что шифрование уже было выполнено, и у вас есть текущий ключ шифрования, который вы хотите обновить. Уже зашифрованные биометрические шаблоны будут проигнорированы, поэтому скрипт можно запускать несколько раз. Необходимо указать обе переменные: OLD_ENCRYPTION_KEY и NEW_ENCRYPTION_KEY.

Дешифрование зашифрованных биометрических шаблонов

Этот вариант вернет биометрические шаблоны в их исходное состояние. Скрипт обработает только зашифрованные биометрические шаблоны и оставит неизменными оригинальные. Для выполнения этого варианта скрипта необходимо указать переменную OLD_ENCRYPTION_KEY и оставить переменную NEW_ENCRYPTION_KEY пустой.

Запуск скрипта миграции биометрических шаблонов#

Важно! Убедитесь, что сделали резервную копию базы данных перед запуском скрипта. Также учтите, что все три варианта выше очистят временные атрибуты.

Для выполнения миграции необходимо выполнить скрипт descriptors_encryption.py, передав ему соответствующие аргументы. Список доступных аргументов приведен ниже:

  • --config — Путь к файлу конфигурации.
  • --luna-config — Адрес и версия API сервиса Configurator для получения настроек (например, "http://127.0.0.1:5070/1").
  • --chunk-size — Размер пакета для обновления.
  • --LUNA_FACES_DB — Тег для установки LUNA_FACES_DB для получения настроек из Configurator (только при миграции БД Faces).
  • --DATABASE_NUMBER — Тег для установки DATABASE_NUMBER для получения настроек из Configurator.
  • --LUNA_ATTRIBUTES_DB — Тег для установки LUNA_ATTRIBUTES_DB для получения настроек из Configurator (только при миграции БД Faces).
  • --LUNA_EVENTS_DB — Тег для установки LUNA_EVENTS_DB для получения настроек из Configurator (только при миграции БД Events).
  • -v, --verbose — Включение режима отладки.

Также необходимо передать соответствующие переменные окружения в команду запуска контейнера (см. выше).

Важно! Скрипт необходимо выполнять когда сервис остановлен, после миграции БД и перед запуском повторным запуском сервиса.

Пример команды выполнения миграции биометрических шаблонов в БД сервиса Faces:

docker run \
--env=OLD_ENCRYPTION_KEY=<your_old_encryption_key> \
--env=NEW_ENCRYPTION_KEY=<your_new_encryption_key> \
--env=ENCRYPTION_ALGORITHM=aes256-gcm \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/logs/faces:/srv/logs \
--rm \
--network=host \
dockerhub.visionlabs.ru/luna/luna-faces:v.4.12.21 \
python3 ./base_scripts/descriptors_encryption.py --luna-config=http://127.0.0.1:5070/1 

Визуализация монтиторинга и логов с помощью Grafana#

Визуализация мониторинга выполняется за счет сервиса LUNA Dashboards, который содержит в себе платформу для визуализации данных мониторинга Grafana с настроенными дашбордами LUNA PLATFORM.

При необходимости можно отдельно установить настроенные дашборды для Grafana. См. дополнительную информацию в разделе "LUNA Dashboards" в руководстве администратора.

Вместе с Grafana можно использовать систему агрегации логов Grafana Loki, позволяющую гибко работать с логами LUNA PLATFORM. Для доставки логов LUNA PLATFORM в Grafana Loki используется агент Promtail (дополнительную информацию см. в разделе "Grafana Loki" в руководстве администратора).

LUNA Dashboards#

Примечание. Для работы с Grafana необходимо использовать InfluxDB версии 2.

Примечание. Перед обновлением убедитесь, что старый контейнер LUNA Dashboards удален.

Запуск контейнера LUNA Dashboards#

Используйте команду docker run со следующими параметрами для запуска LUNA Dashboards:

docker run \
--restart=always \
--detach=true \
--network=host \
--name=grafana \
-v /etc/localtime:/etc/localtime:ro \
dockerhub.visionlabs.ru/luna/luna-dashboards:v.0.1.1

Для использования веб-интерфейса Grafana нужно перейти по адресу "http://IP_ADDRESS:3000", при условии, что контейнеры LUNA Dashboards и InfluxDB были запущены.

Grafana Loki#

Примечание. Для запуска Grafana Loki требуется наличие запущенного сервиса LUNA Dashboards.

Примечание. Перед обновлением убедитесь, что старые контейнеры Grafana Loki и Promtail удалены.

Запуск контейнера Grafana Loki#

Используйте команду docker run со следующими параметрами для запуска Grafana Loki:

docker run \
--name=loki \
--restart=always \
--detach=true \
--network=host \
-v /etc/localtime:/etc/localtime:ro \
dockerhub.visionlabs.ru/luna/loki:2.7.1

Запуск контейнера Promtail#

Используйте команду docker run со следующими параметрами для запуска Promtail:

docker run \
-v /var/lib/luna/current/example-docker/logging/promtail.yml:/etc/promtail/luna.yml \
-v /var/lib/docker/containers:/var/lib/docker/containers \
-v /etc/localtime:/etc/localtime:ro \
--name=promtail \
--restart=always \
--detach=true \
--network=host \
dockerhub.visionlabs.ru/luna/promtail:2.7.1 \
-config.file=/etc/promtail/luna.yml -client.url=http://127.0.0.1:3100/loki/api/v1/push -client.external-labels=job=containerlogs,pipeline_id=,job_id=,version=

-v /var/lib/luna/current/example-docker/logging/promtail.yml:/etc/promtail/luna.yml — монтирование конфигурационного файла в контейнер Promtail

-config.file=/etc/promtail/luna.yml — флаг с адресом конфигурационного файла

-client.url=http://127.0.0.1:3100/loki/api/v1/push — флаг с адресом развернутой Grafana Loki

-client.external-labels=job=containerlogs,pipeline_id=,job_id=,version= — статические метки для добавления ко всем логам, отправляемым в Grafana Loki

Команды Docker#

Показать контейнеры#

Чтобы показать список запущенных Docker-контейнеров, используйте команду:

docker ps

Чтобы показать все имеющиеся Docker-контейнеры, используйте команду:

docker ps -a 

Копировать файлы в контейнер#

Можно переносить файлы в контейнер. Используйте команду docker cp для копирования файла в контейнер.

docker cp <file_location> <container_name>:<folder_inside_container>

Вход в контейнер#

Можно входить в отдельные контейнеры с помощью следующей команды:

docker exec -it <container_name> bash

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

exit

Имена образов#

Можно увидеть все имена образов с помощью команды

docker images

Удаление образа#

Если требуется удаление образа:

  • запустите команду docker images
  • найдите требуемый образ, например dockerhub.visionlabs.ru/luna/luna-image-store
  • скопируйте соответствующий ID образа из IMAGE ID, например, "61860d036d8c"
  • укажите его в команде удаления:
docker rmi -f 61860d036d8c

Удалите все существующие образы:

docker rmi -f $(docker images -q)

Остановка контейнера#

Контейнер можно остановить с помощью следующей команды:

docker stop <container_name>

Остановить все контейнеры:

docker stop $(docker ps -a -q)

Удаление контейнера#

Если необходимо удалить контейнер:

  • запустите команду "docker ps"
  • остановите контейнер (см. Остановка контейнера)
  • найдите требуемый образ, например: dockerhub.visionlabs.ru/luna/luna-image-store
  • скопируйте соответствующий ID контейнера из столбца CONTAINER ID, например, "23f555be8f3a"
  • укажите его в команде удаления:
docker container rm -f 23f555be8f3a

Удалить все контейнеры:

docker container rm -f $(docker container ls -aq)

Проверка логов сервисов#

Чтобы показать логи сервиса, используйте команду:

docker logs <container_name>

Описание параметров запуска#

При запуске Docker-контейнера для какого-либо из сервисов LUNA PLATFORM необходимо задать дополнительные параметры, требуемые для работы этого сервиса.

Параметры, требуемые для конкретного контейнера, описаны в разделе, посвященном запуску этого контейнера.

Все параметры, приведенные в примере запуска сервиса, необходимы для корректного запуска и работы сервиса.

Параметры запуска сервисов#

Пример команды запуска контейнеров сервисов LP:

docker run \
--env=CONFIGURATOR_HOST=127.0.0.1 \
--env=CONFIGURATOR_PORT=5070 \
--env=PORT=<Port_of_the_launched_service> \
--env=WORKER_COUNT=1 \
--env=RELOAD_CONFIG=1 \
--env=RELOAD_CONFIG_INTERVAL=10 \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/logs/<service>:/srv/logs/ \
--name=<service_container_name> \
--restart=always \
--detach=true \
--network=host \
dockerhub.visionlabs.ru/luna/<service-name>:<version>

Следующие параметры используются при запуске контейнеров сервисов LP:

  • docker run — команда для запуска выбранного образа в качестве нового контейнера.

  • dockerhub.visionlabs.ru/luna/<service-name>:<version> — позволяет задать образ, требуемый для запуска контейнера.

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

  • --network=host — указывает, что отсутствует симуляция сети и используется серверная сеть. При необходимости изменить порт для сторонних контейнеров следует заменить эту строку на -p 5440:5432. Здесь первый порт 5440 — это локальный порт, а 5432 — это порт, используемый в контейнере. Пример приведен для PostgreSQL.

  • --env= — задает переменные окружения, требуемые для запуска контейнера (см. раздел "Аргументы сервисов").

  • --name=<service_container_name> — задает имя запускаемого контейнера. Имя должно быть уникальным. Если уже существует контейнер с таким же именем, произойдет ошибка.

  • --restart=always — определяет политику перезагрузки. Daemon всегда перезагружает контейнер вне зависимости от кода завершения.

  • --detach=true — позволяет запустить контейнер в фоновом режиме.

  • -v — позволяет загружать содержимое серверной папки в объем контейнера. Таким образом содержимое синхронизируется. Загружаются следующие общие данные:

  • /etc/localtime:/etc/localtime:ro — задает текущий часовой пояс, используемый системой контейнера.

  • /tmp/logs/<service>:/srv/logs/ — позволяет копировать папку с записями (логами) сервиса на сервер в директорию /tmp/logs/<service>. Директорию для хранения логов можно изменить при желании.

Аргументы сервисов#

Каждый сервис в LUNA PLATFORM имеет свои собственные аргументы запуска. Эти аргументы можно передать через:

  • задание флага для скрипта запуска (run.py) соответствующего сервиса
  • установку отдельных переменных окружения (--env) в командной строке Docker

Например, с использованием флага --help можно получить список всех доступных аргументов. Пример передачи аргумента для сервиса API может выглядеть следующим образом:

docker run --rm dockerhub.visionlabs.ru/luna/luna-api:v.6.40.0 python3 /srv/luna_api/run.py --help

Список основных аргументов:

Флаг в строке запуска

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

Описание

--port

PORT

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

--workers

WORKER_COUNT

Количество "рабочих процессов" для сервиса.

--log_suffix

LOG_SUFFIX

Суффикс, добавляемый к именам файлов логов (при включенном параметре записи логов в файл).

--config-reload

RELOAD_CONFIG

Включение автоматической перезагрузки конфигураций. См. раздел "Автоматическая перезагрузка конфигураций" в руководстве администратора LUNA PLATFORM 5.

--pulling-time

RELOAD_CONFIG_INTERVAL

Период проверки конфигураций (по умолчанию 10 секунд). См. раздел "Автоматическая перезагрузка конфигураций" в руководстве администратора LUNA PLATFORM 5.

--luna-config

CONFIGURATOR_HOST, CONFIGURATOR_PORT

Адрес сервиса Configurator для загрузки настроек. Для --luna-config передается в формате http://localhost:5070/1. Для переменных окружения хост и порт задаются явно. Если аргумент не задан, то будет использован конфигурационный файл по умолчанию.

--config

Нет

Путь до конфигурационного файла с настройками сервиса.

--<config_name>

Нет

Тег указанной настройки в Configurator. При задании данной настройки будет использовано значение тегированной настройки. Пример: --LUNA_MONITORING TAG_1. |

Примечание. Необходимо заранее присвоить тег соответствующим настройкам в Configurator.

Примечание. Работает только с флагом --luna-config.

--tls_cert

Нет

Путь к SSL-сертификату для запуска сервиса с использованием протокола HTTPS.

--tls_key

Нет

Путь к SSL-закрытому ключу для запуска сервиса с использованием протокола HTTPS.

--tls_key_pass

Нет

Пароль для SSL-закрытого ключа для запуска сервиса с использованием протокола HTTPS.

Перечень аргументов может отличаться в зависимости от сервиса.

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

Для переопределения настроек используется префикс VL_SETTINGS. Примеры:

  • --env=VL_SETTINGS.LUNA_MONITORING.SEND_DATA_FOR_MONITORING=0. Использование переменной окружения из данного примера установит значение настройки "SEND_DATA_FOR_MONITORING" для секции "LUNA_MONITORING" равным "0".
  • --env=VL_SETTINGS.OTHER.STORAGE_TIME=LOCAL. Для несоставных настроек (настроек, которые расположены в секции "OTHER" в конфигурационном файле) необходимо указать префикс "OTHER". Использование переменной окружения из данного примера установит значение настройки "STORAGE_TIME" (если сервис использует данную настройку) на значение "LOCAL".

Передача флагов с использованием переменной окружения

Флаги, для которых явно не выделена переменная окружения, можно передать с помощью переменной окружения EXTEND_CMD.

Например, можно передать тег настроек следующим способом:

--env=EXTEND_CMD="--LUNA_MONITORING=TAG_1 --LUNA_EVENTS_DB=TAG_2"

Параметры создания баз данных#

Пример команды запуска контейнеров для миграции баз данных или их создания:

docker run \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/logs/<service>:/srv/logs/ \
--rm \
--network=host \
dockerhub.visionlabs.ru/luna/<service-name>:<version> \
python3 ./base_scripts/db_create.py --luna-config http://localhost:5070/1

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

--rm — этот параметр указывает, удаляется ли контейнер после завершения обработки всех заданных скриптов.

python3 ./base_scripts/db_create.py — этот параметр содержит версию Python и скрипт db_create.py, запускаемый в контейнере. Этот скрипт используется для создания структуры базы данных.

--luna-config http://localhost:5070/1 — этот параметр указывает, откуда запущенный скрипт должен получать конфигурации. По умолчанию конфигурации запрашиваются сервисами от сервиса Configurator.

Запись логов на сервер#

Чтобы включить сохранение логов на сервер, необходимо:

  • создать директории для логов на сервере;
  • активировать запись логов и задать расположение хранения логов внутри контейнеров сервисов LP;
  • настроить синхронизацию директорий логов в контейнере с логами на сервере с помощью аргумента volume при старте каждого контейнера.

Создание директории логов#

Ниже приведены примеры команд для создания директорий для хранения логов и присвоения им прав для всех сервисов LUNA PLATFORM.

mkdir -p /tmp/logs/configurator /tmp/logs/image-store /tmp/logs/accounts /tmp/logs/faces /tmp/logs/licenses /tmp/logs/events /tmp/logs/python-matcher /tmp/logs/handlers /tmp/logs/remote-sdk /tmp/logs/tasks /tmp/logs/tasks-worker /tmp/logs/sender /tmp/logs/api /tmp/logs/admin /tmp/logs/backport3 /tmp/logs/backport4 /tmp/logs/luna-video-agent /tmp/logs/luna-video-manager
chown -R 1001:0 /tmp/logs/configurator /tmp/logs/image-store /tmp/logs/accounts /tmp/logs/faces /tmp/logs/licenses /tmp/logs/events /tmp/logs/python-matcher /tmp/logs/handlers /tmp/logs/remote-sdk /tmp/logs/tasks /tmp/logs/tasks-worker /tmp/logs/sender /tmp/logs/api /tmp/logs/admin /tmp/logs/backport3 /tmp/logs/backport4 /tmp/logs/luna-video-agent /tmp/logs/luna-video-manager

Если необходимо использовать сервис Python Matcher Proxy, то нужно дополнительно создать директорию /tmp/logs/python-matcher-proxy и установить ей разрешения.

Активация записи логов#

Активация записи логов сервисов LP#

Для активации записи логов в файл необходимо задать настройки log_to_file и folder_with_logs в секции <SERVICE_NAME>_LOGGER настроек каждого сервиса.

Автоматический способ (перед/после запуска Configurator)

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

Выполните следующую команду после запуска сервиса Configurator:

docker cp /var/lib/luna/current/extras/conf/logging.json luna-configurator:/srv/luna_configurator/used_dumps/logging.json

Обновите настройки записи логов с помощью скопированного файла.

docker exec -it luna-configurator python3 ./base_scripts/db_create.py --dump-file /srv/luna_configurator/used_dumps/logging.json

Ручной способ (после запуска Configurator)

Перейдите в интерфейс сервиса Configurator (127.0.0.1:5070) и задайте путь расположения логов в контейнере в параметре folder_with_logs для всех сервисов, чьи логи необходимо сохранить. Например, можно использовать путь /srv/logs.

Установите параметр log_to_file как true чтобы активировать запись логов в файл.

Активация записи логов сервиса Configurator (перед/после запуска Configurator)#

Настроек сервиса Configurator нет в пользовательском интерфейсе Configurator, они расположены в следующем файле:

/var/lib/luna/current/example-docker/luna_configurator/configs/luna_configurator_postgres.conf

Следует изменить параметры логирования в этом файле перед запуском сервиса Configurator или перезапустить его после внесения изменений.

Задайте путь расположения логов в контейнере в параметре FOLDER_WITH_LOGS = ./ файла. Например, FOLDER_WITH_LOGS = /srv/logs.

Установите параметр log_to_file как true чтобы активировать запись логов в файл.

Монтирование директорий с логами при старте сервисов#

Директория с логами монтируется с помощью следующего аргумента при старте контейнера:

-v <server_logs_folder>:<container_logs_folder> \

где <server_logs_folder> директория, созданная на этапе создания директории логов, а <container_logs_folder> директория, созданная на этапе активации записи логов.

Пример команды запуска сервиса API с монтированием директории с логами:

docker run \
--env=CONFIGURATOR_HOST=127.0.0.1 \
--env=CONFIGURATOR_PORT=5070 \
--env=PORT=5000 \
--env=WORKER_COUNT=1 \
--env=RELOAD_CONFIG=1 \
--env=RELOAD_CONFIG_INTERVAL=10 \
--name=luna-api \
--restart=always \
--detach=true \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/logs/api:/srv/logs \
--network=host \
dockerhub.visionlabs.ru/luna/luna-api:v.6.40.0

Примеры команд запуска контейнеров в данной документации содержат эти аргументы.

Настройка ротации логов Docker#

Чтобы ограничить размер логов, генерируемых Docker, можно настроить автоматическую ротацию логов. Для этого необходимо добавить в файл /etc/docker/daemon.json следующие данные:

{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m",
        "max-file": "5"
    }
}

Это позволит Docker хранить до 5 файлов логов на контейнер, при этом каждый файл будет ограничен 100 Мб.

После изменения файла необходимо перезапустить Docker:

systemctl reload docker

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

Задание пользовательских настроек InfluxDB#

Для InfluxDB OSS 2 доступны следующие настройки:

"send_data_for_monitoring": 1,
"use_ssl": 0,
"flushing_period": 1,
"host": "127.0.0.1",
"port": 8086,
"organization": "<ORGANIZATION_NAME>",
"token": "<TOKEN>",
"bucket": "<BUCKET_NAME>",
"version": <DB_VERSION>

Можно обновить настройки InfluxDB для сервисов LP в сервисе Configurator, выполнив следующие действия:

  • откройте следующий файл:
vi /var/lib/luna/current/extras/conf/influx2.json
  • задайте необходимые данные;
  • сохраните изменения;
  • скопируйте файл в контейнер InfluxDB:
docker cp /var/lib/luna/current/extras/conf/influx2.json luna-configurator:/srv/
  • обновите настройки в сервисе Configurator.
docker exec -it luna-configurator python3 ./base_scripts/db_create.py --dump-file /srv/influx2.json

Также можно вручную обновить настройки в пользовательском интерфейсе сервиса Configurator.

Настройки сервиса Configurator задаются отдельно.

  • откройте файл с настройками Configurator:
vi /var/lib/luna/current/example-docker/luna_configurator/configs/luna_configurator_postgres.conf
  • задайте необходимые данные;
  • сохраните изменения;
  • перезапустите Configurator:
docker restart luna-configurator

Использование Python Matcher с Python Matcher Proxy#

Как было сказано ранее, вместе с сервисом Python Matcher можно дополнительно использовать сервис Python Matcher Proxy, который будет перенаправлять запросы сравнения либо сервису Python Matcher, либо плагинам сравнения. Использование плагинов может значительно ускорить выполнение запросов на сравнение. Например, с помощью плагинов возможно организовать хранение необходимых для выполнения операций сравнения данных и дополнительных полей объектов в отдельном хранилище, что позволит ускорить доступ к данным по сравнению с использованием стандартной БД LUNA PLATFORM.

Для использования сервиса Python Matcher с Python Matcher Proxy необходимо дополнительно запустить соответствующий контейнер, а затем выставить определенную настройку в сервисе Configurator. Выполняйте нижеперечисленные действия только если собираетесь использовать плагины сравнения.

См. описание и использование плагинов сравнения в руководстве администратора.

Запуск контейнера Python Matcher Proxy#

Используйте следующую команду для запуска сервиса:

docker run \
--env=CONFIGURATOR_HOST=127.0.0.1 \
--env=CONFIGURATOR_PORT=5070 \
--env=PORT=5110 \
--env=WORKER_COUNT=1 \
--env=RELOAD_CONFIG=1 \
--env=RELOAD_CONFIG_INTERVAL=10 \
--env=SERVICE_TYPE="proxy" \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/logs/python-matcher-proxy:/srv/logs \
--name=luna-python-matcher-proxy \
--restart=always \
--detach=true \
--network=host \
dockerhub.visionlabs.ru/luna/luna-python-matcher:v.1.12.0

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

ADDITIONAL_SERVICES_USAGE = "luna_matcher_proxy":true