Сервер ЛЭРС УЧЁТ
Сервер ЛЭРС УЧЁТ представляет собой службу с названием "ЛЭРС УЧЁТ - сервер" (имя службы LERSServer).
Устанавливается в папку %ProgramFiles%\LERS\Server и работает под учетной записью NETWORK SERVICE. Для достижения наилучшей производительности, Сервер ЛЭРС УЧЁТ рекомендуется ставить на отдельный более мощный компьютер.
К Серверу ЛЭРС УЧЁТ подключаются рабочие места операторов и службы опроса. Сам Сервер ЛЭРС УЧЁТ подключается к серверу баз данных.
Назначение Сервера ЛЭРС УЧЁТ
- Обмен данными между компонентами системы (Служба опроса, сервер баз данных, Рабочее место оператора).
- Проверка прав доступа при подключении пользователя к системе и прав на выполнение операций.
- Уведомление клиентских приложений о событиях. Например, при создании нового объекта учета или удалении имеющегося, на всех Рабочих местах оператора, подключенных к Серверу ЛЭРС УЧЁТ, автоматически обновится список объектов.
- Загрузка обновлений компонентов системы с сайта разработчика.
- Формирование очереди заданий для управления опросом точек учета.
- Протоколирование работы в журналах приложения и в системном журнале работы Windows.
- Анализ данных опроса и уведомление клиентских приложений о нештатных ситуациях.
- Предоставляет REST API для взаимодействия с системой из внешних программ.
- Предоставляет Web-интерфейс для просмотра данных и управлением системой
Перед запуском Сервера ЛЭРС УЧЁТ должен быть запущен сервер баз данных (MS SQL Server или Postgres).
Протоколирование работы Сервера ЛЭРС УЧЁТ ведется в журнале сервера.
Параметры конфигурации
Основная конфигурация сервера ЛЭРС УЧЁТ находится в файле Lers.Server.xml. Он находится в папке %ProgramFiles%\LERS\Server на Windows и /etc/LERS на Linux. Если файла нет, то будут использоваться параметры Сервера ЛЭРС УЧЁТ по умолчанию. Файл должен быть набран в кодировке UTF-8.
Файл поделен на секции, каждая из которых имеет свой набор параметров. Ниже показан пример содержимого файла Lers.Server.xml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<network>
<listenPort>10000</listenPort>
<listenAddress></listenAddress>
</network>
<dataBase>
<sqlServer>(local)\LERS</sqlServer>
<dataBaseName>LERS</dataBaseName>
</dataBase>
</configuration>
Секция Advanced
| Параметр | По умолчанию | Описание |
|---|---|---|
| enableErrorReporting | True | Отправлять отчет об ошибках. |
| EnableIPBanLog | True | Включить ведение журналов IPBan. |
Секция DataBase
Параметры подключения к базе данных ЛЭРС.
sqlServer
Имя сервера баз данных. Можно использовать (local)\LERS, если сервер баз данных установлен на одном компьютере с Сервером ЛЭРС УЧЁТ. По умолчанию sqlServer = (local)\LERS.
databaseName
Наименование базы данных на сервере баз данных. По умолчанию databaseName = LERS.
commandTimeout
Таймаут на выполнение запроса к базе данных (в секундах). По умолчанию commandTimeout = 60.
SqlServerCompatibilityLevel
Если вы используете SQL Server 2017 RTM и ниже, вам потребуется добавить ещё одну секцию SqlServerCompatibilityLevel.
Укажите в ней значение 140 для SQL Server 2017 RTM, 130 для SQL Server 2016 и 120 для SQL Server 2008 R2.
Если вы используете Docker, то в секцию env для сервиса lers нужно добавить переменную среды LERS_SERVER_Database__SqlServerCompatibilityLevel с нужным значением.
После этого потребуется перезапустить сервер ЛЭРС.
Секция NetWork
listenAddress
Параметр определяет адрес сервера По умолчанию listenAddress не задан.
listenPort
Параметр определяет порт сервера По умолчанию listenPort = 10000.
Командная строка
Сервер предоставляет интерфейс командной строки для того, чтобы можно было автоматизировать различные операции.
На Windows команды запускаются следующим образом:
Lers.Server.exe cli КОМАНДА [АРГУМЕНТЫ]
На Linux команды запускаются так:
dotnet /usr/LERS/Server/Lers.Server.dll cli КОМАНДА [АРГУМЕНТЫ]
Ниже описаны команды и аргументы, поддерживаемые сервером.
Примечание
Все операции интерфейса командной строки сервера выполняются и протоколируются журналах как действия от имени встроенной учётной записи администратора.
Сброс пароля администратора
Команда: reset-admin-pass.
Сбрасывает пароль встроенной учётной записи администратора в значение по умолчанию admin.
Смотрите подробности в статье Сброс пароля администратора.
Регистрация службы опроса
Команда: AddPollService
Создаёт новую службу опроса с заданным наименованием и токеном. После создания сервер ЛЭРС нужно перезапустить, чтобы изменения вступили в силу.
Аргументы:
Name: имя службы опроса Token: токен для подключения
Пример:
Lers.Server.exe cli AddPollService -Name "Моя служба опроса" -Token "Токен для подключения"
Настройка для работы сервера c readonly-репликами БД
При интенсивной нагрузке база данных может перестать справляться с одновременной записью и чтением данных. Например, когда идёт интенсивный опрос и сохранение данных, формирование тяжёлых отчётов за большой интервал времени создаст дополнительную нагрузку на базу данных, и запросы начнут отваливаться по таймауту.
В этом случае вы можете использовать readonly реплики основной базы, которые предназначены только для чтения. Такие реплики поддерживаются как в SQL Server (AlwaysOn availability group), так и в Postgres (Hot Standbys).
В основном, сервер ЛЭРС использует readonly реплики для формирования отчётов и различной статистики.
Важно помнить, что реплики будут отставать от основной базы данных на некоторое время. Обычно в пределах минуты, но при большой загрузке отставание может достигнуть десятков минут.
Вы можете настроить несколько readonly реплик вашей базы данных. В этом случае в ReadOnly строке подключения нужно будет указать адрес вашего балансировщика. У SqlServer балансировщик встроен в AlwaysOn, а для Postgres можно настроить популярные балансировщики. Например, Pgpool-II.
Чтобы разрешить серверу ЛЭРС работать с readonly репликами, сделайте следующее.
- Установите переменную среды LERS_SERVER_ConnectionStrings__Default в строку подключения к основной базе, которая доступна для чтения и записи.
- Установите переменную среды LERS_SERVER_ConnectionStrings__ReadOnly в строку подключения к реплике БД, которая доступна только для чтения, или к балансировщику нагрузки, который предоставляет доступ к ReadOnly репликам БД.
- Перезагрузите сервер ЛЭРС УЧЁТ.
После этого формирование отчётов начнёт использовать ReadOnly реплики базы данных. В процессе работы над системой мы постепенно будем искать и переводить на ReadOnly реплики другие модули, которым не требуется моментальный доступ к самым свежим данным.