Docker Compose部署开源免费EMQX MQTT服务 用于Home Assistant MQTT通信

NO.1
EMQX

官方文档

https://www.emqx.io/docs/en/v5.0/

github地址

https://github.com/emqx/emqx

官方描述

适用于 IoT、IIoT 和联网车辆的最具扩展性的开源 MQTT 代理

此图片的alt属性为空;文件名为image-485-1024x460.png

NO.2
Docker部署

官方文档

https://www.emqx.io/docs/en/v5.0/deploy/install-docker.html

dockerHub

https://hub.docker.com/_/emqx

此图片的alt属性为空;文件名为image-486-1024x638.png

官方的文档有关于Docker Compose的部署和参数的说明

NO.3
本文部署

创建docker-compose.yml文件

version: '3.5'
services:
  emqx:
    image: emqx/emqx:5.0.21
    container_name: emqx
    ports:
      - 18083:18083
      - 1883:1883
      - 8083:8083
      - 8081:8081
    volumes:
      - ./data:/opt/emqx/data
      - ./log:/opt/emqx/log
    restart: always

启动服务

docker-compose up

可能遇到的问题

本文遇到docker network超出限制问题,已解决

解决docker network超出数量限制导致docker无法启动问题

自动拉取镜像

此图片的alt属性为空;文件名为image-487.png

文件或者文件夹权限问题,导致程序退出

此图片的alt属性为空;文件名为image-488.png

给整个目录以及递归给予子目录所有权限

chmod 777 -R emqx/

此图片的alt属性为空;文件名为image-489.png

再次启动docker,运行成功

此图片的alt属性为空;文件名为image-490.png

先暂停服务,然后使用命令是服务常驻后台

dockerc-compose up -d

开放端口

udo ufw allow 18083

此图片的alt属性为空;文件名为image-491.png

18083是emqx的webui界面

使用ip:端口 访问

官方文档

https://www.emqx.io/docs/en/v5.0/getting-started/getting-started.html#install-emqx-with-docker-installation-package

默认账户:admin

默认密码:public

此图片的alt属性为空;文件名为image-492-1024x500.png

第一次登录后会提示修改密码

修改密码后进去主页面

按照图示,可以修改界面语言为中文

点击Apply(应用)

此图片的alt属性为空;文件名为image-493-1024x500.png

点击左下角底部图标,可展开或者收缩菜单栏

此图片的alt属性为空;文件名为image-494-1024x500.png

NO.4
客户端测试

本文使用MQTTX

官网地址

https://mqttx.app/

下载win文件安装即可

此图片的alt属性为空;文件名为image-495-1024x501.png

在功能配置-监听器中有默认设置

1883为无需证书的MQTT端口

此图片的alt属性为空;文件名为image-496-1024x500.png

要测试MQTT先要开放端口1883

此图片的alt属性为空;文件名为image-497.png

打开MQTTX客户端

创建连接

此图片的alt属性为空;文件名为image-498-1024x552.png

填写name

ip改为部署emqx的ip地址,如本文的192.168.1.33

点击右上角connect

此图片的alt属性为空;文件名为image-499-1024x554.png

提示连接成功

此图片的alt属性为空;文件名为image-500-1024x530.png

同时在管理后台-连接管理

可以看到连接内容

此图片的alt属性为空;文件名为image-501-1024x500.png

在MQTTX客户端添加当前连接的订阅主题

点击添加订阅,填写名称,点击确认

此图片的alt属性为空;文件名为image-502-1024x553.png

可以看到创建了一个订阅

此图片的alt属性为空;文件名为image-503-1024x555.png

回到管理后台-订阅管理

可以看到多了一个test的订阅主题

此图片的alt属性为空;文件名为image-504-1024x500.png

使用mqtt.js来测试EMQX

官方参考文档

https://www.emqx.com/zh/blog/mqtt-js-tutorial

客户端sdk

官方文档

https://www.emqx.io/docs/en/v5.0/connect-emqx/python.html

NO.5
Tips

至此,EMQX的MQTT部署和测试,基本完成

如果要尝试物联网,MQTT,蓝牙都建议去尝试,不仅仅是尝试http

END