Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.


Информация

Актуальную статью см. по ссылке: RabbitMQ в непривилегированных docker-контейнерах с ненулевой классификационной меткой.

Оглавление
Информация

RabbitMQ — программный брокер сообщений на основе стандарта AMQP — тиражируемое связующее программное обеспечение, ориентированное на обработку сообщений. Создан на основе системы Open Telecom Platform, написан на языке Erlang, в качестве движка базы данных для хранения сообщений использует Mnesia.

Состоит из сервера, библиотек поддержки протоколов HTTP, XMPP и STOMP[en], клиентских библиотек AMQP для Java и .NET Framework и различных плагинов (таких как плагины для мониторинга и управления через HTTP или веб-интерфейс или плагин «Shovel» для передачи сообщений между брокерами). Имеется реализация клиентов для доступа к RabbitMQ для целого ряда языков программирования, в том числе для Perl, Python, Ruby, PHP. Поддерживается горизонтальное масштабирование для построения кластерных решений.
Источник информации.

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

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

  • ОС СН Смоленск 1.6

Установка пакета

Пакет rabbitmq-server, устанавливающий службу RabbitMQ, не входит в состав стандартного дистрибутива ОС СН Atra Linux SE Смоленск  1.6, поэтому для установки службы нужно подключить репозиторий Debian.

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

Command
apt update && apt install rabbitmq-server

Настройка пакета

Настройка плагинов:

Command
rabbitmq-plugins enable rabbitmq_management

...

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

...

Command
systemctl stop rabbitmq-server
Информация
Остановка службы может занимать довольно много времени, это нормально.

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

Command

mkdir /opt/rabbitmq
mkdir /opt/rabbitmq/etc
mkdir /opt/rabbitmq/log
mkdir /opt/rabbitmq/run

chown -R rabbitmq:rabbitmq /opt/rabbitmq/

...

Информация
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

...

Command
mv /etc/rabbitmq/* /opt/rabbitmq/etc/

...

Информация
[Unit]
Description=RabbitMQ Messaging Server
After=network.target
[Service]
PDPLabel=3:0:0
Type=simple
User=rabbitmq
SyslogIdentifier=rabbitmq
LimitNOFILE=65536
ExecStart=/usr/bin/rabbitmq-server
ExecStartPost=/usr/lib/rabbitmq/bin/rabbitmq-server-wait
ExecStop=/usr/bin/rabbitmqctl stop
[Install]
WantedBy=multi-user.target

...

Command
systemctl daemon-reload

...

Информация

....
INIT_LOG_DIR=/opt/rabbitmq/log
PID_FILE=/opt/rabbitmq/run/pid
...

Отредактировать запускающий файл /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"

...

Информация

...
ENABLED_PLUGINS_FILE=${SYS_PREFIX}/opt/rabbitmq/etc/enabled_plugins
...
CONF_ENV_FILE=${SYS_PREFIX}/opt/rabbitmq/etc/rabbitmq-env.conf
...

...

Информация
pdpl-file -v 3:0:0:CCNRA /opt/
pdpl-file -Rv 3:0:0:CCNRA /opt/rabbitmq
pdpl-file -v 3:0:0:CCNRA /usr
pdpl-file -v 3:0:0:CCNRA /usr/lib
pdpl-file -Rv 3:0:0:CCNRA /usr/lib/rabbitmq
pdpl-file -v 3:0:0:CCNRA /var
pdpl-file -v 3:0:0:CCNRA /var/lib
pdpl-file -Rv 3:0:0:CCNRA /var/lib/rabbitmq

Создать файлы журналов и назначить на них права доступа:

Command

touch /opt/rabbitmq/log/startup_log /opt/rabbitmq/log/startup_err
chown -R rabbitmq:rabbitmq /opt/rabbitmq/

...