Настройка серверной части¶
Конфигурация сервиса осуществляется через переменные окружения.
Переменные окружения¶
Переменные окружения сервиса серверной части можно разделить по областям настройки.
Общее¶
| Переменная | Допустимые значения | Описание | |
|---|---|---|---|
LISTEN |
localhost:8085 |
host:port |
Адрес серверной части |
STATE_DIRECTORY |
Директория запуска сервиса | Путь к директории | Каталог, в котором хранится текущее состояние сервиса |
GRACEFUL_TIMEOUT |
15s |
Любые числа с указанием единиц измерения времени s, m, h |
Задаёт промежуток времени, через который процесс работы серверной части будет принудительно завершён после начала управляемого завершения работы |
INSTANCE_NAME |
Генерируется автоматически | Строка | Уникальный идентификатор, который используется для развёртывания нескольких сервисов серверной части в рамках одной инсталляции. Если не задан вручную — генерируется автоматически при каждом запуске сервиса |
Журналирование¶
| Переменная | Допустимые значения | Описание | |
|---|---|---|---|
LOG_LEVEL |
debug |
debug, info, warn, error |
Уровень журналирования серверной части |
GORM_LOG_LEVEL |
warn |
silent, info, warn, error |
Уровень журналирования базы данных |
GORM_LOG_PARAM_QUERIES |
1 |
0 — используются, 1 — не используются |
Регулирует использование параметров в SQL при журналировании |
LOG_FILE |
не задано | Файл в формате JSON | Файл, в который помещаются записи журнала |
Важно
Переменная LOG_LEVEL имеет приоритет выше, чем GORM_LOG_LEVEL.
В таблице ниже представлена подробная информация о доступных уровнях журналирования.
| Уровень | Описание |
|---|---|
debug |
Записывает всю информацию, включая отладочные сообщения и внутренние детали работы сервиса. Доступен только для LOG_LEVEL |
info |
Записывает общую информацию о работе сервиса: запуск, остановку, обработку запросов |
warn |
Записывает предупреждения о потенциально проблемных ситуациях, которые не являются критическими, но заслуживают внимания |
error |
Записывает только ошибки |
silent |
Полностью отключает журналирование базы данных. Доступен только для GORM_LOG_LEVEL |
Аудит¶
| Переменная | Допустимые значения | Описание | |
|---|---|---|---|
AUDIT_LOG |
1 |
1 — используется, 0 — не используется |
Регулирует использование журнала аудита для событий серверной части |
APP_AUDIT_LOG |
0 |
1 — используется, 0 — не используется |
Регулирует использование журнала аудита для событий сканируемых приложений |
AUDIT_LOG_FILE |
не задано | Файл в формате JSONL | Файл для записи журнала аудита |
Базы данных¶
| Переменная | По умолчанию | Допустимые значения | Описание |
|---|---|---|---|
DATABASE_URI |
postgresql://solidpoint:solidpoint@127.0.0.1:5432/solidpoint |
URI в формате postgresql://user:password@host:port/db |
URI базы данных |
DATABASE_URI_FILE |
не задано | Текстовый файл | Файл, содержащий URI базы данных |
DB_MAX_OPEN_CONNECTIONS |
80 |
Целое положительное число | Максимальное количество открытых подключений к базе данных |
DB_MAX_IDLE_CONNECTIONS |
50 |
Целое положительное число | Максимальное количество незанятых соединений |
DB_MAX_CONN_LIFETIME |
5m |
Любые числа с указанием единиц измерения времени s, m, h |
Максимальный промежуток времени, в течение которого соединение может быть повторно использовано. При превышении указанного времени соединение разрывается |
BATCH_SIZE |
100 |
Целое положительное число | Максимальный размер множества данных для единоразового добавления в таблицу |
Миграции и состояние¶
| Переменная | Допустимые значения | Описание | |
|---|---|---|---|
MIGRATIONS_UP |
1 |
1 — осуществляется, 0 — не осуществляется |
Сигнализирует, осуществляется ли миграция в текущий момент (или обратный процесс) |
DATABASE_DIRTY |
0 |
1 — ошибка, 0 — ОК |
Сигнализирует, что последняя миграция завершилась с ошибкой или база данных неконсистентна |
FORCE_VERSION |
0 |
Целое положительное число | Принудительная установка версии миграции. После ручного применения неудачной миграции установите DATABASE_DIRTY=1, FORCE_VERSION=[номер миграции] |
Синхронизация сканирований¶
| Переменная | Допустимые значения | Описание | |
|---|---|---|---|
SYNC_SCANS |
1 |
1 — используется, 0 — не используется |
Регулирует использование синхронизации сканирований, созданных различными способами, при запуске серверной части |
RESYNC_SCANS |
0 |
1 — используется, 0 — не используется |
Регулирует использование синхронизации сканирований, созданных на разных узлах сканирования, при запуске серверной части |
Почтовый клиент¶
Подробная информация о почтовом клиенте доступна в разделе «Отправка уведомлений».
Взаимодействие со сканером¶
| Переменная | Допустимые значения | Описание | |
|---|---|---|---|
SCANNER_MAX_CALL_RECV_MSG_SIZE_MB |
100 |
Целое положительное число | Максимальный размер принимаемого от сканера сообщения (в Мб) |
SCANNER_SELECTION_STRATEGY |
RoundRobin |
RoundRobin, LeastLoaded |
Задаёт алгоритм выбора узла сканирования |
Генератор отчётов¶
| Переменная | По умолчанию | Допустимые значения | Описание |
|---|---|---|---|
REPORTER_ADDRESS |
localhost:9090 |
host:port |
Адрес генератора отчётов для сканирований |
Подробная информация о генераторе отчётов доступна в разделе «Генератор PDF-отчётов».
Параллельный запуск нескольких сервисов серверной части¶
Чтобы осуществить параллельный запуск, необходимо в файле конфигурации каждого сервиса серверной части указать свой адрес LISTEN (например, localhost:8085 и localhost:8086). Идентификатор INSTANCE_NAME для каждого сервиса генерируется автоматически при запуске.
Примечание
Также есть возможность задать вручную идентификатор INSTANCE_NAME в файле конфигурации каждого сервиса серверной части. В таком случае указанные идентификаторы сохранятся и не будут генерироваться автоматически.
Настройка балансировки нагрузки¶
Для корректной работы нескольких паралелльно запущенных сервисов серверной части необходимо распределить между ними нагрузку. Для этого необходимо настроить сервер Nginx как балансировщик нагрузки.
В указанном ниже примере для балансировки используется алгоритм Round-robin. Для каждого сервера указан опциональный параметр weight, отвечающий за приоритет получения запросов (чем больше число, тем больше нагрузка на указанный сервер). Если необходимо обеспечить равномерную загрузку сервисов, данный параметр можно опустить.