Сервер 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