Конфигурация Loginom Integrator

Loginom Integrator настраивается с помощью xml файла Integrator.dll.config. Расположение файла по умолчанию — /var/opt/loginom/integrator/Integrator.dll.config.

Соединение с Loginom Server

Loginom Integrator может поддерживать соединения с несколькими экземплярами Loginom Server одновременно.

В элементе configuration присутствует элемент settings, в который можно добавить следующие атрибуты:

  • shutdownTimeout — необязательный атрибут, который задаёт тайм-аут завершения работы Интегратора (в секундах). Если при завершении работы Loginom Integrator есть активные запросы, то выполняется ожидание тайм-аута завершения, прежде чем принудительно разорвать все соединения с Loginom Server. Во время ожидания тайм-аута завершения новые запросы не принимаются. Значение по умолчанию: 30 секунд.
  • swaggerUI — атрибут принимает значение true/false и включает/отключает генерацию страницы openapi/index.html, которая реализует доступ к опубликованным сервисам через Swagger UI. Swagger UI используется для формирования интерактивной документации к API и более удобного его тестирования. При значении атрибута false доступ к самим веб-сервисам не отключается.
  • sessionCacheSize — задаёт размер кэша подключений к Loginom Server (значение по умолчанию 3). Для каждого Loginom Server-а создаётся отдельный кэш такого размера.
  • urlPathPrefix — необязательный атрибут, значение которого используется как префикс к адресу всех конечных точек REST и SOAP. Значение по умолчанию — пустая строка. Например, если Loginom Integrator развёрнут по адресу http://localhost/lgi и атрибут urlPathPrefix не указан, то help-страница доступна по адресу:

    • для REST: http://localhost/lgi/rest/help
    • для SOAP: http://localhost/lgi/soap?wsdl

    Если urlPathPrefix="abc", то адрес меняется на:

    • для REST: http://localhost/lgi/abc/rest/help
    • для SOAP: http://localhost/lgi/abc/soap?wsdl

    Описание конкретного пакета находится по адресу:

    • для REST: /lgi/rest/<PackageName>/help или /lgi/abc/rest/<PackageName>/help
    • для SOAP: /lgi/soap/<PackageName> или /lgi/abc/soap/<PackageName>

Примечание: Чтобы в Loginom Integrator 7 использовались те же адреса, что и в версии 6, нужно указать urlPathPrefix="Service.svc".

Для каждого используемого экземпляра Loginom Server в элементе configuration/settings требуется добавить элемент server со следующими атрибутами:

  • unixsocket — атрибут, позволяющий подключиться через Unix domain socket. Значение по умолчанию: /run/loginom/loginomd.socket.
  • address — сетевой адрес хоста Loginom Server. Обязательный атрибут. Значение по умолчанию: localhost.
  • port — TCP порт сервера. Значение по умолчанию: 4580.
  • userName — имя учетной записи с правом на вход в качестве службы. Если атрибут не задан, используются логин и пароль пользователя service.
  • password — пароль учетной записи с правом на вход в качестве службы. По умолчанию пустая строка.
  • reserved — атрибут со значением true помечает сервер как резервный.
  • packageRefreshPeriod - период (в секундах), с которым Integrator запрашивает с сервера список опубликованных пакетов. Integrator сравнивает этот список со своим собственным и если есть изменения, то применяет их. Если параметр отсутствует, то периодического запроса списка пакетов не происходит.
Пример config файла
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log" type="Integrator.Core.LogConfigurationSection, IntegratorCore" />
    <section name="loginom" type="Integrator.Core.LoginomConfigurationSection, IntegratorCore" />
  </configSections>
  <log>
    <fileSystem level="Off" maxArchiveFiles="30" encoding="utf-8" />
    <eventLog level="Off" />
    <console level="Off" />
    <journald level="Info" maxEntrySize="65536" />
    <internal level="Error" />
  </log>
  <settings swaggerUI="true" urlPathPrefix="Service.svc" sessionCacheSize="3">
    <server unixsocket="/run/loginom/loginomd.socket" address="localhost" port="4580" userName="service" password="service" />
    <!--<server address="localhost" port="4580" userName="service" password="service" reserved="true"/>-->
  </settings>
</configuration>

Loginom Integrator поддерживает информацию о работоспособности серверов и опубликованных на них пакетах.

При поступлении запроса сервер выбирается случайным образом среди доступных основных (не резервных) серверов, предоставляющих требуемый пакет.

Если таких нет, то сервер выбирается случайным образом среди доступных резервных серверов.

Рабочий каталог

Рабочий каталог содержит временные данные, требующиеся для работы приложения.

Путь к каталогу по умолчанию — /var/opt/loginom/integrator. Переопределить значение можно в атрибуте workDir элемента configuration/settings. Значением может быть полный или относительный (от файла конфигурации) путь.

Если используется несколько экземпляров Loginom Integrator, рабочие каталоги у них должны быть разными.

Журналирование

Параметры журналирования задаются в элементе configuration/log.

Возможно включение следующих режимов:

  • fileSystem — запись в файл;
  • console — вывод логов в консоль;
  • journald — вывод логов в journald;
  • internal — запись в файл событий логирования (к примеру, ошибок при записи логов в файл).

Каждому режиму можно задать минимальный уровень детализации:

  • All — все события;
  • Trace — трассировка;
  • Debug — отладка;
  • Info — информация;
  • Warn — предупреждения;
  • Error — ошибки;
  • Fatal — критические ошибки;
  • Off — журналирование отключено.

При установке по умолчанию включена запись в journald с уровнем детализации Info.

Примечание: запись в лог текстов запросов и ответов сервиса осуществляется при уровне логирования не ниже Trace.

Запись в файл

Параметры записи в файл задаются в элементе configuration/log/fileSystem:

  • path — полный или относительный (от рабочего каталога) путь к каталогу журналов. Значение по умолчанию: Logs.
  • maxArchiveFiles — максимальное количество архивных журналов. При значении "0" количество файлов не ограничено. Значение по умолчанию: 0;
  • level — минимальный уровень журналирования. Значение по умолчанию: All.

Журналы пишутся в каталог /var/opt/loginom/integrator/Logs, имя файла журнала — log.log. Новые файлы создаются раз в сутки, старые лог-файлы получают имена вида log.yyyy-MM-dd.log.

Запись журнала событий в journald

Параметры записи задаются в элементе файла конфигурации journald. Значение по умолчанию — .

Атрибут level задает уровень детализации, атрибут maxEntrySize — максимальный размер сообщения в байтах. Если атрибут отсутствует или содержит отрицательное значение, то используется значение по умолчанию: 2147483647. Если все поля сообщения не умещаются в максимальный допустимый размер (maxEntrySize), то записываются только наиболее приоритетные поля, которые умещаются в это ограничение. При этом значение последнего из записанных полей может быть урезано с учётом ограничения по размеру.

Вывод журнала в консоль

Вывод записей журнала в консоль настраивается в элементе файла конфигурации console, в котором указывается уровень логирования. По умолчанию используется такой же формат сообщений, что и при логировании в файл. Но если задана переменная окружения DOTNET_RUNNING_IN_CONTAINER со значением true или 1 (т.е. Loginom Integrator запущен из Docker контейнера), то в логируемых сообщениях не пишется текущая дата/время.

Сообщения с уровнем Warn и выше пишутся в stderr, а остальные - в stdout.

Если логи перенаправляются из консоли контейнера в journald хоста, то многострочные сообщения разбиваются на несколько (каждая строка получается отдельным сообщением в journald).

Запись событий логирования

Параметры записи событий логирования задаются в элементе configuration/log/internal:

  • path - полный или относительный (от рабочего каталога) путь к каталогу журналов. Значение по умолчанию: Logs.
  • level - минимальный уровень журналирования. Значение по умолчанию: All.

Имя файла журнала - logger-internal.log.