Настройка параметров МоиОтчеты Корпоративный Сервер
Продукты: МоиОтчеты Корпоративный Сервер
Данный раздел описывает процесс конфигурирования сервера отчётов. Здесь описана базовая информация. Для тонкой настройки сервера
обратитесь к руководству admi_config. Конфигурация сохраняется в защищенном хранилище Kubernetes. Эту операцию оптимально выполнить до
старта контейнеров, описанных в секции fr-corporate-server.
Базовые параметры сервера отчётов определены ниже. Для удобства они показаны в отдельной секции. Возможные варианты: поместить этот фрагмент
в отдельный файл и с помощью операции точка внедрить их в конфигурационный скрипт. Или же скопировать этот фрагмент непосредственно
в конфигурационный скрипт. Так возможно дописать export перед каждой переменной и экспортировать в переменные среды.
Значение переменной MONGO_HOST (или FERRET_HOST) можно проверить в Kubernetes Dashboard - оно соответствует имени сервиса и его пространству имён, разделённых точкой.
Для успешного старта сервера отчётов необходима лицензия - специальная строка, описывающая права использования сервера отчётов. Получите её у компании ООО "Быстрые отчеты".
Значения параметров MONGO_USER и MONGO_PASS (или FERRET_USER и FERRET_PASS) должны соответствовать тем же самым параметрам, что указаны при установке MongoDB (FerretDB).
Вариант для MongoDB:
NAMESPACE=fr-corporate-server
CLOUD_ENV=prod
## Пароль и имя пользователя могут быть установлены любые, главное, чтобы совпадали с теми, что были заданы при установке MongoDB.
## MONGO_DB должна быть admin.
## Однако, есть правила установки имени хоста - оно образуется из имени сервиса и пространства имён, в котором зарегистрирована MongoDB.
MONGO_HOST=fr-mongo-mongodb.mongo
MONGO_USER=root
MONGO_PASS=mxzgrkGvvk
MONGO_DB=admin
## Следующие параметры лучше ЗДЕСЬ не изменять. Хост и имя пользователя устанавливаются автоматически, а
## пароль для RabbitMQ генерируется автоматически на момент установки и сохраняется в хранилище секретов Kubernetes.
RABBITMQ_HOST=rabbitmq.rabbitmq.svc.cluster.local
# RABBITMQ_HOST=rabbitmq-0.rabbitmq-headless.rabbitmq
RABBITMQ_USER=user
RABBITMQ_PASS=$(kubectl get secret --namespace rabbitmq rabbitmq -o jsonpath="{.data.rabbitmq-password}" | base64 --decode)
## Разработчики утверждают, что здесь может быть любая последовательность символов. И длина не опрелена.
## Для теста были использованы следующие значения, и установка прошла успешно
DESIGNER_SECRET=yXgQDpNzohhN3dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHrXiepieQtOaLwdqfRijMaZwy5p27tho7XK4C
WORKER_SECRET=9bYuYu4cvt73oWD3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5Z6i6pRzkR8mKGL1pTRnns3P0cIxzTuVu
GATEWAY_SECRET=R0jEINg6OA4TssyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY46ZtsYowI7gB9yteZNMSvPoL6sGgiWC4
SCHEDULER_SECRET=fcfFZNWC3zyBmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5gD2MeexV3svLdy87qC6bX3bM2W6mZjRC
## В эту переменную должна быть вписана лицензия, полученная у компании ООО "Быстрые отчеты". Увы, без лицензии сервер отчётов работать не будет.
## Не используйте кавычки.
LICENSE=
## Строка подключения к MongoDB формируется автоматически на основе ранее определённых переменных. Тут лучше ничего не менять.
MONGO_ACCESS="mongodb://$MONGO_USER:$MONGO_PASS@$MONGO_HOST:27017/"
CONNECTION_STRING="$MONGO_ACCESS?authSource=$MONGO_DB&readPreference=primary&appname=MongoDB%20Compass&ssl=false&maxPoolSize=100&waitQueueMultiple=100"
Вариант для FerretDB:
NAMESPACE=fr-corporate-server
CLOUD_ENV=prod
## Пароль и имя пользователя могут быть установлены любые, главное, чтобы совпадали с теми, что были заданы при установке FerretDB.
## FERRET_DB должна быть admin.
## Однако, есть правила установки имени хоста - оно образуется из имени сервиса и пространства имён, в котором зарегистрирована FerretDB.
FERRET_HOST=fr-ferret.ferret
FERRET_USER=any_name
FERRET_PASS=ferret_password
FERRET_DB=admin
## Следующие параметры лучше ЗДЕСЬ не изменять. Хост и имя пользователя устанавливаются автоматически, а
## пароль для RabbitMQ генерируется автоматически на момент установки и сохраняется в хранилище секретов Kubernetes.
RABBITMQ_HOST=rabbitmq.rabbitmq.svc.cluster.local
# RABBITMQ_HOST=rabbitmq-0.rabbitmq-headless.rabbitmq
RABBITMQ_USER=user
RABBITMQ_PASS=$(kubectl get secret --namespace rabbitmq rabbitmq -o jsonpath="{.data.rabbitmq-password}" | base64 --decode)
## Разработчики утверждают, что здесь может быть любая последовательность символов. И длина не определена.
## Для теста были использованы следующие значения, и установка прошла успешно
DESIGNER_SECRET=yXgQDpNzohhN3dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHrXiepieQtOaLwdqfRijMaZwy5p27tho7XK4C
WORKER_SECRET=9bYuYu4cvt73oWD3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5Z6i6pRzkR8mKGL1pTRnns3P0cIxzTuVu
GATEWAY_SECRET=R0jEINg6OA4TssyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY46ZtsYowI7gB9yteZNMSvPoL6sGgiWC4
SCHEDULER_SECRET=fcfFZNWC3zyBmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5gD2MeexV3svLdy87qC6bX3bM2W6mZjRC
## В эту переменную должна быть вписана лицензия, полученная у компании ООО "Быстрые отчеты". Увы, без лицензии сервер отчётов работать не будет.
## Не используйте кавычки.
LICENSE=
## Строка подключения к FerretDB формируется автоматически на основе ранее определённых переменных. Тут лучше ничего не менять.
FERRET_ACCESS="mongodb://$FERRET_USER:$FERRET_PASS@$FERRET_HOST:27017/"
CONNECTION_STRING="$FERRET_ACCESS?authSource=$FERRET_DB&readPreference=primary&appname=MongoDB%20Compass&ssl=false&maxPoolSize=100&waitQueueMultiple=100"
Регистрация пространства имён сервера отчётов в кластере:
kubectl create namespace $NAMESPACE
Создание минимальной конфигурации сервера отчётов:
cat <<EOF | kubectl apply -n $NAMESPACE -f -
apiVersion: v1
kind: ConfigMap
metadata:
name: fast-report-config
data:
appsettings.Production.json: |
{
"Auth": {
"UseOpenId": false,
"UseLocal": true
},
"MainConfig": {
"InternalHeaders": {
"$WORKER_SECRET": "000000000000000000000001",
"$DESIGNER_SECRET": "000000000000000000000002",
"$GATEWAY_SECRET": "000000000000000000000003",
"$SCHEDULER_SECRET": "000000000000000000000004"
},
"License": "$LICENSE",
"Server": {
"Title": "<Заголовок в приложении>",
"Copyright": "<Краткое описание авторского права>",
"LogoLink" : "<путь к логотипу, отображаемому в панели пользователя>",
"LastSlaUpdate": "2022-11-28",
"CorporateServerMode": false,
"SlaLink": "<Ссылка на пользовательское соглашение>",
"FirstStepsVideoLink": "https://rutube.ru/play/embed/f64e80d2fa8e2d73b30c47483fa2b59e",
"AboutLink": "https://быстрыеотчеты.рф/products/corporate-server",
"HomePageLink": "быстрыеотчеты.рф",
"AuthServerName": "ID Быстрые отчеты",
"UsersPerWorkSpace": 0,
"PublicPathBase": ""
},
"Rabbit": {
"Host": "$RABBITMQ_HOST",
"Port": 5672,
"UserName": "$RABBITMQ_USER",
"Password": "$RABBITMQ_PASS"
},
"Database": {
"ConnectionString": "$CONNECTION_STRING",
"DatabaseName": "$MONGO_DB"
}
},
"Gateway": {
"BackendUrl": "http://fr-backend.$NAMESPACE:80",
"InternalKey": "$GATEWAY_SECRET",
"SignInPagePath": "/account/signin?r={0}",
"MaxConcurrentRequests": 200,
"RequestQueueLimit": 5000
},
"Serilog": {
"MinimumLevel": {
"Default": "Debug"
}
},
"Services": {
"Items": {
"OnlineDesigner": {
"Namespace": "$NAMESPACE"
},
"Backend": {
"Namespace": "$NAMESPACE"
},
"FrontendApp": {
"Namespace": "$NAMESPACE"
},
"Fonts": {
"Namespace": "$NAMESPACE"
},
"StaticPreviewApp": {
"K8sServiceName": "fr-s-preview",
"Namespace": "$NAMESPACE",
"HostType": "WebApp",
"PathBase": "/staticpreview",
"Type": "K8s",
"PingPath": "/staticpreview/",
"IsSignInRequired": false,
"Priority": 21
},
"Default": {
"Namespace": "$NAMESPACE"
},
"AdminApp": {
"Namespace": "$NAMESPACE",
"WhiteListClaims": {
"cloud_service_access": "super_user"
}
}
}
},
"Designer": {
"BackendUrl": "http://fr-backend.$NAMESPACE:80",
"InternalKey": "$DESIGNER_SECRET"
},
"WorkerCore": {
"BackendUrl": "http://fr-backend.$NAMESPACE:80",
"InternalKey": "$WORKER_SECRET"
},
"Scheduler": {
"BackendUrl": "http://fr-backend.$NAMESPACE:80",
"InternalKey": "$SCHEDULER_SECRET"
}
}
EOF
Используя FerretDB замените
"Database": {
"ConnectionString": "$CONNECTION_STRING",
"DatabaseName": "$MONGO_DB"
}
на
"Database": {
"ConnectionString": "$CONNECTION_STRING",
"DatabaseName": "$FERRET_DB"
}
Ключ PublicPathBase в секции Server задаёт публичный базовый путь (префикс URL), под которым развёрнут продукт, например /reports. По умолчанию пуст — продукт занимает корень домена. Подробнее см. Развёртывание под базовым путём (PathBase).
Обратите внимание, вышеприведённый фрагмент shell-скрипта содержит базовые настройки, проверенные разработчиками. При первоначальном разворачивании
сервера отчётов рекомендуется использовать их, чтобы убедиться в работоспособности сервера. Перед изменением настроек сохраните эту версию, таким образом
вы сэкономите значительно время при тонкой настройке сервера, используя параметры, описанные в секции admin_config.