Установка RubbitMQ: различия между версиями
Misha (обсуждение | вклад) (→Полезные ссылки) |
Misha (обсуждение | вклад) (→Сброс всех очередей в rabbitmq) |
||
(не показано 9 промежуточных версий этого же участника) | |||
Строка 11: | Строка 11: | ||
<pre>$sudo apt install rabbitmq-server</pre> | <pre>$sudo apt install rabbitmq-server</pre> | ||
==Установка web интерфейса== | ==Установка web интерфейса== | ||
+ | Взято [https://ru.stackoverflow.com/questions/551840/%D0%9A%D0%B0%D0%BA-%D0%B7%D0%B0%D0%B9%D1%82%D0%B8-%D0%BD%D0%B0-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%83-rabbitmq тут]<br> | ||
+ | По умолчанию, веб-интерфейс отключен, но его можно включить командой на *nix системах: | ||
<pre>$sudo rabbitmq-plugins enable rabbitmq_management | <pre>$sudo rabbitmq-plugins enable rabbitmq_management | ||
$sudo service rabbitmq-server restart</pre> | $sudo service rabbitmq-server restart</pre> | ||
− | + | После чего необходимо перезапустить RabbitMQ и войти через браузер на http://localhost:15672. По умолчанию, логин и пароль для входа в RabbitMQ Managment Plugin: guest/guest | |
− | + | ||
− | password: | + | С версии 3.3 было введено ограничение на доступ по guest/guest с хоста отличного от localhost. Но вы можете создать пользователя test c паролем passwd и зайти под ним с любого хоста: |
+ | <pre>rabbitmqctl add_user test passwd | ||
+ | rabbitmqctl set_user_tags test administrator | ||
+ | rabbitmqctl set_permissions -p / test ".*" ".*" ".*" | ||
+ | </pre> | ||
+ | |||
+ | ==Сброс всех очередей в rabbitmq== | ||
+ | Устанавливаем команду rabbitmqadmin | ||
+ | <pre> | ||
+ | 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> | ||
+ | Команда по удалению всех очередей del_all_querys.sh <br> | ||
+ | Взято [https://askdev.ru/q/udalit-vse-ocheredi-iz-rabbitmq-11706/ тут] | ||
+ | <pre> | ||
+ | rabbitmqadmin -f tsv -q list queues name | while read queue; do rabbitmqadmin -q delete queue name=${queue}; done | ||
+ | </pre> | ||
+ | |||
+ | ==Команды управления пользователями== | ||
+ | [https://www.rabbitmq.com/man/rabbitmqctl.1.man.html rabbitmqctl(1) manual page]<br> | ||
+ | По умолчанию RabbitMQ используется пользователь guest и пароль guest<br> | ||
+ | ===Поменять пароль пользователя=== | ||
+ | Например, можно просто поменять пароль пользователю guest | ||
+ | <pre>abbitmqctl change_password guest newpassword</pre> | ||
+ | ===Удаление пользователя=== | ||
+ | Удаляем пользователя guest | ||
+ | <pre>rabbitmqctl delete_user guest</pre> | ||
+ | ===Добавление нового пользователя=== | ||
+ | Для добавление нового пользователя, например rabbit и пароль password | ||
+ | <pre>rabbitmqctl add_user rabbit password</pre> | ||
+ | ===Сбросить пароль пользователя=== | ||
+ | Сбросим пароль пользователю guest | ||
+ | <pre>rabbitmqctl clear_password guest</pre> | ||
+ | ===Команда аутентификации=== | ||
+ | <pre>rabbitmqctl authenticate_user user paswduser</pre> | ||
+ | Эта команда инструктирует брокера RabbitMQ аутентифицировать пользователя с именем user с помощью проверки пароля. | ||
+ | ===Просмотреть всех пользователей=== | ||
+ | <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== | ||
<pre>$sudo apt install librabbitmq-dev | <pre>$sudo apt install librabbitmq-dev |
Текущая версия на 08:49, 31 октября 2023
Содержание
Полезные ссылки
- RabbitMQ - Урок 1. Hello world!
- RabbitMQ - Урок 2. Распределенные очереди
- RabbitMQ - Урок 3. Рассылка публикаций
- RabbitMQ - Урок 4. Селективная рассылка
- RabbitMQ - Урок 5. Рассылка по шаблону
- RabbitMQ - Урок 6. Реализация RPC шаблона
- 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
Команды управления пользователями
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