Сервер BOOCO Astra (v 2.x) / RabbitMQ
◼ Установка, запуск, остановка RabbitMQ, просмотр логов
Требования
- Установка в Docker (рекомендовано) или другим способом.
- В RabbitMQ должен быть включен MQTT-плагин — для работы с устройствами и некоторыми триггерами.
Установка
- Создайте папку
/opt/rabbitmq
и перейдите в нее: - Скачайте файл
docker-compose.yml
: - Скачайте и отредактируйте шаблон файла конфигурации
.env
: - При необходимости диспетчеризации логов настройте логирование с помощью микросервиса master-logger.
- Настройте MQTT-плагин. Для этого:
- создайте папку
data
и необходимые подпапки: - перейдите в подпапку
plugins
и создайте в ней файлenabled_plugins
(без расширения) со следующим содержанием: - в подпапке
conf.d
создайте конфигурационный файлrabbitmq.conf
со следующим содержанием:
sudo mkdir -p /opt/rabbitmq
cd /opt/rabbitmq
sudo curl https://www.booco.ru/install/services/rabbitmq/docker-compose.yml --output docker-compose.yml
sudo curl https://www.booco.ru/install/services/rabbitmq/config.env --output .env
5.1. В директории сервиса rabbitmq
:
sudo mkdir -p ./data/{config,plugins,conf.d}
[rabbitmq_management,rabbitmq_mqtt].
mqtt.allow_anonymous = false
После создания файла
rabbitmq.conf
будет автоматически создан exchange booco.mqtt
. 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