Установка RubbitMQ: различия между версиями
Misha (обсуждение | вклад) (→Сброс всех очередей в rabbitmq) |
Misha (обсуждение | вклад) (→Сброс всех очередей в rabbitmq) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 31: | Строка 31: | ||
</pre> | </pre> | ||
Команда по удалению всех очередей del_all_querys.sh <br> | Команда по удалению всех очередей del_all_querys.sh <br> | ||
− | Взято https://askdev.ru/q/udalit-vse-ocheredi-iz-rabbitmq-11706/ | + | Взято [https://askdev.ru/q/udalit-vse-ocheredi-iz-rabbitmq-11706/ тут] |
<pre> | <pre> | ||
rabbitmqadmin -f tsv -q list queues name | while read queue; do rabbitmqadmin -q delete queue name=${queue}; done | rabbitmqadmin -f tsv -q list queues name | while read queue; do rabbitmqadmin -q delete queue name=${queue}; done |
Текущая версия на 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