В этой статье:

Получение файлов конфигурации

Подготовка рабочей машины

Настройка конфигурационных файлов платформы

Запуск и остановка контейнеров

Работа с платформой

Проверка состояния и логирование

Ограничение ресурсов контейнеров

Место хранения образов

Работа с платформой через Docker

В статье описан порядок развертывания и запуска «Форсайт. Аналитическая платформа» в Docker-контейнерах. Для разворачивания платформы будет использоваться инструмент Docker Compose. Перед началом работы подготовьте необходимое программное обеспечение, дистрибутивы платформы и данные для подключения к используемым сервисам:

Все дальнейшие команды выполняются в оболочке PowerShell при работе в ОС Windows или в терминале при работе в ОС Linux.

Получение файлов конфигурации

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

  1. Архив с файлами конфигурации, необходимыми для создания Docker-контейнеров с помощью Docker Compose, можно получить при обращении в техническую поддержку по адресу support@fsight.ru или через сервисы технической поддержки, которые доступны после регистрации на сайте. Распакуйте архив в какую-либо директорию.

  1. В каталог build скопируйте дистрибутивы компонентов, которые требуется развернуть: BI-сервера, серверной части веб-приложения и при необходимости продукта «Форсайт. Бюджетирование и консолидация».

  2. В папке compose переименуйте файл .env.example в .env.

  3. В файле .env в следующих переменных задайте данные для подключения к сервису лицензий licman и учётные данные служебного пользователя:

LICMAN_PORT=8510

LICMAN_HOST=<licman server>

AUDIT_USER=<audit user>

AUDIT_PASS=<audit user password>

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

  1. Задайте переменную PRODUCT_DAT, если предполагается работа с программным продуктом «Форсайт. Бюджетирование и консолидация». В качестве значения укажите содержимое файла лицензии product.dat, значение указывается в кавычках со всеми переводами строк. Если продукт «Форсайт. Бюджетирование и консолидация» не используется, переменную PRODUCT_DAT изменять не требуется. Пример:

PRODUCT_DAT="U2FsdGVkX9+0LXsbjnq+Q6kTzhKxrtSkImdLraQr1ToSs0ZGf1puqBnCebAws1b

oCimGzwYIiRMNFGTItGHsQuGGRHKeOCf1v/TvvyLrIiryYQOwCixyDa2Ts1xbRu8

7"

  1. Во всех вложенных каталогах compose/conf переименуйте файлы с суффиксом «.example», удалив этот суффикс из имени. Пример: config.json.example > config.json.

В результате выполнения указанных действий будет подготовлен комплект файлов для развёртывания платформы через Docker. Сборка Docker-контейнеров будет осуществляться в соответствии с инструкциями, которые заданы в файле compose/compose.yml.

Подготовка рабочей машины

Для развёртывания платформы установите Docker на рабочей машине. Инструкции по установке Docker для Linux/Windows приведены в официальной документации. Для загрузки Docker-образов рабочая машина должна иметь доступ к используемым репозиториям. Если доступ в интернет осуществляется через прокси-сервер, предварительно настройте Docker для работы с ним.

При работе в ОС Linux, помимо Docker, требуется установить плагин Docker Compose. Инструкция по установке приведена в официальной документации. Также можно воспользоваться официальной документацией того дистрибутива Linux, который используется. Например, документацией Astra Linux для установки Docker и Docker Compose https://docs.astralinux.ru/latest/guide/virtual/docker/.

Если рабочая машина подключается к интернету через прокси-сервер, то необходимо настроить прокси для Docker. Значения адреса и порта прокси-сервера уточните у администратора сети. Перед запуском Docker-образов выполните команды:

$env:HTTP_PROXY="http://<адрес_прокси>:<порт>"

$env:HTTPS_PROXY="http://<адрес_прокси>:<порт>"

export HTTP_PROXY="http://<адрес_прокси>:<порт>"

export HTTPS_PROXY="http://<адрес_прокси>:<порт>"

После этого при первом запуске Docker сможет обратиться к репозиторию Astra Linux и взять оттуда образ Astra Linux 1.8 для монтирования системы. Для проверки доступа Docker в интернет и возможности получения образа используйте команду:

docker pull registry.astralinux.ru/library/astra/ubi18:1.8.4

Если доступ имеется, то будет выведено сообщение об успешной загрузке/обновлении образа Astra Linux 1.8.

При работе в Linux сервису Docker требуется возможность изменять файл Metabases.xml в случае изменения списка репозиториев. Предоставьте пользователю, от имени которого запускается Docker, необходимые права на файл:

chown <название пользователя>:<группа пользователя> <путь до Metabases.xml, включая сам файл>

chmod 777 <путь до Metabases.xml, включая сам файл>

Настройка конфигурационных файлов платформы

В подкаталогах compose/conf находятся конфигурационные файлы компонентов платформы. При необходимости измените настройки в этих файлах:

Запуск и остановка контейнеров

Для запуска всех сервисов, указанных в файле compose.yml, перейдите в каталог compose и выполните команду:

docker compose up -d

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

При первом запуске сборки контейнеров или при наличии изменений файлов в папке build команда будет выполняться дольше, чем при обычной работе. Также при первом запуске сервисы используемых контейнеров будут зарегистрированы в ОС.

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

Для остановки и удаления контейнеров, созданных Docker Compose, выполните из каталога compose команду:

docker compose down

Список репозиториев, который мог быть изменён в файле Metabases.xml, будет сохранён.

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

docker compose up -d biserver webserver

При этом будут запущены только контейнеры с BI-сервером и серверной частью веб-приложения, а также необходимые им зависимости, если они указаны в compose.yml. Остановка и удаление конкретных контейнеров производится по той же логике:

docker compose down biserver

Эта команда остановит и удалит только BI-сервер.

Работа с платформой

После успешного запуска контейнеров платформа будет доступна на компьютере пользователя по следующим адресам:

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

При добавлении репозиториев на СУБД, отличных от Postgres, учитывайте требования, описанные в подразделе «Поддерживаемые СУБД».

Сведения о добавленном репозитории сохраняются в файле Metabases.xml и будут доступны после перезапуска контейнера. Для работы продукта «Форсайт. Бюджетирование и консолидация» добавьте в список репозиториев платформы репозиторий, указанный в compose/conf/bud/config.json.

Примечание. Платформа работает в режиме GetStatusMode=1, то есть при отсутствии запросов от пользователя сессия будет прекращена в течение 30 минут автоматически.

Проверка состояния и логирование

Для проверки статуса работы контейнеров выполните команду docker compose ps:

Будут отображены текущие состояния всех активных контейнеров.

При наличии следующих ошибок в логах проверьте настройки в файле .env:

"Укажите имя и пароль сервисного пользователя в файле .env"

"Укажите адрес сервиса лицензирования в файле .env"

В настройках платформы по умолчанию включено логирование BI-сервера на уровне Debug. Поменять уровень логирования можно в файле compose/conf/biserver/registry.reg, изменив значение параметра SeverityLevel.

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

docker compose logs <название_контейнера>

где контейнер: biserver, webserver или bud.

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

docker compose logs

Для просмотра логов в Docker Desktop откройте раздел Containers, выберите нужный контейнер и перейдите на вкладку Logs:

Вкладка Logs:

Лог всех контейнеров можно посмотреть в разделе Logs. Более подробно о работе с логами можно ознакомиться в официальной документации Docker.

Для разбора лога обратитесь к разделу «Работа с отладочной информацией».

Ограничение ресурсов контейнеров

По умолчанию для контейнеров Docker не заданы ограничения на использование ресурсов процессора и оперативной памяти: контейнер может использовать ресурсы в пределах, доступных ему со стороны ОС. При высокой нагрузке это может привести к нехватке ресурсов для других приложений, работающих на машине. Для ограничения потребления ресурсов контейнерами платформы, задайте соответствующие параметры в файле .env.:

WEBSERVER_CPUS=0

WEBSERVER_MEMORY=0

BISERVER_CPUS=0

BISERVER_MEMORY=0

BUD_CPUS=0

BUD_MEMORY=0

Параметры с суффиксом _CPUS задают максимальный объем доступных ресурсов процессоров, который сможет использовать соответствующий контейнер. Значение указывается в количестве ядер процессоров, включая дробные части. Например, при значении 0,5 контейнер сможет использовать до половины вычислительных мощностей одного ядра, а при значении 2 ограничением будут мощности двух ядер. По умолчанию установлено значение 0, при этом лимит на ресурсы процессоров отсутствует.

Параметры с суффиксом _MEMORY задают максимальный объем оперативной памяти, который сможет занимать соответствующий контейнер. Значения указывается в байтах. Также для параметров предусмотрены сокращения для удобства указания больших размеров, например 200m или 1gb.

Пример заполнения параметров:

WEBSERVER_CPUS=0.5

WEBSERVER_MEMORY=200m

Значения ограничений подбираются с учётом доступных ресурсов рабочей машины и предполагаемой нагрузки на платформу. После задания ограничений рекомендуется контролировать фактическое потребление ресурсов контейнерами.

Место хранения образов

Docker позволяет менять директорию или диск, используемые для хранения образов. В Docker Desktop расположение можно изменить в настройках, в группе VM resources. Измените значение поля «Disk image location» с помощью кнопки «Browse» и нажмите кнопку «Apply & Restart Engine» для переноса образов:

Для машин на ОС Linux директорией по умолчанию будет /var/lib/docker. Директорию можно поменять, указав в файле daemon.json параметр data-root. Файл по умолчанию находится в директории /etc/docker. Предварительно необходимо скопировать данные Docker из старой в новую директорию:

sudo rsync -aHAX --numeric-ids /var/lib/docker/ /<новый путь, указываемый в data-root>

Укажите новое значение в data-root:

{

  "data-root": "/<новый путь>"

}

Изменения применятся после перезагрузки Docker, для этого выполните следующие команды:

sudo systemctl daemon-reload

sudo systemctl restart docker

Подробнее о работе data-root читайте в официальной документации Docker по адресу https://docs.docker.com/engine/daemon/.

См. также:

Установка и настройка продукта «Форсайт. Аналитическая платформа»