Сервер состояний предназначен для хранения:
состояний объектов при использовании кластера BI-серверов;
сессионных данных для управления активными сессиями пользователей с помощью утилиты sesman-cli.
Сервер состояний взаимодействует с менеджером сессий/кластером серверов управления сессиями, который обеспечивает сохранение и восстановление состояний объектов при сбое 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 между менеджером сессий и сервером состояний может быть организована связь по протоколу 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, расположенный в менеджере сессий:
REDIS_USER. Имя пользователя, под которым будет выполняться подключение к серверу состояний. Если настроена анонимная аутентификация, то задайте пустое значение;
REDIS_PASSWORD. Пароль пользователя, который используется при подключении к серверу состояний.
Измените файл environment в каждом менеджере сессий в кластере и перезапустите службу sesman для применения изменений:
sudo systemctl restart sesman
См. также: