EMQ X 消息服务器搭建

attach16b17790b9a73eca.png

Author Date Tags Version

EMQ X 消息服务器简介

EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。

Erlang/OTP是出色的软实时 (Soft-Realtime)、低延时 (Low-Latency)、分布式 (Distributed)的语言平台。

MQTT 是轻量的 (Lightweight)、发布订阅模式 (PubSub) 的物联网消息协议。

EMQ X 设计目标是实现高可靠,并支持承载海量物联网终端的MQTT连接,支持在海量物联网设备间低延时消息路由:

稳定承载大规模的 MQTT 客户端连接,单服务器节点支持50万到100万连接。
分布式节点集群,快速低延时的消息路由,单集群支持1000万规模的路由。
消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。
完整物联网协议支持,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket 或私有协议支持。

安装

EMQ X 目前支持的操作系统:

  • CentOS 6
  • CentOS 7
  • CentOS 8
  • OpenSUSE tumbleweed
  • Debian 9
  • Debian 10
  • Ubuntu 16.04
  • Ubuntu 18.04
  • Ubuntu 20.04
  • macOS 10.13
  • macOS 10.14
  • macOS 10.15
  • Windows Server 2019
  • WARNING

产品部署建议 Linux 服务器,不推荐 Windows 服务器。


此文档仅演示在CentOS 7 下安装 EMQ X Broker v3.1.0,更多环境下安装请参考 官方安装文档

安装

# 安装所需要的依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2

# 使用以下命令设置稳定存储库,以 CentOS7 为例
yum-config-manager --add-repo https://repos.emqx.io/emqx-ce/redhat/centos/7/emqx-ce.repo

# 查询可用版本
yum list emqx --showduplicates | sort -r

# 安装指定新版本的 EMQ X
yum install emqx-3.1.0 -y

直接启动

emqx start
emqx 3.1.0 is started successfully!

emqx_ctl status
Node 'emqx@127.0.0.1' is started
emqx v3.1.0 is running

# systemctl 启动
systemctl start emqx

# service 启动
service emqx start

配置文件路径: /etc/emqx
日志文件路径: /var/log/emqx
数据文件路径: /var/lib/emqx




启用 JWT 认证

JWT 认证插件

开启后,所有客户端需携带有效 token 才能建立连接。

vi /etc/emqx/plugins/emqx_auth_jwt.conf

## HMAC Hash 算法密钥
auth.jwt.secret = emqxsecret

## RSA 或 ECDSA 算法的公钥
## auth.jwt.pubkey = etc/certs/jwt_public_key.pem

## JWT 串的来源
## 枚举值: username | password
auth.jwt.from = password

## JWT token携带参数验证
## userName 表示 token携带参数 key
## %u 表示比对连接参数中的 username
## token.userName === %u(username) 令牌中的 userName 必须与 连接中的 username 一致
auth.jwt.verify_claims.userName = %u

重启 EMQ X 服务

Dashboard

简介

EMQ X 提供了 Dashboard 以方便用户管理设备与监控相关指标。通过 Dashboard,你可以查看服务器基本信息、负载情况和统计数据,可以查看某个客户端的连接状态等信息甚至断开其连接,也可以动态加载和卸载指定插件。除此之外,EMQ X Dashboard 还提供了规则引擎的可视化操作界面,同时集成了一个简易的 MQTT 客户端工具供用户测试使用。

访问:http://localhost:18083/

默认用户名是 admin,密码是 public

测试

测试工具下载Mqtt Box

创建连接

匿名登录

参考

注意事项

  • 防火墙
firewall-cmd --zone=public --add-port=8883/tcp --permanent
firewall-cmd --zone=public --add-port=8083/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=18083/tcp --permanent
firewall-cmd --zone=public --add-port=4369/tcp --permanent
firewall-cmd --zone=public --add-port=6369-7369/tcp --permanent
firewall-cmd --zone=public --add-port=1883/tcp --permanent
firewall-cmd --reload

纸上得来终觉浅,绝知此事要躬行。 ——陆游《冬夜读书示子聿》


标题:EMQ X 消息服务器搭建
作者:DengXiangHong
地址:https://www.int1024.cn/articles/2022/08/05/1659691334229.html

    评论
    0 评论
avatar

取消