iotkit-parent/doc/setup.md

12 KiB
Raw Blame History

EMQX安装和配置

安装

参考官方文档:https://www.emqx.io/docs/zh/v4.3/getting-started/getting-started.html

配置

emqx认证配置

emqx安装目录/etc/plugins/emqx_auth_http.conf

auth.http.auth_req.url = http://127.0.0.1:8082/mqtt/auth
auth.http.auth_req.headers.content_type = application/json
auth.http.auth_req.params = clientid=%c,username=%u,password=%P
auth.http.acl_req.url = http://127.0.0.1:8082/mqtt/acl
auth.http.acl_req.method = post
auth.http.acl_req.headers.content-type = application/json
auth.http.acl_req.params = access=%A,username=%u,clientid=%c,ipaddr=%a,topic=%t,mountpoint=%m

emqx插件启用配置

emqx安装目录/data/loaded_plugins 需要配置的项:

{emqx_dashboard, true}.
{emqx_rule_engine, true}.
{emqx_auth_http, true}.

emqx规则引擎配置

启动emqx进行管理后台界面 image.png新建规则 image.png image.png 具体配置如下: client_disconnected:

SELECT
  reason,
  clientid,
  username,
  peername,
  socketname
FROM
 "$events/client_connected"
Type: republish
target_topic: /sys/client/connected
target_qos: 1
payload_tmpl: {"reason":"${reason}","clientid":"${clientid}","username":"${username}","peername":"${peername}","socketname":"${socketname}"}

client_connected:

SELECT
  reason,
  clientid,
  username,
  peername,
  socketname
FROM
 "$events/client_disconnected"
Type: republish
target_topic: /sys/client/disconnected
target_qos: 1
payload_tmpl: {"reason":"${reason}","clientid":"${clientid}","username":"${username}","peername":"${peername}","socketname":"${socketname}"}

keycloak安装和配置

Keycloak 为现代应用和分布式服务提供了一套完整的认证授权管理解决方案,它是开源的,是一个独立的认证授权服务器。官网:https://www.keycloak.org/ 下载: https://www.keycloak.org/downloadsimage.png 解压启动即可 如果不是部署在本机需要将config/keycloak.conf中的hostname改为可以外部访问的IP或域名

配置

启动后进行管理后台: image.png

添加一个realm

image.png image.png

添加client

image.pngimage.png 特别注意: _ Valid Redirect URIs 需要填写iot系统前端的访问地址以/*结尾,点“+”可以填多个_

添加角色

image.png

新增用户组

client为C端用户组platform为平台用户组 image.png

新增一个管理员用户

image.png 并设置密码: image.png 指定用户角色: image.png 指定用户组: image.png

新增一个keycloak api用户

用于调用keycloak接口 image.png

mongodb安装和配置

本人用的是阿里云的mongodb serverless版1.27元/天,简单快捷省去搭建和维护工作 购买后,生成公网链接、添加数据库访问白名单即可

程序配置

平台由4个独立启动的程序构成 mqtt-auth用于emqx的auth_http认证见《emqx认证配置mqtt-server:用于设备消息处理(事件上报、服务回复、设备上下线)和设备指令下发 manager为iot-console-web提供后台接口以及执行其它业务逻辑 iot-console-webiot平台pc端前端程序 image.png

mqtt-auth

程序结构

image.png

配置

spring:
  data:
    mongodb:
      uri: mongodb://填写mongodb地址/admin
      database: iotkit

mqtt-server

程序结构

image.png

配置

spring:
  data:
    mongodb:
      uri: mongodb://填写mongodb地址/admin
      database: iotkit

  cache:
    cache-names: foo,bar
    caffeine:
      spec: maximumSize=5000,expireAfterAccess=120s

mqtt:
  url: tcp://填写mqtt连接地址