Установка RubbitMQ: различия между версиями

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
(Установка web интерфейса)
(Сброс всех очередей в rabbitmq)
Строка 24: Строка 24:
  
 
==Сброс всех очередей в rabbitmq==
 
==Сброс всех очередей в rabbitmq==
<pre>rabbitmqctl stop_app
+
Устанавливаем команду rabbitmqadmin
rabbitmqctl reset
+
<pre>
rabbitmqctl start_app
+
wget  https://raw.githubusercontent.com/rabbitmq/rabbitmq-server/master/deps/rabbitmq_management/bin/rabbitmqadmin -P /tmp
 +
chmod +x /tmp/rabbitmqadmin
 +
sudo mv /tmp/rabbitmqadmin /usr/bin/
 
</pre>
 
</pre>
 +
Команда по удалению всех очередей del_all_querys.sh
 +
<pre>
 +
rabbitmqadmin -f tsv -q list queues name | while read queue; do rabbitmqadmin -q delete queue name=${queue}; done[root@mlxsql31 rabbitMQ]
 +
</pre>
 +
 
==Команды управления пользователями==
 
==Команды управления пользователями==
 
[https://www.rabbitmq.com/man/rabbitmqctl.1.man.html rabbitmqctl(1) manual page]<br>
 
[https://www.rabbitmq.com/man/rabbitmqctl.1.man.html rabbitmqctl(1) manual page]<br>

Версия 08:37, 31 октября 2023

Полезные ссылки

  1. RabbitMQ - Урок 1. Hello world!
  2. RabbitMQ - Урок 2. Распределенные очереди
  3. RabbitMQ - Урок 3. Рассылка публикаций
  4. RabbitMQ - Урок 4. Селективная рассылка
  5. RabbitMQ - Урок 5. Рассылка по шаблону
  6. RabbitMQ - Урок 6. Реализация RPC шаблона
  7. RabbitMQ для начинающих

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

$sudo apt install rabbitmq-server

Установка web интерфейса

Взято тут
По умолчанию, веб-интерфейс отключен, но его можно включить командой на *nix системах:

$sudo rabbitmq-plugins enable rabbitmq_management
$sudo service rabbitmq-server restart

После чего необходимо перезапустить RabbitMQ и войти через браузер на http://localhost:15672. По умолчанию, логин и пароль для входа в RabbitMQ Managment Plugin: guest/guest

С версии 3.3 было введено ограничение на доступ по guest/guest с хоста отличного от localhost. Но вы можете создать пользователя test c паролем passwd и зайти под ним с любого хоста:

rabbitmqctl add_user test passwd
rabbitmqctl set_user_tags test administrator 
rabbitmqctl set_permissions -p / test ".*" ".*" ".*"

Сброс всех очередей в rabbitmq

Устанавливаем команду rabbitmqadmin

wget  https://raw.githubusercontent.com/rabbitmq/rabbitmq-server/master/deps/rabbitmq_management/bin/rabbitmqadmin -P /tmp
chmod +x /tmp/rabbitmqadmin
sudo mv /tmp/rabbitmqadmin /usr/bin/

Команда по удалению всех очередей del_all_querys.sh

rabbitmqadmin -f tsv -q list queues name | while read queue; do rabbitmqadmin -q delete queue name=${queue}; done[root@mlxsql31 rabbitMQ] 

Команды управления пользователями

rabbitmqctl(1) manual page
По умолчанию RabbitMQ используется пользователь guest и пароль guest

Поменять пароль пользователя

Например, можно просто поменять пароль пользователю guest

abbitmqctl change_password guest newpassword

Удаление пользователя

Удаляем пользователя guest

rabbitmqctl delete_user guest

Добавление нового пользователя

Для добавление нового пользователя, например rabbit и пароль password

rabbitmqctl add_user rabbit password

Сбросить пароль пользователя

Сбросим пароль пользователю guest

rabbitmqctl clear_password guest

Команда аутентификации

rabbitmqctl authenticate_user user paswduser

Эта команда инструктирует брокера RabbitMQ аутентифицировать пользователя с именем user с помощью проверки пароля.

Просмотреть всех пользователей

rabbitmqctl list_users

Контроль доступа

Разрешения для пользователя

rabbitmqctl set_permissions [-p vhost] {user} {conf} {write} {read}

Где:
vhost - Имя виртуального хоста, которому предоставляется пользовательский доступ, по умолчанию - /.
user - Имя пользователя для предоставления доступа к указанному виртуальному хосту.
conf - Регулярное выражение, соответствующее именам ресурсов, для которых пользователю предоставляются разрешения на настройку.
write - Регулярное выражение, соответствующее именам ресурсов, для которых пользователю предоставляются права на запись.
read - Регулярное выражение, соответствующее именам ресурсов, для которых пользователю предоставляются разрешения на чтение.
Например, для пользователя user всем хостам дать все разрешения

rabbitmqctl set_permissions -p / user "/*" ".*" ".*

Или

rabbitmqctl set_permissions -p /myvhost tonyg "^tonyg-.*" ".*" ".*"

Эта команда инструктирует брокера RabbitMQ предоставить пользователю с именем tonyg доступ к виртуальному хосту с именем /myvhost, с разрешениями конфигурации для всех ресурсов, чьи имена начинаются с «tonyg-», а также разрешения на запись и чтение для всех ресурсов.

Удалить разрешения для пользователя

rabbitmqctl clear_permissions [-p vhost] {username}

vhost - Он имя виртуального хоста, которому запрещается доступ пользователя, по умолчанию - /.
username - Имя пользователя для отказа в доступе к указанному виртуальному хосту.

rabbitmqctl clear_permissions -p /myvhost tonyg

Эта команда инструктирует брокера RabbitMQ запретить пользователю с именем tonyg доступ к виртуальному хосту с именем /myvhost.

Просмотр разрешений для хоста

list_permissions [-p vhost]

vhost - Имя виртуального хоста, для которого можно указать пользователей, которым был предоставлен доступ к нему, и их разрешения. По умолчанию /.

Просмотр разрешений для пользователя.

rabbitmqctl list_user_permissions {username}

Установка PHP библиотели AMQP

$sudo apt install librabbitmq-dev
$sudo pecl install AMQP

Если будет ругаться, что библиотека librabbitmq старая, то

$sudo apt purge librabbitmq-dev
$sudo apt install cmake

Идем на https://github.com/alanxz/rabbitmq-c и качаем последнюю версию библиотеки. распаковываем в ~

cd rabbitmq-c-master
mkdir build && cd build
cmake ..
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
sudo cmake --build . --target install
sudo pecl install AMQP

В папке /etc/php/7.0/mods-available создаем файл amqp.ini следующего содержания

; extention for rabbitmq lib
; priority = 20
extension=amqp.so

И делаем симлинки

sudo ln -s /etc/php/7.0/mods-available/amqp.ini /etc/php/7.0/apache2/conf.d/20-amqp.ini
sudo ln -s /etc/php/7.0/mods-available/amqp.ini /etc/php/7.0/cli/conf.d/20-amqp.ini

Перезапускаем apache

sudo service apache2 restart