<< Click to Display Table of Contents >> Администрирование (Linux) > Расширенная установка > Настройка отказоустойчивой архитектуры Directum RX Настройка кластера RabbitMQ |
1.Установите RabbiMQ на каждом узле кластера RRM.
2.Подготовьте кластер к работе.
3.Настройте RabbitMQ в кластере, а также зеркалирование очередей.
В зависимости от используемого дистрибутива Linux установите RabbitMQ с помощью deb- или rpm-пакета.
Если нужно установить deb-пакет (Astra Linux):
1.Со страницы https://packages.erlang-solutions.com/erlang/debian/pool/ официального сайта Erlang загрузите deb-пакет esl-erlang_24.0.5-1~debian~stretch_amd64.deb или выполните команду:
wget https://packages.erlang-solutions.com/erlang/debian/pool/esl-erlang_24.0.5-1~debian~stretch_amd64.deb
2.Со страницы https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.9.5 официального сайта RabbitMQ загрузите deb-пакет rabbitmq-server_3.9.5-1_all.deb или выполните команду:
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.5/rabbitmq-server_3.9.5-1_all.deb
3.Установите загруженные пакеты. Для этого последовательно выполните команды:
sudo dpkg -i esl-erlang_24.0.5-1~debian~stretch_amd64.deb
sudo dpkg -i rabbitmq-server_3.9.5-1_all.deb
Если при установке возникнет ошибка, что отсутствуют зависимые пакеты, загрузите их с помощью команды:
sudo apt-get -f install
Если нужно установить rpm-пакет (ALT Linux):
1.Со страницы https://github.com/rabbitmq/erlang-rpm/releases загрузите rpm-пакет erlang-25.0-1.el8.x86_64.rpm или выполните команду:
wget https://github.com/rabbitmq/erlang-rpm/releases/download/v25.0/erlang-25.0-1.el8.x86_64.rpm
2.Со страницы https://github.com/rabbitmq/rabbitmq-server/releases загрузите rpm-пакет rabbitmq-server-3.10.2-1.el8.noarch.rpm или выполните команду:
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.10.2/rabbitmq-server-3.10.2-1.el8.noarch.rpm
3.Установите загруженные пакеты. Для этого последовательно выполните команды:
sudo rpm -i erlang-25.0-1.el8.x86_64.rpm
sudo rpm -i rabbitmq-server-3.10.2-1.el8.noarch.rpm
Если при установке возникнет ошибка, что отсутствуют зависимые пакеты, загрузите их с помощью команды:
sudo apt-get -f install
1.Для узлов кластера подготовьте три сервера: rrm1, rrm2, rrm3. На каждом из них установите RabbitMQ, если это не было сделано ранее.
2.Если система устанавливается в среде с поддержкой FQDN-имен, например rrm1.domain.local, то в конфигурационном файле rabbitmq-env.conf в параметре RABBITMQ_USE_LONGNAME укажите значение true. Конфигурационный файл можно изменить, например, с помощью редактора nano. Пример команды:
sudo nano /etc/rabbitmq/rabbitmq-env.conf
3.На каждом узле в файл hosts добавьте информацию о других узлах.
Пример настройки:
192.168.1.20 rrm1
192.168.1.21 rrm2
192.168.1.22 rrm3
4.Синхронизируйте файл /var/lib/rabbitmq/.erlang.cookie между всеми узлами. Для этого скопируйте файл с одного из узлов на остальные.
5.Убедитесь, что для работы кластера открыты порты: 4369, 6000-6500, 25672, 35672-35682. Подробнее см. в документации RabbitMQ статью Clustering Guide, раздел Port Access.
6.Предположим, что rrm1 – основной узел. Поочередно на резервных узлах rrm2 и rrm3 выполните указанные ниже команды.
Остановите узел RabbitMQ:
sudo rabbitmqctl stop_app
Сбросьте очереди RabbitMQ:
sudo rabbitmqctl reset
Присоедините узел кластеру:
sudo rabbitmqctl join_cluster rabbit@rrm1
Запустите узел RabbitMQ:
sudo rabbitmqctl start_app
1.Создайте пользователя для работы Directum RX с RabbitMQ. Для этого выполните команду:
sudo rabbitmqctl add_user <Имя пользователя> <Пароль пользователя>
Пример:
sudo rabbitmqctl add_user drx_user password
2.Созданному пользователю выдайте права администратора:
sudo rabbitmqctl set_user_tags <Имя пользователя> administrator
Пример:
sudo rabbitmqctl set_user_tags drx_user administrator
3.В RabbitMQ создайте виртуальный хост (vhost) для работы с Directum RX:
sudo rabbitmqctl add_vhost <Имя виртуального хоста>
Пример:
sudo rabbitmqctl add_vhost drx_host
4.Выдайте пользователю разрешение на виртуальный хост.
sudo rabbitmqctl set_permissions -p "<Имя виртуального хоста>" "<Имя пользователя>" ".*" ".*" ".*"
Пример:
sudo rabbitmqctl set_permissions -p "drx_host" "drx_user" ".*" ".*" ".*"
5.Выдайте пользователю разрешение на публикацию сообщений по всем темам виртуального хоста:
sudo rabbitmqctl set_topic_permissions -p "<Имя виртуального хоста>" "<Имя пользователя>" ".*" ".*" ".*"
Пример:
sudo rabbitmqctl set_topic_permissions -p "drx_host" "drx_user" ".*" ".*" ".*"
6.При необходимости добавьте веб-интерфейс для настройки и управления RabbitMQ:
sudo rabbitmq-plugins enable rabbitmq_management
7.Чтобы собирать статистику работы RabbitMQ, включите плагин rabbitmq-management-agent. Для этого на всех узлах, кроме того, на котором установлен плагин rabbitmq-managemet, выполните команду:
sudo rabbitmq-plugins enable rabbitmq_management_agent
8.Чтобы очереди на каждом из узлов кластера соответствовали друг другу, настройте политику зеркалирования. В этом режиме очереди постоянно реплицируются между узлами. Кроме того, если в кластер подключается новый узел, репликация запускается автоматически.
Чтобы настроить политику зеркалирования, выполните команду:
sudo rabbitmqctl set_policy -p <Имя виртуального хоста> ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
Пример:
sudo rabbitmqctl set_policy -p drx_host ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
Подробнее об инструменте rabbitmqctl и выполняемых с помощью него командах см. в документации RabbitMQ статью rabbitmqctl(8).
© Компания Directum, 2024 |