Сервер состояний

Сервер состояний предназначен для хранения:

Сервер состояний взаимодействует с менеджером сессий/кластером серверов управления сессиями, который обеспечивает сохранение и восстановление состояний объектов при сбое BI-сервера в кластере и позволяет управлять активными сессиями пользователей.

Для установки сервера состояний обратитесь к официальной документации Redis, Radix, Tarantool и настройте аутентификацию на сервере при необходимости.

Настройки подключения к серверу состояний задаются в группе параметров db в файле config.yaml, расположенном в папке установки менеджера сессий.

Примечание. Сервер состояний не входит в комплект поставки продукта и не предоставляется по запросу службой технической поддержки.

В процессе работы BI-сервера при выполнении запросов на изменение объектов, их состояния (моникёр и параметры, необходимые для восстановления объекта) сохраняются на сервере состояний и восстанавливаются оттуда при последующем обращении к объектам. Сохранение состояний поддерживают менеджер безопасности, настройки подключения к репозиторию и различные объекты:

Также сохраняются состояния указанных типов объектов, созданных в памяти BI-сервера, но еще не сохранённых в репозитории.

Рекомендации по настройке сервера состояний

На сервере состояний могут храниться сессионные данные и состояния объектов или только сессионные данные. Для определения признака сохранения состояний объектов на сервере состояний создайте параметр SaveObjectState типа REG_DWORD в разделе реестра [HKEY_LOCAL_MACHINE\SOFTWARE\Foresight\Foresight Analytics Platform\10.0\PP\BIS\System\SessionServer\State] или в файле settings.xml. По умолчанию параметр принимает значение «1», на сервере состояний хранятся сессионные данные и состояния объектов. В таком случае определите интервал времени после последнего сохранения состояния объекта с помощью параметра ObjectStateSaveInterval. Интервал указывается в секундах, допустимый диапазон - [5, 300]. Рекомендуемый интервал времени - 30 секунд. При изменении объекта выполняется проверка заданного интервала времени после последнего сохранения состояния:

Для обеспечения бесперебойной работы BI-сервера в первую очередь убедитесь, что менеджер сессий и сервер состояний доступны. Для настройки и запуска сервера состояний используйте рекомендации, предоставляемые разработчиками Redis, Radix, Tarantool в соответствии с масштабами создаваемой системы.

По умолчанию Radix и Tarantool используют фрагменты памяти, в которых сохраняется информация, размером 1 МБ. В платформе при формировании блока информации, сохраняемой на сервер состояний и необходимой для восстановления объекта, полученный объем блока превышает 1 МБ. Для изменения размера фрагмента памяти используйте параметр memtx.max_tuple_size. Также учитывайте значение параметра memtx.memory и при необходимости измените его.

Не рекомендуется без необходимости увеличивать размер фрагмента памяти, так как это напрямую влияет на производительность системы и требуемый для работы объем памяти.

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

Взаимодействие менеджера сессий и сервера состояний Redis

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

В конфигурационном файле сервера состояний redis.conf задайте следующие параметры:

tls-port 6379

tls-ca-cert-file /etc/redis/ca.crt

tls-cert-file /etc/redis/server.crt

tls-key-file /etc/redis/server.key

tls-auth-clients yes

Если параметр tls-auth-clients принимает значение yes, то устанавливается mTLS-соединение. При значении no устанавливается TLS-соединение.

Менеджер сессий выступает в качестве клиента. В конфигурационном файле config.yaml в группе параметров db задайте следующие параметры:

db:
  type: Redis
  hostname: <IP-адрес или DNS-имя сервера состояний>
  port: 6379
  keyTimeout: 3600
  ssl:
    rootCertificateFile: /opt/foresight/fp10.x-sesman/etc/ssl-redis/ca.crt
    clientCertificateFile: /opt/foresight/fp10.x-sesman/etc/ssl-redis/client.crt
    clientKeyFile: /opt/foresight/fp10.x-sesman/etc/ssl-redis/client.key

Настройка аутентификации на сервере состояний

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

В конфигурационном файле Radix/Tarantool добавьте учётные данные администратора и пользователя, под которым будет выполняться подключение к серверу состояний. Для получения подробной информации обратитесь к официальной документации Radix/Tarantool.

Если на сервере состояний Redis настроена парольная аутентификация, то добавьте переменные окружения в файл /opt/foresight/fp10.x-sesman/etc/environment, расположенный в менеджере сессий:

Измените файл environment в каждом менеджере сессий в кластере и перезапустите службу sesman для применения изменений:

sudo systemctl restart sesman

См. также:

Создание кластера серверов сессий | Менеджер сессий