Руководство по установке Агредатор Лайт со СМЭВ4
Развертывание
Цели и функции системы
Программный продукт Агредатор представляет собой сервисную шину обмена данными, построенную на микросервисной архитектуре. Она интегрируется в существующую IT-инфраструктуру заказчика за счет открытого API и выполняет роль шлюза между заказчиком и поставщиками данных.
Требования к аппаратной части
Для развертывания Агредатора требуется инфраструктурные мощности:
- СУБД PostgreSQL: 2 CPU 4 GB MEM 100 GB HDD
- S3 (Minio): 2CPU 4 GB MEM 250 GB HDD
При этом можно запустить на одной ВМ с суммарной мощностью 4 CPU 4 GB MEM 300 GB HDD
Характеристика ВМ для Агредатора: 12 CPU 12 GB MEM 100 GB HDD
Требование к программной части
- Docker - не ниже 20.10.16 (рекомендуемое 24.0.2+ (compose встроен))
- docker-compose (отдельный) - не ниже 1.29.2 (рекомендуемое 2.19.0+)
- ОС - Linux
- Наличие развернутого агента СМЭВ4 ПОДД
Подготовительные работы
Все ВМ, на которых планируется запуск Агредатора должны иметь доступ до приватного Docker-реестра harbor.rnds.pro
. В поставляемом архиве содержится вспомогательный скрипт для авторизации:
./docker-login.sh
Установка
Поставка платформы Агредатор состоит из набора сервисов, необходимых для его запуска:
- agg_lite - является базовым сервисом выполняющим роль основного приложения Агредатор Лайт и включающий себя сервисы, необходимы для функционирования системы
- agg_lite_postgres - база данных PostgreSQL
- agg_lite_redis - база данных Redis
- agg_lite_s3 - s3 хранилище Minio
Внимание ! Сервисы
agg_lite_postgres
(PostgreSQL),agg_lite_redis
(Redis) иagg_lite_minio
(Minio s3 object storage) являются дополнением к поставке и не рекомендуется для постоянного использования! Весь риск и последствия использования тестовых баз данных PostgreSQL и Redis, а также s3 Minio лежат на заказчике.
Базовой директорией размещения конфигурационных файлов сервиса зафиксирована директория в файловой системе:
/storage/configs/agg_lite
У текущего пользователя системы должны быть права на использование этой директории.
Следующий скрипт копирует все конфигурационные файлы из текущей директории в базовую директорию конфигурационных файлов:
./install.sh
Соответственно, перед установкой Агредатор Лайт необходимо провести его настройку.
Настройка
Все поставляемые сервисы запускаются в разных проектах docker-compose и могут быть гибко настроены, исходя из желания заказчика
Настройка инфраструктуры
PostgreSQL
Директория agg_postgres
содержит в себе конфигурационные файлы для запуска СУБД PostgreSQL в Docker через docker-compose:
.env.postgres
- файл с переменными окружения для Docker-контейнера PostgreSQL.docker-compose.yml
- файл с настройками запускаемого контейнера
Используемые переменные окружения
Переменная | Описание | Пример значения |
---|---|---|
COMPOSE_PROJECT_NAME | Название проекта docker-compose | agg_postgres |
PG_IMAGE | Название Docker образа с PostgreSQL | harbor.rnds.pro/dockerhub/library/postgres |
PG_TAG | Версия PostgreSQL | 14 |
PG_DATA_PATH | Путь к томам PostgreSQL | /storage/infra/agg_postgres/data |
DATABASE_USER | Суперпользователь БД | postgres |
DATABASE_PASS | Пароль суперпользователя БД | Vj8bR4QQI7pQuhhQ |
DATABASE_PORT | Внешний порт контейнера с БД | 5433 |
Redis
Директория agg_redis
содержит в себе конфигурационные файлы для запуска БД Redis в Docker через docker-compose:
.env.redis
- файл с переменными окружения для Docker-контейнера Redisdocker-compose.yml
- файл с настройками запускаемого контейнера
Используемые пременные окружения
Переменная | Описание | Пример значения |
---|---|---|
COMPOSE_PROJECT_NAME | Название проекта docker-compose | agg_redis |
REDIS_IMAGE | Название Docker образ с Redis | harbor.rnds.pro/dockerhub/library/redis |
REDIS_TAG | Версия Redis | 6.0 |
REDIS_DATA_PATH | Путь к томам Redis | /storage/infra/agg_redis/data |
REDIS_PORT | Внешний порт контейнера Redis | 6379 |
Minio
Директория agg_minio
содержит в себе конфигурационные файлы для запуска Minio s3 в Docker через docker-compose:
.env.minio
- файл с переменными окружения для Docker-контейнера Miniodocker-compose.yml
- файл с настройками запускамых контейнеров Minio
Используемые переменные окружения
Переменная | Описание | Пример значения |
---|---|---|
COMPOSE_PROJECT_NAME | Название проекта docker-compose | agg_minio |
MINIO_IMAGE | Название Docker образ с Minio | harbor.rnds.pro/dockerhub/minio/minio |
MINIO_TAG | Версия Minio | latest |
MINIO_DATA_PATH | Путь к томам Redis | /storage/infra/agg_minio/data |
MINIO_ROOT_USER | Главный пользователь | miniadmin |
MINIO_ROOT_PASSWORD | Пароль главного пользователя | password |
MINIO_API_PORT | Внешний порт для API Minio | 9000 |
MINIO_CONSOLE_PORT | Внешний порт для веб-панели админиистрирования Minio | 9090 |
Настройка ПО
Настройка приложения происходит в файле .env.lite
, в котором расписаны используемые переменные окружения. Переменные разделены на несколько блоков, для удобства дальнейшей настройки, а также прокомментированны.
Блок "Docker Compose"
Содержит в себе информацию о запускаемом образе и версии приложения.
Описание переменных окружения
Переменная | Описание | Пример значения |
---|---|---|
COMPOSE_PROJECT_NAME | Название проекта docker-compose | agg_lite |
AGG_LITE_IMAGE | Используемый Docker-образ сервиса | harbor.rnds.pro/aggredator/lite-smev4 |
AGG_LITE_TAG | Запускаемая версия приложния | 1.0.31 |
Блок "Database"
Содержит в себе настройки подключения сервисов к базам данных в СУБД Postgres
Описание переменных окружения
Переменная | Описание | Пример значения |
---|---|---|
SMEV4_DATABASE_URL | Строка подключения к бд для smev4 | postgres://postgres:Vj8bR4QQI7pQuhhQ@db.local:5433/aggredator-service-smev4 |
FILATOR_DATABASE_URL | Строка подключения к бд для filator | postgres://postgres:Vj8bR4QQI7pQuhhQ@db.local:5433/aggredator-service-filator |
APIGW_DATABASE_URL | Строка для подключения к бд для apigw | postgres://postgres:Vj8bR4QQI7pQuhhQ@db.local:5433/aggredator-service-apigw |
Для коннекта к бд используется db.local
, который прописан в /etc/hosts
контейнера. IP можно изменить, отредактирововав файл .env
в корневой директории с конфигурационными файлами, либо добавив переменную окружения DATABASE_IP
в .env.lite
вручную:
DATABASE_IP="172.22.1.11" # IP адрес БД
Также в строке подключения можно явно указать IP-адрес/домен для БД:
SMEV4_DATABASE_URL="postgres://postgres:Vj8bR4QQI7pQuhhQ@172.22.1.11:5433/aggredator-service-smev4"
Блок "Smev4"
Содержит в себе настройки работы Агредатор-а со СМЭВ4
Описание пременных окружения
Переменная | Описание | Пример значения |
---|---|---|
USE_SMEV4 | Использовать СМЭВ4 | true |
SMEV4_AGENT_HOST | Адрес до агента СМЭВ4 ПОДД | http://172.22.1.11 |
Официальная документация по СМЭВ 4 ПОДД
Блок "Filator"
Filator - это временное файловое хранилище с HTTP-интерфейсом. Предназначено для передачи файлов между сервисами в процессе работы. Устаревшие файлы удаляются через некоторое время. Подробное описание сервиса на вики
Используемая переменная окружения для настройки и пример ее значения:
FILATOR_STORAGE_CONFIGURATIONS='[
{
"name": "db",
"type": "db",
"readonly": true
},
{
"name": "s3",
"type": "s3",
"readonly": false,
"use_dynamic_buckets": false,
"endpoint": "http://172.22.1.11:9000",
"access_key": "access_key",
"secret_key": "secret_key",
"bucket": "filator",
"prefix": "filator",
"open_timeout": 15,
"read_timeout": 15,
"ssl_verify_peer": false,
"retry_limit": 0,
"region": "region"
}]'
Блок "ApiGW"
Настройи сервиса apigw
и его административной панели.
Описание переменных окружения
Переменная | Описание | Пример значения |
---|---|---|
APIGW_ADMIN_USER | Имя главного пользователя в административной авнели | admin |
APIGW_ADMIN_PASS | Пароль главного пользователя | FHOzE4MzB2pJ171t |
APIGW_WEB_PORT | Порт, по которму будет доступна административная панель | 8081 |
APIGW_REDIS_URL | Строка подключения к БД Redis | redis://redis.local:6379/0 |
Блок "Logging"
Настройка уровня логирования и места хранения логов приложения
Описание переменных окружения
Переменная | Описание | Пример значения |
---|---|---|
AGG_LOG_PATH | Директория расположения файлов логов приложения на хостовой машине | /storage/logs/agg_lite |
EPGU_API_LOG_LEVEL | Уровень логирования epgu-api | info или debug |
APIGW_LOG_LEVEL | Уровинь логировнаия apigw | info или debug |
FILATOR_LOG_LEVEL | Уровень логирования filator | info или debug |
Запуск
Если все компоненты, необходимые для работы размещены на одном хосте, то запуск осуществляется через следующий скрипт:
/storage/configs/agg_lite/run.sh
Запуск с использованием тестовых БД и S3 Minio необходимо передать параметр test
:
cd /storage/configs/agg_lite
./run.sh test
Запуск вручную какого-либо сервиса:
cd /storage/configs/agg_lite/agg_service_name
./prepare docker compose up -d
После запуска платформы Агредатор, его работу можно проверить открыв административную панель управления по пути:
http://instance_ip:8081
и пройти авторизацию, используя заданные в .env.lite
значения