emq-docker安装配置
目录
1 docker配置
2 mysql 认证
2.1 添加认证表
2.2 认证文件配置
3 系统topic
docker安装;mysql客户端认证;配置系统topic 获取客户端上下线消息。文件提到配置文件见附件。
1 docker配置
docker镜像地址:emqx/emqx
emqx_auth_mysql.conf客户端mysql认证配置文件,数据库配置,认证条件配置
本地存放路径
/emqx/plugins/emqx_auth_mysql.conf
emqx.conf客户端配置文件
本地存放路径
/emqx/emqx.conf
acl.conf系统topic配置
/emqx/acl.conf
2 mysql 认证
2.1 添加认证表
conf_network_device
DROP TABLE IF EXISTS `conf_network_device`;CREATE TABLE `conf_network_device` (`id` varchar(20) CHARACTER SET utf8mb4 NOT NULL,`station_code` varchar(45) CHARACTER SET utf8mb4 NOT NULL,`device_list_name` varchar(45) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '设备列表',`register_date` varchar(45) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '注册时间',`device_id` varchar(45) CHARACTER SET utf8mb4 NOT NULL COMMENT '设备id',`device_ip` varchar(45) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '设备ip',`user_name` varchar(45) CHARACTER SET utf8mb4 DEFAULT NULL,`password` varchar(45) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '密码',`lock` tinyint(1) DEFAULT NULL COMMENT '校验成功后为锁定状态1',`project_code` varchar(45) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '项目',`active_time` datetime DEFAULT NULL COMMENT '激活时间',`create_time` datetime DEFAULT NULL,`update_time` datetime DEFAULT NULL,`create_by` varchar(45) CHARACTER SET utf8mb4 DEFAULT NULL,`update_by` varchar(45) CHARACTER SET utf8mb4 DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `index2` (`device_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='网络设备';
2.2 认证文件配置
认证配置文件emqx_auth_mysql.conf
3 系统topic
acl.conf文件,配置系统topic权限
举例:指定用户,获取所有客户端上下线信息
在acl.conf 增加配置 {allow, {user, "user_auth"}, subscribe, ["$SYS/brokers/+/clients/#"]}.
指定用户user_auth 可以订阅topic $SYS/brokers/+/clients/#,获取所有客户端上下线消息,其他用户无法订阅,订阅会报错。
上线接收消息示例:
{"username":"admin","ts":1675659982699,"sockport":1883,"proto_ver":4,"proto_name":"MQTT","keepalive":10,"ipaddress":"10.36.13.24","expiry_interval":7200,"connected_at":1675659982699,"connack":0,"clientid":" mqttjs_f5 ","clean_start":false}
下线接收消息示例:
{"username":"admin","ts":1675660288725,"reason":"normal","disconnected_at":1675660288725,"clientid":"mqttjs_f5"}