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

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

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

Изменение настроек платформы

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

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

Логирование и диагностика

Лимиты на работу Docker

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

Для разворачивания платформы будет использоваться инструмент Docker Compose. Предварительно потребуются:

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

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

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

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

В папке compose переименуйте файл .env.example в .env, заполните значения переменных следующим образом:

LICMAN_PORT=8510

LICMAN_HOST=<licman server>

AUDIT_USER=<audit user>

AUDIT_PASS=<audit user password>

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

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

Также в папке compose будет содержаться файл compose.yml, который описывает структуру собираемых Docker-контейнеров.

В папке compose/conf во всех дочерних подкаталогах переименуйте все файлы, убрав из имени «.example».

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

Для разворачивания Docker-контейнеров с платформой на рабочей машине понадобится доступ в интернет для взаимодействия с репозиториями Docker и Astra Linux. Установите Docker в соответствии с официальными инструкциями в соответствии с используемой ОС: Linux/Windows.

При работе в ОС Linux, помимо ядра Docker, также нужно будет установить плагин docker-compose. Это можно сделать по инструкции https://docs.docker.com/compose/install/linux/#install-using-the-repository. Также можно воспользоваться официальной документацией того дистрибутива Linux, который используется. Например, документацией Astra Linux для установки Docker и docker-compose https://docs.astralinux.ru/latest/guide/virtual/docker/.

С учётом запуска в рабочей сети компании нужно удостовериться, что Docker имеет доступ в интернет и может работать с прокси-сервером сети компании. Недостаточно оставить настройки прокси по умолчанию, нужно прописать настройки прокси рабочей машины повторно в Docker. Например, перед запуском Docker-образов в ОС Windows выполните команды:

$env:HTTP_PROXY="http://123.45.67.89:1234"

$env:HTTPS_PROXY="http://123.45.67.89:1234"

На рабочей машине с ОС Linux выполните команды:

export HTTP_PROXY="http://123.45.67.89:1234"

export HTTPS_PROXY="http://123.45.67.89:1234"

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

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

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

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

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

Изменение настроек платформы

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

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

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

docker-compose up -d

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

Стоит обратить внимание, что если на используемой машине уже зарегистрированы сервисы платформы, то может произойти перезапись настроек сервисов или какие-либо иные конфликты.

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

docker-compose down

Сохранённые настройки сервисов останутся.

Docker также поддерживает возможность запуска контейнеров не в полном комплекте, а по отдельности. Для этого укажите конкретные контейнеры для запуска, например:

docker-compose up -d biserver webserver

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

docker-compose down biserver

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

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

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

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

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

Логирование и диагностика

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

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

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

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

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

Эти ошибки связаны с настройкой файлов конфигурации, проверьте настройки в файле .env.

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

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

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

или

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

где название контейнера - это контейнер, логи которого необходимо получить: biserver, webserver или bud. Также логи доступны в Docker Desktop при щелчке по контейнеру на вкладке Containers:

Будет открыт набор вкладок, первая из которых Logs:

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

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

Лимиты на работу Docker

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

WEBSERVER_CPUS

WEBSERVER_MEMORY

BISERVER_CPUS

BISERVER_MEMORY

BUD_CPUS

BUD_MEMORY

Параметры _CPUS отвечают за то, какой процент мощности ядер процессора максимум может использовать тот или иной контейнер. Указывается значение в диапазоне [0, 1]. Параметры _MEMORY отвечают за то, какое количество оперативной памяти максимум может занимать контейнер (в байтах). Также для параметров типа _MEMORY предусмотрены сокращения для удобства отображения мегабайтов и гигабайтов. Пример заполнения параметров:

WEBSERVER_CPUS=0.5

WEBSERVER_MEMORY=200m

На данный момент нет точных данных об оптимальных значениях для подобных параметров. Проконсультируйтесь с администраторами вашей сети, чтобы определить допустимые ограничения для Docker'а на рабочей машине.

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

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

{

  "data-root": "/mnt/docker-data"

}

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

sudo systemctl daemon-reload

sudo systemctl start docker

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

См. также:

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