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

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
(Сброс всех очередей в rabbitmq)
(Просмотреть всех пользователей)
Строка 42: Строка 42:
 
===Просмотреть всех пользователей===
 
===Просмотреть всех пользователей===
 
<pre>rabbitmqctl list_users</pre>
 
<pre>rabbitmqctl list_users</pre>
 +
==Контроль доступа==
 +
===Разрешения для пользователя===
 +
<pre>rabbitmqctl set_permissions [-p vhost] {user} {conf} {write} {read}</pre>
 +
Где:<br>
 +
vhost - Имя виртуального хоста, которому предоставляется пользовательский доступ, по умолчанию - /.<br>
 +
user  - Имя пользователя для предоставления доступа к указанному виртуальному хосту.<br>
 +
conf - Регулярное выражение, соответствующее именам ресурсов, для которых пользователю предоставляются разрешения на настройку.<br>
 +
write - Регулярное выражение, соответствующее именам ресурсов, для которых пользователю предоставляются права на запись.<br>
 +
read - Регулярное выражение, соответствующее именам ресурсов, для которых пользователю предоставляются разрешения на чтение.<br>
 +
Например, для пользователя user всем хостам дать все разрешения
 +
<pre>rabbitmqctl set_permissions -p / user "/*" ".*" ".*</pre>
 +
Или
 +
<pre>rabbitmqctl set_permissions -p /myvhost tonyg "^tonyg-.*" ".*" ".*"</pre>
 +
Эта команда инструктирует брокера RabbitMQ предоставить пользователю с именем tonyg доступ к виртуальному хосту с именем /myvhost, с разрешениями конфигурации для всех ресурсов, чьи имена начинаются с «tonyg-», а также разрешения на запись и чтение для всех ресурсов.
 +
===Удалить разрешения для пользователя===
 +
<pre>rabbitmqctl clear_permissions [-p vhost] {username}</pre>
 +
vhost - Он имя виртуального хоста, которому запрещается доступ пользователя, по умолчанию - /.<br>
 +
username - Имя пользователя для отказа в доступе к указанному виртуальному хосту.
 +
<pre>rabbitmqctl clear_permissions -p /myvhost tonyg</pre>
 +
Эта команда инструктирует брокера RabbitMQ запретить пользователю с именем tonyg доступ к виртуальному хосту с именем /myvhost.
 +
===Просмотр разрешений для хоста===
 +
<pre>list_permissions [-p vhost]</pre>
 +
vhost - Имя виртуального хоста, для которого можно указать пользователей, которым был предоставлен доступ к нему, и их разрешения. По умолчанию /.
 +
===Просмотр разрешений для пользователя.===
 +
<pre>rabbitmqctl list_user_permissions {username}</pre>
  
 
==Установка PHP библиотели AMQP==
 
==Установка PHP библиотели AMQP==

Версия 11:15, 13 июля 2017

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

  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 интерфейса

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

И подключаемся через браузер с URL http://<ip-host>:15672
login: guest password: guest

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

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

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

Назначение нового пользователя

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