Сервер BOOCO Astra (v 2.x) / RabbitMQ
◼ Установка, запуск, остановка RabbitMQ, просмотр логов
Описание переменных .env для RabbitMQ
‣
Создайте папку /opt/rabbitmq
и перейдите в нее:
sudo mkdir -p /opt/rabbitmq
cd /opt/rabbitmq
Скачайте файл docker-compose.yml
:
sudo curl <https://www.booco.ru/install/services/rabbitmq/docker-compose.yml> --output docker-compose.yml
Скачайте и отредактируйте шаблон файла конфигурации .env
:
sudo curl <https://www.booco.ru/install/services/rabbitmq/config.env> --output .env
При необходимости диспетчеризации логов настройте логирование с помощью микросервиса master-logger.
Настройте MQTT-плагин. Для этого:
5.1. В директории сервиса rabbitmq
:
создайте папку data
и необходимые подпапки:
sudo mkdir -p ./data/{config,plugins,conf.d}
перейдите в подпапку plugins
и создайте в ней файл enabled_plugins
(без расширения) со следующим содержанием:
[rabbitmq_management,rabbitmq_mqtt].
в подпапке conf.d
создайте конфигурационный файл rabbitmq.conf
со следующим содержанием:
mqtt.allow_anonymous = false
<aside>
💡 После создания файла rabbitmq.conf
будет автоматически создан exchange booco.mqtt
.
</aside>
5.2. Запустите контейнер с rabbitmq
:
sudo docker compose up -d
5.3. Добавьте пользователей* и назначьте им права с помощью команд:
sudo docker exec -it rabbitmq rabbitmqctl add_user mqtt-system <password>
sudo docker exec -it rabbitmq rabbitmqctl add_user mqtt-user <password>
sudo docker exec -it rabbitmq \\
rabbitmqctl set_permissions -p / mqtt-system ".*" ".*" ".*"
sudo docker exec -it rabbitmq \\
rabbitmqctl set_permissions -p / mqtt-user ".*" ".*" ".*"
sudo docker exec -it rabbitmq \\
rabbitmqctl set_topic_permissions \\
--vhost / mqtt-user booco.mqtt "devices.*channels.*" ".*"
sudo docker exec -it rabbitmq \\
rabbitmqctl set_topic_permissions \\
--vhost / mqtt-user booco.mqtt "resources.*status" ".*"
mqtt-system
— системный пользователь, от имени которого BOOCO будет управлять обратными связями и каналами;mqtt-user
— пользователь для получения обратных связей и отправки команд через протокол MQTT.Для пользователя mqtt-user
нужно задать ограничения на запись, для этого используйте регулярные выражения:
devices.*channels.*
— ограничивает на запись только в топики каналов;bookings.*resources.*
— ограничивает на запись только в топики ресурсов.sudo docker compose up -d
# или если .env называется по-другому
sudo docker compose --env-file rabbitmq.env up -d
sudo docker compose down
sudo docker logs rabbitmq -f