Межсерверное взаимодействие🔗

Межсерверное взаимодействие необходимо для эффективной передачи сообщений между серверами. Для достижения этой цели была реализована работа между сервером Macroscop и брокером сообщений RabbitMQ.

Использование брокера RabbitMQ позволяет эффективно передавать сообщения между серверами Macroscop, увеличивая скорость и надежность обмена информацией.

Существует два режима работы брокера RabbitMQ:

  • одиночный брокер (работает только на главном сервере)

  • кластер брокеров (работает на нескольких серверах)

Примечание

Функция доступна на серверах Macroscop, работающих под управлением как Windows, так и Linux.

Установка сервиса RabbitMQ

RabbitMQ устанавливается автоматически вместе с серверными приложениями Macroscop.

Предупреждение

Сервис RabbitMQ выключен по умолчанию.

Настройка

Для того чтобы сервер Macroscop и сервис RabbitMQ могли взаимодействовать между собой, необходимо запустить приложение Macroscop Конфигуратор, перейти на страницу Серверы, выделить в списке серверов /config/servers/svg/ico-server-all.png Общие настройки, затем перейти на вкладку Сервисы и включить опцию /img/ico-switch-on.png Межсерверное взаимодействие.

../../_images/server-configuration.png
Настройка пользователя для RabbitMQ

По умолчанию для сервиса RabbitMQ используется следующие настройки:

  • Логин пользователя сервиса (macroscop)

  • Пароль пользователя сервиса (masterkey)

../../_images/user-configuration.png

Можно задать собственные логин и пароль.

Для того чтобы изменить логин пользователя, необходимо нажать кнопку Смена пользователя. Откроется окно для смены пользователя. В данном окне можно задать новое имя пользователя и пароль.

Предупреждение

Если указать старое имя пользователя, то сервер сменит только пароль.

../../_images/change-user.png

После смены пользователя или пароля, Серверное приложение Macroscop автоматически сменит пароль от сервиса RabbitMQ.

Для смены пароля необходимо нажать кнопку Изменить пароль. Откроется окно для смены пароля.

../../_images/change-password.png
SSL-сертификат

Для дополнительной защиты соединения между серверами Macroscop и сервисом RabbitMQ, можно установить SSL-сертификат.

В разделе настроек SSL-сертификата отображается основная информация о сертификате и дата, до которой он действителен.

../../_images/ssl-certificate.png

При применении конфигурации, приложение Macroscop Сервер автоматически настроит конфигурацию RabbitMQ для использования SSL-сертификатов.

Если сертификат защищён с помощью пароля, то при попытке импорта, откроется окно для ввода пароля.

../../_images/ssl-password.png

Чтобы отключить использование SSL-сертификата, необходимо убрать галочку с пункта SSL-сертификат.

Генерация SSL-сертификата

Генерация сертификатов выполняется с помощью утилиты OpenSSL.

Генерация разделена на два этапа:

  • генерация Центра сертификации (позволяет создавать самоподписанные сертификаты и проверять их подлинность)

  • генерация сертификата

Генерация закрытого ключа Центра сертификации:

openssl genrsa -aes256 -out ca-key.pem 4096

Предупреждение

Во время создания закрытого ключа, OpenSSL попросит ввести пароль для его защиты. Это можно отключить убрав параметр -aes256 из команды.

Генерация корневого сертификата Центра сертификации

openssl req -new -x509 -sha256 -days 5000 -key ca-key.pem -out ca.pem

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

Генерация закрытого ключа сертификата

openssl req -new -key cert-key.key -out cert.pem

Генерация сертификата

openssl x509 -req -in cert.pem -CA ca.pem -CAkey ca-key.pem -CAcreateserial -days 5000 -out cert.pem

Примечание

Необходимо заполнить основную информацию о сертификате.

Подпись сгенерированного сертификата с помощью Центра сертификации

openssl genrsa -out cert-key.pem 4096

Генерация pfx-файла для импорта через Macroscop Конфигуратор

openssl pkcs12 -export -out Certificate.pfx -inkey cert-key.pem -in cert.pem -certfile ca.pem
Настройка кластера брокеров

Кластер брокеров RabbitMQ позволяет повысить отказоустойчивость.

Чтобы выбрать сервера, которые будут находиться в кластере RabbitMQ, необходимо включить Умное резервирование и нажать кнопку Редактировать.

../../_images/smart-redundancy.png

Предупреждение

Нужно выбрать нечётное количество серверов (минимум - 3 сервера, максимум - 7). Если будет выбрано меньше трёх серверов, то кластер сформирован не будет. Одним из серверов в кластере обязательно должен быть главный сервер. Также, сервера, состоящие в кластере, должны видеть друг друга в сети.

../../_images/server-adding.png