Table of Contents

Сервер ЛЭРС УЧЁТ

Сервер ЛЭРС УЧЁТ представляет собой службу с названием "ЛЭРС УЧЁТ - сервер" (имя службы 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 репликами, сделайте следующее.

  1. Установите переменную среды LERS_SERVER_ConnectionStrings__Default в строку подключения к основной базе, которая доступна для чтения и записи.
  2. Установите переменную среды LERS_SERVER_ConnectionStrings__ReadOnly в строку подключения к реплике БД, которая доступна только для чтения, или к балансировщику нагрузки, который предоставляет доступ к ReadOnly репликам БД.
  3. Перезагрузите сервер ЛЭРС УЧЁТ.

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

См. также