Базовые сервисы

Базовые сервисы являются обязательными и создаются автоматически, запускаются на каждом сервере, не требуют обязательного наличия конфигурации.

Основные возможности:

  • Сбор оперативных данных состояния по каждому серверу кластера в Центре мониторинга.

  • Обмен данными между сервисами мониторинга на разных серверах.

  • Открытие ЦМ локально на любом сервере кластера.

В базовые сервисы входят:

../../_images/default_services.png

Таблица фиксирует:

  • Название: название сервиса, при редактировании поле обязательное для заполнения.

  • Имя: имя сервиса.

  • Комментарий: дополнительные сведения о сервисе.

Базовые сервисы нельзя создать или удалить, только отредактировать существующие с помощью кнопки Карандаш или по двойному клику мыши по нужному серсиву. Кнопка Обновить обновляет таблицу, кнопка Экспорт в Excel выгружает таблицу на локальное устройство.

Сервис для сбора событий

Базовый сервис Сервис для сбора событий (DatareonPlatformEventsStorage) отвечает за сбор событий, которые возникают в сервисах Платформы на узле кластера, и за сохранение этих событий во внутреннюю базу данных (DatareonDB).

Сервис работает автоматически на каждом узле и периодически считывает файлы событий, которые сервисы и системы узла формируют в DatareonDB. Далее события обрабатываются и сохраняются в БД. Эти данные используются другими подсистемами, например — Центром мониторинга и Сервисом аналитики (забирает данные из DatareonDB и сохраняет в СУБД).

При обращении извне сервер использует внутренний кластерный протокол — если событие находится на другом узле, запрос будет отправлен в соответствующее хранилище того узла, где эти события реально сохранены.

Основные моменты:

  • У каждого хранилища событий (EventsStorage) свои настройки по хранению событий.

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

  • События сохраняются в DatareonDB пачками (batch) для оптимизации (размер пачки задается параметром ProcessPackSize).

  • Глубина выборки (как далеко назад смотреть файлы) ограничена параметром collectMaxDepthMinutes.

В раздел Сервиса для сбора событий входит:

Вкладка Основные:

  • Название: название сервиса, при редактировании поле обязательное для заполнения.

  • Имя: имя сервиса, формируется автоматически на основании Названия.

  • Комментарий: дополнительные сведения о сервисе, поддерживается многострочный ввод.

../../_images/events_default_service2.png

Для дополнительных настроек перейдите в режим диалога.

  • enabled (boolean): включает / выключает сбор событий. По умолчанию и всегда должно быть установлено true.

  • collectPeriodSec (integer): периодичность запуска сбора, в секундах. По умолчанию 15.

  • collectMaxCount (integer): максимальное количество событий для обработки за один цикл. По умолчанию 1000.

  • processPackSize (integer): размер пачки (batch) для сохранения в БД. По умолчанию 100.

  • collectMaxDepthMinutes (integer): максимальная глубина отбора файлов событий (как далеко назад смотреть), в минутах. По умолчанию 120 (2 часа).

  • filesStoragePeriodDays (integer): сколько дней хранятся файлы событий на узле. Удаляются файлы, возраст которых превышает установленное значение. По умолчанию 30.

  • cleanFilesJobSchedule (string): cron-расписание очистки файлов событий. По умолчанию «0 * * * *» - каждый час.

    Примечание

    При сохранении событий во внутреннюю БД хранилища (DatareonDb) в индексе для каждого сохраненного события проставляется признак IsSaved = true. Этот признак используется для определения возможности удаления файлов. Если в файле для всех событий IsSaved = true, то файл можно удалять, так как все события из файла сохранены в БД хранилища. Сама очистка управляется параметрами filesStoragePeriodDays и cleanFilesJobSchedule. Удаляются файлы событий, сообщений и тел сообщений.

    Внимание

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

  • dbStorageMaxNumberOfStoredEvents (integer): максимальное количество событий, которое может храниться в базе данных сборщика событий. При превышении значения выполняется физическое удаление старых событий из базы данных. По умолчанию 0 — ограничение по количеству событий не применяется.

  • dbStorageMaxRetentionTimeInDays (integer): максимальный срок хранения событий в базе данных сборщика событий (в днях). События, возраст которых превышает указанное значение, подлежат физическому удалению.

Основные правила:

  • Должно быть задано хотя бы одно из значений: dbStorageMaxNumberOfStoredEvents или dbStorageMaxRetentionTimeInDays.

  • Очистка выполняется по расписанию (параметр cleanFilesJobSchedule).

  • Очистка выполняется по файлам целиком — частичное удаление записей внутри файла не производится.

  • Минимальный шаг очистки — 50 000 событий.

  • Перед очисткой БД выполняется очистка бинарных файлов.

  • На время очистки приостанавливается запись новых событий и передача данных в Сервис аналитики.

Примечание

Параметр filesStoragePeriodDays управляет удалением файлов событий на узле (файлы событий, сообщений и тел сообщений). Физическая очистка событий из DatareonDb настраивается параметрами dbStorageMaxNumberOfStoredEvents и dbStorageMaxRetentionTimeInDays.

На вкладке Параметры сервиса будут отображены внесенные изменения.

После внесения данных нажмите на кнопку Сохранить изменения, после этого нажмите на кнопку Применить конфигурацию.

Сохранение событий

События сохраняются в бинарных файлах в каталоге с лог файлами соответствующей системы или модуля. Бинарные файлы создаются для внешних систем и сервисов (кроме базовых сервисов).

Пример формата пути:

Logs\[Тип объекта]\[Ид. объекта]\EventsBin

Например:

Logs\DatareonPlatformProcess\cc18892c-9168-4276-8adc-02ae4882d54b\EventsBin.

Файлы с данными событий сохраняются по датам (подпапки в формате YYYYMMDD).

- События: events_YYYYMMDD_HH_mm_ss_{N:5}_evt.dat.
- Сообщения: events_YYYYMMDD_HH_mm_ss_{N:5}_msg.dat.
- Тела сообщений: events_YYYYMMDD_HH_mm_ss_{N:5}_bod.dat.
- Индекс: events_YYYYMMDD_index.dat.

Максимальный размер файлов с данными (события, сообщения, тела сообщений) ограничен настройками eventsStorageParams конфигурации Кластера.

  • MaxEventsFileSizeBytes (integer): максимальный размер файла хранения событий (в байтах).

  • MaxMessagesFileSizeBytes (integer): максимальный размер файла хранения сообщений (в байтах).

  • MaxBinaryDataFileSizeBytes (integer): максимальный размер файла хранения бинарных данных / тел сообщений (в байтах).

При достижении порога создается новый файл для записи данных события. Размер индекса неограничен, он пишется в рамках даты.

Управление пользователями

Базовый сервис Управление пользователями отвечает за настройку общих параметров политики безопасности пользователей во всех объектах Платформы.

В данном сервисе настраиваются верхнеуровневые правила, применимые ко всем пользователям Платформы.

Создание ролей и пользователей происходит в разделе Управление доступом. Данные о пользователях, ролях и правах доступа хранятся и обрабатываются базовым сервисом Платформы DatareonPlatformCredential.

В раздел Управление пользователями входит:

Вкладка Основные:

  • Название: название сервиса, при редактировании поле обязательное для заполнения.

  • Имя: имя сервиса, формируется автоматически на основании Названия.

  • Комментарий: дополнительные сведения о сервисе, поддерживается многострочный ввод.

../../_images/users_default_service.png

Вкладка Параметры сервиса позволяет настроить блокировку пользователей, сложность пароля и авторизацию пользователей через Active Directory (AD).

../../_images/users_default_service1.png

Блокировка пользователей

Поддерживается возможность настроить условия автоматической блокировки пользователей Credential. А именно блокировка из-за долгого отсутствия успешных аутентификаций со стороны пользователя или из-за большого количества неуспешных попыток аутентификации.

Управление блокировкой пользователей доступно на вкладке Параметры сервиса.

  • Блокировать неиспользуемые логины по истечению указанного количества дней (withoutLoginDays): максимальное количество дней без авторизации для пользователя в системе. Если пользователь не использует учетную запись в течение установленного времени, он будет отключен. Если в этом параметре указано значение 0, то проверка по этому признаку не выполняется. Процесс блокировки срабатывает каждый день в полночь.

  • Максимальное количество попыток ввода пароля (maxFailedPasswordAttempts): используется для контроля попыток ввода аутентификационных данных пользователя. Цифровое значение параметра определяет количество допустимых попыток введения неправильного пароля (при значении 0 параметр выключен). После исчерпания указанных попыток ввода аутентификационных данных пользователь будет заблокирован.

Примечание

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

Примечание

Пользователи Администратор и Система не участвуют в проверке и не блокируются.

Настройка паролей

На вкладке Параметры сервиса в подразделе Проверка паролей настраиваются параметры проверки пароля для всех пользователй (блок passwordSettings).

  • Настраиваемые параметры проверки сложности пароля (checkPassword): активация настроек проверки пароля. Если флажок не установлен (false), то последующие значения блока не активируются.

  • Проверять с помощью регулярного выражения (useCustomRegex): для включения проверки соответствия длины пароля регулярному выражению необходимо активировать флажок, длина указывается в поле Длина пароля не менее.

  • Длина пароля не менее (passwordLength): минимально допустимое количество символов в пароле. Поддерживаются значения от 4 до 100. Параметр активен в случае установленного флажка в поле Проверять с помощью регулярного выражения.

  • Обязательно наличие символов в верхнем регистре (needCapitalLetters): если установлен флажок, то будет происходить проверка пароля на наличие букв в верхнем регистре.

  • Обязательное наличие символов в нижнем регистре (needSmallLetters): если установлен флажок, то будет происходить проверка пароля на наличие букв в нижнем регистре.

  • Обязательное наличие спец-символов (needSpecialCharacters): если установлен флажок, то будет происходить проверка пароля на наличие спец.символов.

  • Обязательное наличие цифр (needNumbers): если установлен флажок, то будет происходить проверка пароля на наличие цифр.

  • Ограничить срок действия пароля (isIndicationPasswordExpirationValidityPeriod): включение проверки по сроку действия пароля, дни указываются в параметре Срок действия пароля (в днях).

  • Срок действия пароля (в днях) (passwordExpirationDateCount): указывается срок в днях действия пароля, поддерживаются значения от 0 до 365, при 0 бесконечный срок действия пароля. Поле доступно, если активирован параметр Ограничить срок действия пароля.

  • Количество изменений пароля перед повторным использованием (reuseAfter): минимальное количество уникальных паролей подряд, которые пользователь должен установить до того, как сможет снова использовать ранее примененный пароль. Например, если указано 10 — пользователь сможет вернуть старый пароль только после того, как он 10 раз сменит пароль на другие (новые) значения.

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

Примечание

Пользователи Администратор и Система не участвуют в проверке и не блокируются.

Авторизация через домен

Платформа поддерживает авторизацию пользователей через Active Directory (AD) с помощью блока настроек authDomainSettings на вкладке Параметры сервиса. Этот блок позволяет включить или отключить авторизацию через AD, а также указать адрес и порт сервера, на котором настроена служба доменной аутентификации.

  • Использовать авторизацию через домен Windows (enabled): включает или отключает авторизацию через AD, если флажок установлен, то включена авторизация через AD и доступны для заполнения параметры Сервер и Порт.

  • Сервер (serverAuthenticationAddress): адрес сервера AD.

  • Порт (serverAuthenticationPort): порт подключения к серверу AD.

Дополнительные и секретные свойства пользователей

Конфигурация сервиса управления пользователей позволяет добавить пользователям дополнительные и/или секретные свойства. Методы присвоения значений описаны в Библиотеке разработки.

Дополнительные свойства

Дополнительные свойства пользователей добавляются в конфигурацию базового сервиса Управление пользователями в блок additionalFields.

Пример добавляемой конструкции:

"additionalFields": [
  {
        "$type": "DT.MdmMetadata.BusinessProcesses.Fields.SimpleField, DT_Core",
        "type": "String",
        "name": "Религия",
        "id": "c41bed87-8a55-4c6e-8874-0b6b0f3e389e",
        "isArray": false,
        "isRequired": false,
        "isNullable": false,
        "properties": {
          "$type": "System.Collections.Generic.Dictionary`2[[System.String,
          System.Private.CoreLib],[System.String, System.Private.CoreLib]], System.Private.CoreLib"
        }
  }
 ]

Секретные свойства

Секретные свойства пользователей добавляются в конфигурацию базового сервиса Управление пользователями в блок secretFields.

Пример добавляемой конструкции:

"secretFields": [
  {
        "$type": "DT.MdmMetadata.BusinessProcesses.Fields.SimpleField, DT_Core",
        "type": "Decimal",
        "decimalOptions": {
          "$type": "DT.MdmMetadata.Types.DecimalOptions, DT_TypeBuilder.Entities",
          "precision": 10,
          "scale": 0,
          "autoRound": false
        },
        "name": "Зарплата",
        "id": "768bb0d6-a324-4ec1-9cbd-9a4573a4d6c8",
        "isArray": false,
        "isRequired": false,
        "isNullable": false,
        "properties": {
          "$type": "System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib],[System.String, System.Private.CoreLib]], System.Private.CoreLib"
        }
  }
 ]

Резервирование данных

Резервирование данных используется для восстановления данных сервиса в случае выхода из строя одного из серверов.

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

При выходе из строя одного из серверов, указанных в настройках конфигурации кластера, копии данных будут переданы в обработку Платформой.

Информация о работе резервирования находится в ЦМ на вкладке Основные соответствующего сервера.

Сервис мониторинга

Сервис мониторинга обеспечивает работу Центра мониторинга в кластере и позволяет просматривать оперативное состояние сервера / нод кластера.

Сервис запускается как отдельное приложение DatareonPlatformMonitoringService.exe и является обязательным сервисом для работы системы мониторинга. ЦМ можно открыть на любом сервере кластера по адресу: https:\localhost:7201

Принцип работы:

Каждый сервис мониторинга собирает оперативные данные своего сервера и периодически рассылает их другим сервисам мониторинга в кластере. Таким образом, у каждого сервиса есть актуальные данные по всем серверам.

При запросе данных:

  • Если нужные данные уже есть локально — отображаются они (кеш оперативных данных).

  • Если данные отсутствуют — сервис мониторинга запрашивает их через удаленный сервис мониторинга (а не напрямую в узел).

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

В раздел Сервис мониторинга входит:

  • Название: название сервиса, при редактировании поле обязательное для заполнения.

  • Имя: имя сервиса, формируется автоматически на основании Названия.

  • Комментарий: дополнительные сведения о сервисе, поддерживается многострочный ввод.

../../_images/monitoring_default_service.png