Skip to main content
Version: yakutsk

rabbitmq

Установка и настройка брокера сообщений rabbitmq

Установка rabbitmq-server в Ubuntu:

apt install -y rabbitmq-server

Установка rabbitmq-server в Centos 7, РЕДОС 7.3:

Для установки rabbitmq-server необходимо подлючить репозиторий: 3rdparties, либо выполнить подключение репозиториев согласно официальной документации

Для установки rabbitmq-server на РЕДОС 7.3 не требуется подключать 3rdparties

sudo yum install -y rabbitmq-server
sudo dnf install -y rabbitmq-server

При запуске rabbitmq-server создает в рабочем каталоге /var/lib/rabbitmq/mnesia каталоги и файлы хранилища вида

rabbit@<hostname>
rabbit@<hostname>-feature_flags
rabbit@<hostname>-plugins-expand
rabbit@<hostname>.pid

При изменении имени хоста после перезапуска rabbitmq-server создаст новые файлы с текущим hostname. Во избежание этого (начиная с релиза saratov) скрипты развертывания rabbitmq-server содержат генерацию файла /etc/rabbitmq/rabbitmq-env.conf со следующим содержимым:

NODENAME=rabbit@localhost

В данном случае localhost - умолчальное значение параметра Lyra3.{HP,OR}.nodename (ESC1.rabbitmq.nodename). Развертывание в таком виде позволит безболезненно менять hostname сервера. Кластеризация rabbitmq в такой конфигурации невозможна, но в в базовых установках она не используется (Подробнее о кластеризации можно прочитать в документации).

В случае, если имя сервера меняется на установках до релиза saratov, можно создать файл /etc/rabbitmq/rabbitmq-env.conf с содержимым

NODENAME=rabbit@<old_hostname>

и добавить в /etc/hosts для адреса 127.0.0.1 имя алиас <old_hostname>. После перезапуска rabbitmq-server считает данные из предыдущего хранилища.

В релиз saratov в ctl-утилиты так же добавлен аргумент reconfigure_rabbitmq, который позволить менять nodename в случае необходимости (т. е. после изменения hostname либо изменения параметров rabbitmq через configMap).

Запуск:

systemctl enable --now rabbitmq-server

Создание пользователя и виртуального хоста / в Centos 7, РЕДОС 7.3, Ubuntu:

sudo rabbitmqctl add_user <user> <password>
sudo rabbitmqctl add_vhost /
sudo rabbitmqctl set_permissions -p / <user> ".*" ".*" ".*"