#docker-compose #mqtt #bridge #broker #emq
Вопрос:
Я пытаюсь создать настройку моста EMQ X (мост MQTT), используя только docker-compose. В качестве справки я смотрю на официальные документы. Вариант использования, который я имею в виду, — это соединение EMQ X Edge ( emqx-edge
) с EMQ X ( emqx
), а затем, когда сообщение будет опубликовано emqx-edge
, оно будет переадресовано emqx
. До сих пор я создал двух брокеров и сеть, чтобы они могли общаться(poc-мост).
Проблема в следующем : когда сообщение публикуется в теме(например sensor1/#
) для emqx-edge
брокера, оно никогда не поступало emqx
брокеру. Я не могу понять, что происходит не так..
Ниже приведен список докеров, который у меня есть до сих пор.
version: '3.3'
networks:
poc-bridge:
external: true
services:
mqtt-edge:
image: emqx/emqx-edge:latest
container_name: edge-broker
restart: always
environment:
- EMQX_LOADED_PLUGINS= "emqx_bridge_mqtt"
- EMQX_ADMIN_PASSWORD=brokerpw1
- EMQX_BRIDGE__MQTT__AWS__ADDRESS=172.26.0.2:1883 #ip:port of mqtt-cloud
- EMQX_BRIDGE__MQTT__AWS__PROTO_VER=mqttv3
- EMQX_BRIDGE__MQTT__AWS__BRIDGE_MODE=true
- EMQX_BRIDGE__MQTT__AWS__CLEAN_START=true
- EMQX_BRIDGE__MQTT__AWS__USERNAME=user
- EMQX_BRIDGE__MQTT__AWS__PASSWORD=passw
- EMQX_BRIDGE__MQTT__AWS__CLIENTID=bridge_aws
- EMQX_BRIDGE__MQTT__AWS__KEEPALIVE=10s
- EMQX_BRIDGE__MQTT__AWS__FORWARDS=sensor1/#
networks:
- poc-bridge
ports:
- 18083:18083
- 1883:1883
- 8883:8883
- 8083:8083
depends_on:
- mqtt-cloud
mqtt-cloud:
image: emqx/emqx:latest
container_name: cloud-broker
restart: always
networks:
- poc-bridge
ports:
- 51883:1883
- 58883:8883
- 58083:8083
Комментарии:
1. Что значит
mqtt-edge
войти? Вероятно, это говорит вам, что не так — см. Документы для получения информации об уровнях журналов и т. Д., В то время как вы можете получить доступ к файлу журнала по умолчаниюconsole
, Ведение журнала может быть проще.2. Привет, и спасибо вам за всю вашу помощь… Используя команду : журналы докеров —следуйте за edge-брокером , я не вижу ошибок (EMQ X Edge 4.3.5 запущен сейчас!).
Ответ №1:
Проблема решена. Мне не хватало еще нескольких конфигураций… Ниже приведен язык yaml, созданный докером для соединения emqx-edge с emqx.
version: '3.3'
networks:
poc-bridge:
external: true
services:
mqtt-edge:
image: emqx/emqx-edge:latest
container_name: edge-broker
restart: always
environment:
- EMQX_LOADED_PLUGINS="emqx_bridge_mqtt,emqx_recon,emqx_retainer,emqx_management,emqx_dashboard"
- EMQX_ADMIN_PASSWORD=brokerpw1
- EMQX_BRIDGE__MQTT__AWS__START_TYPE=auto
- EMQX_BRIDGE__MQTT__AWS__ADDRESS=172.26.0.2:1883 # docker-ip:port of mqtt-cloud
- EMQX_BRIDGE__MQTT__AWS__PROTO_VER=mqttv3
- EMQX_BRIDGE__MQTT__AWS__BRIDGE_MODE=true
- EMQX_BRIDGE__MQTT__AWS__CLEAN_START=true
- EMQX_BRIDGE__MQTT__AWS__USERNAME=user
- EMQX_BRIDGE__MQTT__AWS__PASSWORD=passw
- EMQX_BRIDGE__MQTT__AWS__CLIENTID=bridge_aws
- EMQX_BRIDGE__MQTT__AWS__KEEPALIVE=60s
- EMQX_BRIDGE__MQTT__AWS__FORWARD_MOUNTPOINT=bridge/aws/test/
- EMQX_BRIDGE__MQTT__AWS__FORWARDS=atlas/#
#- EMQX_BRIDGE__MQTT__AWS__SUBSCRIPTION__1__TOPIC=atlas/#
#- EMQX_BRIDGE__MQTT__AWS__SUBSCRIPTION__1__QOS=1
networks:
- poc-bridge
ports:
- 18083:18083
- 1883:1883
- 8883:8883
- 8083:8083
depends_on:
- mqtt-cloud
mqtt-cloud:
image: emqx/emqx:latest
container_name: cloud-broker
restart: always
environment:
- EMQX_LOADED_PLUGINS= "emqx_bridge_mqtt"
networks:
- poc-bridge
ports:
- 51883:1883
- 58883:8883
- 58083:8083