EMQ X 与 MQTTX
EMQ X 安装
初始化
docker-compose:
version: '3.1'
volumes:
vol-emqx-data:
vol-emqx-etc:
vol-emqx-log:
services:
emqx:
image: emqx/emqx
restart: always
container_name: yogile_emqx
environment:
EMQX_NAME: yogile_emqx
EMQX_HOST: 127.0.0.1
ports:
- 1883:1883
- 18083:18083
volumes:
- vol-emqx-data:/opt/emqx/data
- vol-emqx-etc:/opt/emqx/etc
- vol-emqx-log:/opt/emqx/log
这样可以持久化容器,方便长时间运行。
便于备份
方式一:官方命令工具(推荐)
EMQ X 开源版的文档中,没有说明备份迁移的操作,但在企业版中可以找到: 用户指南 - 数据导入导出 。
里面包含了 命令行接口
和 HTTP API
两种方式备份,分别对应本地和远程两种方式。
方式一:自定义数据卷 volumes
将找到初始化时默认生成的三个数据卷 vol-emqx-data
、vol-emqx-etc
、vol-emqx-log
的路径,直接 cp -r
到目标地址,进行迁移即可。
迁移后 docker-compose:
version: '3.1'
services:
emqx:
image: emqx/emqx
restart: always
container_name: yogile_emqx
environment:
EMQX_NAME: yogile_emqx
EMQX_HOST: 127.0.0.1
ports:
- 1883:1883
- 18083:18083
volumes:
- /home/docker/yogile_emqx/data:/opt/emqx/data
- /home/docker/yogile_emqx/etc:/opt/emqx/etc
- /home/docker/yogile_emqx/log:/opt/emqx/log
EMQ X 配置
关闭匿名访问
- 登录 18083 端口管理页面,
插件
中启用emqx_auth_mnesia
。 - 打开
etc
目录下的emqx.conf
文件,查找allow_anonymous
并将值由true
修改为false
,查找acl_nomatch
并将值由allow
修改为deny
。 - 重启容器。
配置合法访问账号
EMQ X 开源版阉割了很多功能,比如
访问控制 > 认证
界面(http://[IP]:18083/#/authentication),但是可以通过其他方式进行配置。
方式一:配置文件
由于明文存储,不太安全。
-
打开
etc/plugins
目录下的emqx_auth_mnesia.conf
文件,参考Examples:
下的格式添加用户。auth.user.<唯一用户名>.username = xxxxx auth.user.<唯一用户名>.password = xxxxx
-
保存文件,重启容器。
方式二:命令行
根据 emqx_ctl
命令:
user list # List username auth rules
user add <Username> <Password> # Add username auth rule
user update <Username> <NewPassword> # Update username auth rule
user delete <Username> # Delete username auth rule
MQTTX 安装
官网下载: MQTTX 。