Как запустить rabbitmq linux

Обновлено: 06.07.2024

Данная статья применима к:

Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5)
(с установленным обновлением Бюллетень № 20190329SE15)

Astra Linux Special Edition РУСБ.10015-16 исп. 1

Статья разработана на основе материалов, предоставленных коллегами из АО "РТИ"

В данной статье рассматривается запуск сервиса RabbitMQ с ненулевой меткой безопасности (для примера используется метка безопасности с уровнем конфиденциальности 3, категориями доступа 0 и уровнем целостности 0, т.е. 3:0:0).

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

В целом для запуска любого сервиса для работы с ненулевой меткой безопасности нужно выполнить следующие типовые операции:

Далее рассматривается выполнение этих операций применительно к сервису RabbitMQ.

Пакет rabbitmq-server, устанавливающий службу RabbitMQ, не входит в состав стандартного дистрибутива ОС Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6), поэтому для установки службы нужно подключить репозиторий Debian.

После подключения репозитория пакет rabbitmq-server может быть установлен с помощью графического менеджера пакетов или из командной строки командами

При установке сервис будет запущен, и будет настроен автозапуск сервиса при запуске ОС.

Базовая настройка

Пример вывода команды:

The following plugins have been enabled:
mochiweb
webmachine
rabbitmq_web_dispatch
amqp_client
rabbitmq_management_agent
rabbitmq_management

Добавление пользователя для RabbitMQ, задание пароля, назначение прав

rabbitmqctl add_user user password && \
rabbitmqctl set_user_tags user administrator && \
rabbitmqctl set_permissions -p / user ".*" ".*" ".*"

Для выполнения дальнейших настроек остановить службу:

Создать каталоги для работы с ненулевой меткой безопасности и назначить их владельцем автоматически созданного при установке пакета пользователя rabbitmq:

mkdir -p /opt/rabbitmq/ && chown -R rabbitmq:rabbitmq / opt/rabbitmq /

Переместить файлы настроек в ранее созданный каталог:

В реальности редактируемые далее файлы представляют собой ссылки на внутренние файлы RabbitMQ, поэтому для их редактирования рекомендуется использовать какой-нибудь простой текстовый редактор (например, nano).
Использование продвинутых редакторов (например, kate) может привести к тому, что ссылки будут заменены на копии файлов, после чего служба полностью потеряет работоспособность.

Отредактировать конфигурационный файл /opt/rabbitmq/etc/rabbitmq-env.conf, добавив или изменив следующие строки (в параметре NODE_IP_ADDRESS указать ip-адрес сервера):

NODENAME=example-rabbit
NODE_IP_ADDRESS=<IP-address>
NODE_PORT=5672
LOG_BASE=/opt/rabbitmq/log
HOME=/opt/rabbitmq
MNESIA_BASE=/var/lib/rabbitmq/mnesia

Настройка запуска с ненулевой меткой безопасности

Отредактировать юнит (файл запуска) службы в /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service, добавив в него параметр с нужной меткой безопасности:

[Unit]
Description=RabbitMQ Messaging Server
After=network.target
[Service]
PDPLabel=3:0:0
Type=simple
User=rabbitmq
SyslogIdentifier=rabbitmq
LimitNOFILE=65536
ExecStart=/usr/sbin/rabbitmq-server
ExecStartPost=/usr/lib/rabbitmq/bin/rabbitmq-server-wait
ExecStop=/usr/sbin/rabbitmqctl stop
[Install]
WantedBy=multi-user.target

После выполнения редактирования юнита запуска службы обновить конфигурацию для загрузки внесённых изменений:

Создание файловых объектов с нужной меткой безопасности

Отредактировать файл запуска службы в /etc/init.d/rabbitmq-server, исправив пути к файлам:

Отредактировать запускающий файл /usr/lib/rabbitmq/bin/rabbitmq-script-wrapper, исправив пути к файлам журналов:

if [ `id -u` = `id -u rabbitmq` -a "$SCRIPT" = "rabbitmq-server" ] ; then
/usr/lib/rabbitmq/bin/rabbitmq-server "$@" > "/opt/rabbitmq/log/startup_log" 2> "/opt/rabbitmq/log/startup_err"

Отредактировать файл переменных по умолчанию /usr/lib/rabbitmq/bin/rabbitmq-defaults. Изменить пути до файлов ENABLED_PLUGINS_FILE, CONF_ENV_FILE:

Назначить уровень меток безопасности на директории и файлы

pdpl-file 3:0:0:ccnr / opt /
pdpl-file -R 3:0:0:ccnr /opt/rabbitmq
pdpl-file 3:0:0:ccnr /var/lib
pdpl-file -R 3:0:0:ccnr /var/lib/rabbitmq

( export U=user ; rabbitmqctl add_user $U password && rabbitmqctl set_user_tags $U administrator && rabbitmqctl set_permissions -p / $U ".*" ".*" ".*" )

time systemctl stop rabbitmq-server

( export R=/opt/rabbitmq ; mkdir -p $R/ && mv /etc/rabbitmq/* $R/etc/ && chown -R rabbitmq:rabbitmq $R )

( export F=/opt/rabbitmq/etc/rabbitmq-env.conf
cat << EOF >> $F
NODENAME=example-rabbit
NODE_IP_ADDRESS=$(ip a s eth0 2>/dev/null | grep "inet " | cut -d "/" -f 1 | cut -c 10-)
NODE_PORT=5672
LOG_BASE=/opt/rabbitmq/log
HOME=/opt/rabbitmq
MNESIA_BASE=/var/lib/rabbitmq/mnesia
EOF
)

( export F=/etc/systemd/system/multi-user.target.wants/rabbitmq-server.service
sed -i --follow-symlinks "s

( export F=/etc/init.d/rabbitmq-server
sed -i --follow-symlinks 's

' $F
sed -i --follow-symlinks 's

' $F
sed -i --follow-symlinks 's

( export F=/usr/lib/rabbitmq/bin/rabbitmq-script-wrapper
sed -i --follow-symlinks 's

' $F
sed -i --follow-symlinks 's

( export F=/usr/lib/rabbitmq/bin/rabbitmq-defaults
sed -i --follow-symlinks 's

' $F
sed -i --follow-symlinks 's

pdpl-file 3:0:0:ccnr /opt/ && pdpl-file -R 3:0:0:ccnr /opt/rabbitmq
pdpl-file 3:0:0:ccnr /var/lib && pdpl-file -R 3:0:0:ccnr /var/lib/rabbitmq

Как установить RabbitMQ на

Установите RabbitMQ на Ubuntu 20.04 LTS Focal Fossa

Шаг 1. Во-первых, убедитесь, что все ваши системные пакеты обновлены, выполнив следующие apt команды в терминале.

Шаг 2. Установка Erlang.

Теперь мы добавляем репозиторий в вашу систему Ubuntu, выполнив следующие команды:

Затем обновите список системных пакетов и установите Erlang:

Шаг 3. Установка RabbitMQ в Ubuntu 20.04.

Во-первых, вам нужно импортировать RabbitMQ:

Затем добавьте репозиторий RabbitMQ в Ubuntu:

Теперь нам просто нужно запустить обновление и установить из нашего недавно добавленного пакета: rabbitmq - server

После успешной установки RabbitMQ запускается и включается при загрузке. Вы можете проверить это, используя:

Шаг 4. Войдите в консоль управления RabbitMQ.

Для упрощения управления вы даже можете включить панель управления RabbitMQ. Чтобы установить плагин, используйте следующую команду:

Шаг 5. Настройте брандмауэр.

Если у вас активен брандмауэр UFW, откройте оба порта 5672 и 15672:

Шаг 6. Доступ к веб-интерфейсу RabbitMQ.

По умолчанию гостевой пользователь существует и может подключаться только с localhost. Вы можете войти в систему с этим пользователем локально с паролем «гость».

Для входа в сеть создайте пользователя с правами администратора. Затем войдите в систему с именем пользователя и назначенным паролем:

Поздравляю! Вы успешно установили RabbitMQ . Благодарим за использование этого руководства по установке RabbitMQ в системе Ubuntu 20.04 LTS (Focal Fossa). Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт RabbitMQ .

Краткий обзор RabbitMQ

Как работает RabbitMQ?

APPLICATION EXCHANGE TASK LIST WORKER
[DATA] -------> [DATA] ---> [D]+[D][D][D] ---> [DATA] Publisher EXCHANGE Queue Consumer

Преимущества RabbitMQ

В отличие от других решений, RabbitMQ является полноценным стеком приложений, а не простой базой для применения выбранных вами приложений. Он предоставляет все необходимые инструменты в комплексе.

Краткий обзор AMQP

Установка RabbitMQ

Пакеты RabbitMQ поставляются системами CentOS/RHEL и Ubuntu/Debian. Но, как правило, такие пакеты устаревшие. Потому рекомендуется скачать и установить RabbitMQ вручную.

Примечание: Все действия руководства рекомендуется выполнять на свежем сервере, чтобы не нарушить работу запущенных ранее приложений и не вызвать сбой настроек.

Установка RabbitMQ в CentOS/RHEL

Прежде чем приступить к установке RabbitMQ, нужно установить зависимости программы, одной из которых является Erlang. Однако, прежде всего необходимо обновить систему и стандартные приложения; для этого запустите:

Для установки Erlang используйте команды:

Теперь можно установить RabbitMQ:

Установка RabbitMQ в Ubuntu 13/Debian 7

Процесс установки RabbitMQ в Ubuntu/Debian подобен установке в CentOS.

Для начала нужно обновить стандартные пакеты:

apt-get update
apt-get -y upgrade

Включите репозиторий приложения RabbitMQ:

echo "deb http://www.rabbitmq.com/debian/ testing main" >> /etc/apt/sources.list

Добавьте ключ проверки пакета:

Снова обновите систему:

Теперь можно загрузить и установить RabbitMQ:

sudo apt-get install rabbitmq-server

Чтобы при запуске было обработано максимальное количество подключений, откройте и отредактируйте в nano следующий конфигурационный файл:

sudo nano /etc/default/rabbitmq-server

Управление RabbitMQ

Как говорилось ранее, брокер RabbitMQ очень прост в использовании. В данном разделе приведены инструкции по управлению и настройке RabbitMQ.

Включение консоли управления

Консоль управления RabbitMQ (RabbitMQ Management Console) – это один из доступных плагинов, позволяющий мониторить процессы сервера RabbitMQ через графический пользовательский веб-интерфейс.

При помощи этой консоли можно:

Чтобы включить консоль RabbitMQ, запустите команду:

sudo rabbitmq-plugins enable rabbitmq_management

Теперь можно открыть консоль при помощи любого удобного браузера:

Стандартные имя и пароль – guest.

Примечание: Запустив консоль после запуска сервиса, не забудьте перезапустить его, чтобы обновить настройки.

Управление RabbitMQ в CentOS/RHEL

После установки приложение RabbitMQ не будет запускаться автоматически при загрузке системы.

Чтобы настроить автозапуск RabbitMQ, выполните:

chkconfig rabbitmq-server on

Для запуска, остановки, перезапуска и проверки состояния используйте команды:

Управление RabbitMQ в Ubuntu/Debian

Чтобы запустить, остановить перезапустить и проверит статус приложения в Ubuntu и Debian, используйте:

Настройка RabbitMQ

RabbitMQ поставляется со стандартными настройками. В целом, они довольно надёжны инее требуют редактирования.

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


Установив кластер RabbitMQ в Ubuntu 18.04, вы избежите единой точки отказа и достигнете более высокой пропускной способности по сравнению с настройкой RabbitMQ в одном экземпляре.

Без лишних слов давайте перейдем к настройке кластера RabbitMQ в Ubuntu 18.04 LTS.

Требования к настройке

Эта установка имеет следующие требования

  • Установленные серверы Ubuntu 18.04 LTS
  • Как минимум два сервера RabbitMQ
  • Пользователь с привилегиями sudo
  • Серверы должны иметь доступ в интернет

Эта настройка RabbitMQ Cluster в Ubuntu 18.04 основана на двух серверах со следующими IP-адресами и именами хостов.

Шаг 1: Настройте имена хостов и DNS

Первым шагом в установке кластера RabbitMQ в Ubuntu 18.04 является настройка правильных имен хостов и DNS.

MQ Server 1:

MQ Server 2:

Если у вас нет DNS-сервера, вы можете добавить записи в файл /etc/hosts

Затем обновите ваши системы:

Шаг 2: Установите сервер RabbitMQ на обоих узлах

Войдите на свои серверы и установите сервер RabbitMQ на всех узлах

Установка RabbitMQ в Ubuntu 18.04 состоит из двух частей:

Установка Erlang / OTP
Установка сервера RabbitMQ

Статус ваших серверов RabbitMQ должен быть запущен:

Шаг 3: Скопируйте RabbitMQ Server 1 Cookie RabbitMQ Server2

Для работы кластера RabbitMQ все узлы, участвующие в кластере, должны иметь одинаковые файлы cookie.

Скопируйте Cookie на своем первом узле на все остальные узлы в кластере.

На mq1 запустите:

Шаг 4: Сброс RabbitMQ на Node2

Переконфигурируйте RabbitMQ на узле 2 и присоедините его к кластеру.

1. Перезапустите сервис RabbitMQ.

2. Остановите приложение

3. Сбросьте rabbitmq

3. Присоедините узел к кластеру

4. Запустите процесс подачи приложения

Проверьте статус кластера:

Шаг 5. Настройка политики RabbitMQ HA

Создайте политику, которая позволяет зеркалировать очереди для всех узлов в кластере.

Вы можете перечислить настроенные политики, используя:

Чтобы удалить политику, используйте:

Шаг 5: Тестирование

Наконец, проверьте настройку кластера RabbitMQ в Ubuntu 18.04.

Включите веб-панель управления RabbitMQ Management для удобного управления.

Если у вас есть активный брандмауэр UFW, разрешите порты TCP 5672 и 15672

По умолчанию пользователь guest существует и может подключаться только с локального хоста.

Вы можете войти с этим пользователем локально с паролем «guest»

Чтобы иметь возможность войти в сеть, создайте пользователя-администратора, как показано ниже:

Используйте созданного пользователя для входа в интерфейс управления RabbitMQ. Вы должны получить статус всех узлов кластера.

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


Если вы войдете в RabbitMQ node2 и проверите для созданных пользователей RabbitMQ, вы должны увидеть вывод, подобный приведенному ниже.

Вы успешно установили кластер RabbitMQ в Ubuntu 18.04. Наслаждайтесь и оставайтесь на связи для более информативного содержания.

Читайте также: