EMQ X 是基于 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 或私有协议支持。
系统环境 ubuntu 14.04
2.1、安装预置条件
EMQ X 可以跨平台运行在 Linux、FreeBSD、MacOS 或 Windows 服务器甚至是树莓派上。
服务器最低配置为 512MB 内存且至少保留 1 GB 以上硬盘空间。
2.2、二进制包安装
EMQ 官网 提供热门 Linux 发行版、MacOS、Windows 操作系统以及 Docker 镜像的二进制包下载,当前支持的操作系统及平台请到官网下载页查阅。
2.3、源码编译安装
部分官网未提供二进制包的操作系统与平台如 Linux ARM、FreeBSB,可使用源码编译安装。
EMQ X 基于 Erlang/OTP 平台开发,项目托管的 GitHub 管理维护,源码编译依赖 Erlang 环境和 git 客户端。
2.4、首次安装 EMQ X
在安装 EMQ X 前,请确认安装的 前置条件 都已经满足。
版本选择
EMQ X 支持多种操作系统,请选择合适您的版本下载。
2.5 在Linux下安装
对于 Linux 发布,EMQ X 提供两种方式的安装。一是基于各 linux 发布的安装包。用安装包安装 EMQ X 以后,可以方便的使用系统管理工具来启停 EMQ X 服务。二是使用 zip 压缩打包的通用包。安装 zip 包只需解压 zip 文件即可。使用 zip 包可以实现在同一个系统下安装多套 EMQ X。在开发 / 实验室环境下使用 zip 包安装 EMQ X 非常实用。
在这里我们进入官网:https://www.emqx.io/cn/downloads#broker下载EMQ 软件包,目前 EMQ X 支持 Ubuntu 12.04、14.04、16.04 和 18.04,在这些版本上的安装过程一致。以下安装过程以 Ubuntu 14.04 为例。
使用zip包安装
解压zip文件
makun@makun:~$ unzip emqx-ubuntu14.04-v4.1.1.zip
启动以控制台调试模式 emqx,检查 EMQ X 是否可以正常启动:
cd emqx && ./bin/emqx console
如果安装成功,可以在控制台看到一下输出:
Starting emqx on node [email protected]
Start http:management listener on 8081 successfully.
Start http:dashboard listener on 18083 successfully.
Start mqtt:tcp listener on 127.0.0.1:11883 successfully.
Start mqtt:tcp listener on 0.0.0.0:1883 successfully.
Start mqtt:ws listener on 0.0.0.0:8083 successfully.
Start mqtt:ssl listener on 0.0.0.0:8883 successfully.
Start mqtt:wss listener on 0.0.0.0:8084 successfully.
EMQ X Broker 4.1.1 is running now!
./bin/emqx start
在安装以后您可以直接运行 EMQ X 来获得最初步的经验。除了在控制台,您也可以通过浏览器访问 http://127.0.0.1:18083 来使用 EMQ X 的 Web 管理控制界面。默认的登录名是 admin 和密码是 public。
通过浏览器访问 http://127.0.0.1:18083,您将看到一个 EMQ X 登录界面:
在输入用户名和密码后,你就可以使用 EMQ X Dashboard 的各项功能。在首次登录后,您看到的将是 EMQ X 控制台的信息汇总。这个页面显示了系统信息,节点信息,运行统计和一些统计指标。
你也可以对EMQ X做些简单的配置,让它适配你的运行环境和需求。
对 EMQ X 进行简单的配置
所有对 EMQ X 的配置都可以通过修改配置文件完成。配置文件的位置:
更改Dashboard界面语言
在Web界面上选择toos->setting,你可以改变 Dashboard 使用的语言,点击 Apply 后生效。目前 EMQ X 支持中文和英文。
修改 Dashboard 默认登录名和密码
Dashboard 插件以 Web 界面的方式提供对 EMQ X 的管理和控制功能,是 EMQ X 的默认随系统启动的插件之一。在安装以后,您可以通过编辑配置文件的方式来改变 Dashboard 默认的用户名和密码。配置文件:
makun@makun:~$ cd emqx/etc/plugins/
makun@makun:~/emqx/etc/plugins$ vim emqx_dashboard.conf
dashboard.default_user.login = admin
dashboard.default_user.password = public
或者以 Web 方式管理 Dashboard 用户。在General->users菜单下,您可以修改用户密码和增加 / 删除用户。admin 用户只能修改密码,不能被删除。
配置端口
在安装以后,EMQ X 默认会使用以下端口:
修改协议端口请配置EMQ X系统配置文件‘etc/emqx.conf’,找到以下各行,并按需要修改端口号:
makun@makun:~/emqx/etc$ vim emqx.conf
listener.tcp.external = 0.0.0.0:1883
listener.ssl.external = 8883
listener.ws.external = 8083
修改 HTTP API 端口请编辑 emqx_management 插件的配置文件’etc/plugins/emqx_management.conf’,找到下述行,并按需修改端口号:
makun@makun:~/emqx/etc/plugins$ vim emqx_management.conf
management.listener.http = 8081
修改 Dashboard 管理控制台端口请编辑 emqx_dashboard 插件的配置文件’etc/plugins/emqx_dashboard.conf’, 找到下述行,并按需修改端口号:
makun@makun:~/emqx/etc/plugins$ vim emqx_dashboard.conf
dashboard.listener.http = 18083
在 Web General的 Listeners 菜单下,可以查看现在正在使用的监听器端口和属性。
启动 / 停止插件
插件是 EMQ X 的重要部分,EMQ X 的扩展功能基本都是通过插件实现的。包括 Dashbard 也是插件实现。
你可以在 Dashboard 的 plugins 菜单下启动和停止插件,或对插件进行简单的配置
EMQ X 的 Dashboard 本身也是一个插件,如果您在 Web 界面下停止了 Dashboard 插件,您将无法再使用 dashboard,直至您使用命令行工具再次启动 Dashboard。
修改 Erlang 虚拟机启动参数
EMQ X 运行在 Erlang 虚拟机上,在’etc/emqx.conf’中有两个限定了虚拟机允许的最大连接数。在运行 EMQ X 前可以修改这两个参数以适配连接需求:
makun@makun:~/emqx/etc/plugins$ vim emqx_dashboard.conf
这两个参数可以设置为: