Как запустить rabbitmq linux
Данная статья применима к:
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-rabbitNODE_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 на 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. Наслаждайтесь и оставайтесь на связи для более информативного содержания.
Читайте также: