您当前的位置:首页 > 互联网百科 > 物联网

开源物联网MQTT 5.0服务器——EMQ安装及运行教程

时间:2020-07-16 10:27:41  来源:  作者:

 

开源物联网MQTT 5.0服务器——EMQ安装及运行教程

 

一、安装预置条件

EMQ X 可以跨平台运行在 linux、FreeBSD、macOS 或 windows 服务器甚至是树莓派上。

服务器最低配置为 512MB 内存且至少保留 1 GB 以上硬盘空间。

二、二进制包安装

EMQ 官网 提供热门 Linux 发行版、MacOS、Windows 操作系统以及 Docker 镜像的二进制包下载,当前支持的操作系统及平台请到官网下载页查阅。

三、源码编译安装

部分官网未提供二进制包的操作系统与平台如 Linux ARM、FreeBSB,可使用源码编译安装。

EMQ X 基于 Erlang/OTP 平台开发,项目托管的 GitHub 管理维护,源码编译依赖 Erlang 环境和 git 客户端。

EMQ X 3.0+ 依赖 Erlang R21+ 版本。

EMQ X Enterprise 暂未提供源码编译安装,如有特殊运行环境需求请联系 contact@emqx.io

 

四、首次安装 EMQ X

在安装 EMQ X 前,请确认安装的 前置条件 都已经满足。

版本选择

EMQ X 支持多种操作系统,请选择合适您的版本下载。

1、在 Linux 下安装

对于 Linux 发布,EMQ X 提供两种方式的安装。一是基于各 linux 发布的安装包。用安装包安装 EMQ X 以后,可以方便的使用系统管理工具来启停 EMQ X 服务。二是使用 zip 压缩打包的通用包。安装 zip 包只需解压 zip 文件即可。使用 zip 包可以实现在同一个系统下安装多套 EMQ X。在开发 / 实验室环境下使用 zip 包安装 EMQ X 非常实用。

centos/RHEL

目前 EMQ X 支持 CentOS/RHEL 6 和 7,在这两个版本上的安装过程一致。以下安装过程以 CentOS 7 为例。

使用 zip 包安装

解压 zip 文件

unzip emqx-centos7-v3.0.zip

启动以控制台调试模式 emqx,检查 EMQ X 是否可以正常启动:

cd emqx && ./bin/emqx console

如果安装成功,可以在控制台看到以下输出:

starting emqx on node 'emqx@127.0.0.1'emqx ctl is starting...emqx hook is starting...emqx router is starting...emqx pubsub is starting...emqx stats is starting...emqx metrics is starting...emqx pooler is starting...emqx trace is starting...emqx client manager is starting...emqx session manager is starting...emqx session supervisor is starting...emqx wsclient supervisor is starting...emqx broker is starting...emqx alarm is starting...emqx mod supervisor is starting...emqx bridge supervisor is starting...emqx access control is starting...emqx system monitor is starting...dashboard:http listen on 0.0.0.0:18083 with 2 acceptors.mqtt:tcp listen on 0.0.0.0:1883 with 8 acceptors.mqtt:ssl listen on 0.0.0.0:8883 with 4 acceptors.mqtt:ws listen on 0.0.0.0:8083 with 4 acceptors.Erlang MQTT Broker 3.0 is running now

CTRL+C 关闭控制台。守护进程模式启动:

./bin/emqx start

使用 rpm 包安装

在 CentOS 下使用 rpm 工具安装 EMQ X:

rpm -ivh emqx-centos7-v3.0-beta.4.rpm

在安装完成之后,EMQ X 的配置文件、日志文件和数据文件分别在以下目录:系统配置文件:/etc/emqx/emqx.conf插件配置文件: /etc/emqx/plugins/*.conf日志文件: /var/log/emqx数据文件: /var/lib/emqx/

在命令行启停 EMQ X:

systemctl start|stop|restart emqx.service

Ubuntu

目前 EMQ X 支持 Ubuntu 12.04、14.04、16.04 和 18.04,在这些版本上的安装过程一致。以下安装过程以 Ubuntu 18.04 为例。

使用 zip 包安装

解压 zip 文件

unzip emqx-ubuntu18.04-v3.0.zip

启动以控制台调试模式 emqx,检查 EMQ X 是否可以正常启动:

cd emqx && ./bin/emqx console

如果安装成功,可以在控制台看到以下输出:

starting emqx on node 'emqx@127.0.0.1'emqx ctl is starting...emqx hook is starting...emqx router is starting...emqx pubsub is starting...emqx stats is starting...emqx metrics is starting...emqx pooler is starting...emqx trace is starting...emqx client manager is starting...emqx session manager is starting...emqx session supervisor is starting...emqx wsclient supervisor is starting...emqx broker is starting...emqx alarm is starting...emqx mod supervisor is starting...emqx bridge supervisor is starting...emqx access control is starting...emqx system monitor is starting...dashboard:http listen on 0.0.0.0:18083 with 2 acceptors.mqtt:tcp listen on 0.0.0.0:1883 with 8 acceptors.mqtt:ssl listen on 0.0.0.0:8883 with 4 acceptors.mqtt:ws listen on 0.0.0.0:8083 with 4 acceptors.Erlang MQTT Broker 3.0 is running now

CTRL+C 关闭控制台。守护进程模式启动:

./bin/emqx start

使用 deb 包安装

sudo dpkg -i emqx-ubuntu18.04-v3.0_amd64.deb

在安装完成之后,EMQ X 的配置文件、日志文件和数据文件分别在以下目录:系统配置文件:/etc/emqx/emqx.conf插件配置文件: /etc/emqx/plugins/*.conf日志文件: /var/log/emqx数据文件: /var/lib/emqx/

在命令行启停 EMQ X:

service emqx start|stop|restart

Debian

目前 EMQ X 支持 Debian 7、8 和 9,在这些版本上的安装过程一致。以下安装过程以 Debian 9 为例。

使用 zip 包安装

解压 zip 文件

unzip emqx-debian9-v3.0.zip

启动以控制台调试模式 emqx,检查 EMQ X 是否可以正常启动:

cd emqx && ./bin/emqx console

如果安装成功,可以在控制台看到以下输出:

starting emqx on node 'emqx@127.0.0.1'emqx ctl is starting...emqx hook is starting...emqx router is starting...emqx pubsub is starting...emqx stats is starting...emqx metrics is starting...emqx pooler is starting...emqx trace is starting...emqx client manager is starting...emqx session manager is starting...emqx session supervisor is starting...emqx wsclient supervisor is starting...emqx broker is starting...emqx alarm is starting...emqx mod supervisor is starting...emqx bridge supervisor is starting...emqx access control is starting...emqx system monitor is starting...dashboard:http listen on 0.0.0.0:18083 with 2 acceptors.mqtt:tcp listen on 0.0.0.0:1883 with 8 acceptors.mqtt:ssl listen on 0.0.0.0:8883 with 4 acceptors.mqtt:ws listen on 0.0.0.0:8083 with 4 acceptors.Erlang MQTT Broker 3.0 is running now

CTRL+C 关闭控制台。守护进程模式启动:

./bin/emqx start

使用 deb 包安装

sudo dpkg -i emqx-debian9-v3.0_amd64.deb

在安装完成之后,EMQ X 的配置文件、日志文件和数据文件分别在以下目录:系统配置文件:/etc/emqx/emqx.conf插件配置文件: /etc/emqx/plugins/*.conf日志文件: /var/log/emqx数据文件: /var/lib/emqx/

在命令行启停 EMQ X:

service emqx start|stop|restart

2、在 MacOS 下安装

目前 EMQ X 在 MacOS 下提供 zip 包安装:解压 zip 文件

unzip emqx-macos-v3.0.zip

启动以控制台调试模式 emqx,检查 EMQ X 是否可以正常启动:

cd emqx && ./bin/emqx console

如果安装成功,可以在控制台看到以下输出:

starting emqx on node 'emqx@127.0.0.1'emqx ctl is starting...emqx hook is starting...emqx router is starting...emqx pubsub is starting...emqx stats is starting...emqx metrics is starting...emqx pooler is starting...emqx trace is starting...emqx client manager is starting...emqx session manager is starting...emqx session supervisor is starting...emqx wsclient supervisor is starting...emqx broker is starting...emqx alarm is starting...emqx mod supervisor is starting...emqx bridge supervisor is starting...emqx access control is starting...emqx system monitor is starting...dashboard:http listen on 0.0.0.0:18083 with 2 acceptors.mqtt:tcp listen on 0.0.0.0:1883 with 8 acceptors.mqtt:ssl listen on 0.0.0.0:8883 with 4 acceptors.mqtt:ws listen on 0.0.0.0:8083 with 4 acceptors.Erlang MQTT Broker 3.0 is running now

CTRL+C 关闭控制台。守护进程模式启动:

./bin/emqx start

3、在 Microsoft Windows 下安装

目前 EMQ X 在 Windows 下提供 zip 包安装。程序包下载解压后,打开 Windows 命令行窗口,cd 到程序目录。

控制台模式启动:

binemqx console

4、在 Docker 中安装

解压 emqx docker 镜像包:

unzip emqx-docker-v3.0.zip

加载镜像:

docker load < emqx-docker-v3.0

启动容器:

docker run -tid --name emq30 -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx-docker-v3.0

停止容器:

docker stop emq30

开启容器:

docker start emq30

进入 Docker 控制台:

docker exec -it emq30 /bin/sh

5、使用源代码安装

EMQ X 消息服务器基于 Erlang/OTP 平台开发,项目托管的 GitHub 管理维护,源码编译依赖 Erlang 环境和 git 客户端。

本文以下说明适合 Linux 环境。

  • 注意:EMQ X 3.0 依赖 Erlang R21 + 版本 *
  • 如何安装 Erlang 请参考Erlang 官方网站*
  • 如何安装和使用 git 客户端请参考git-scm*在准备好编译环境之后,clone 代码边并使编译:
git clone -b win30 https://github.com/emqx/emqx-rel.gitcd emqx-relx && makecd _rel/emqx && ./bin/emqx console

在编译成功后,程序包发布目录:

_rel/emqx

从控制台启动程序:

 复制代码cd _rel/emqx && ./bin/emqx console

五、首次运行 EMQ X

在安装以后您可以直接运行 EMQ X 来获得最初步的经验。除了在控制台,您也可以通过浏览器访问 http://127.0.0.1:18083 来使用 EMQ X 的 Web 管理控制界面。默认的登录名是 admin 和密码是 public。

通过浏览器访问 http://127.0.0.1:18083,您将看到一个 EMQ X 登录界面:

开源物联网MQTT 5.0服务器——EMQ安装及运行教程

 

在输入用户名和密码后,您就可以使用 EMQ X Dashboard 的各项功能。在首次登录后,您看到的将是 EMQ X 控制台的信息汇总。这个页面显示了系统信息,节点信息,运行统计和一些统计指标。

开源物联网MQTT 5.0服务器——EMQ安装及运行教程

 

您也可以对 EMQ X 做些简单的配置,让它适配您的运行环境和需求。

对 EMQ X 进行简单的配置

所有对 EMQ X 的配置都可以通过修改配置文件完成。配置文件的位置:

  • etc/emqx.conf : EMQ X 服务器的参数设置
  • etc/plugins/*.conf : EMQ X 插件配置文件,每个插件都有单独的配置文件。一些常用功能的配置也在 Web Dashboard 上进行修改。

更改 Dashboard 界面语言

在 Web 界面上选择 ADMIN -> Settings 菜单,您可以改变 Dashboard 使用的语言,点击 Apply 后生效。目前 EMQ X 支持中文和英文。

开源物联网MQTT 5.0服务器——EMQ安装及运行教程

 

修改 Dashboard 默认登录名和密码

Dashboard 插件以 Web 界面的方式提供对 EMQ X 的管理和控制功能,是 EMQ X 的默认随系统启动的插件之一。在安装以后,您可以通过编辑配置文件的方式来改变 Dashboard 默认的用户名和密码。配置文件:

etc/plugins/emqx_dashboard.conf

修改以下两行内容,将等号右侧值改为需要的值:

dashboard.default_user.login = admindashboard.default_user.password = public

或者以 Web 方式管理 Dashboard 用户。在 ADMIN -> Users 菜单下,您可以修改用户密码和增加 / 删除用户。admin 用户只能修改密码,不能被删除。

开源物联网MQTT 5.0服务器——EMQ安装及运行教程

 

配置端口

在安装以后,EMQ X 默认会使用以下端口:

  • 1883: MQTT 协议端口
  • 8883: MQTT/SSL 端口
  • 8083: MQTT/WebSocket 端口
  • 8080: HTTP API 端口
  • 18083: Dashboard 管理控制台端口按照安装环境需要,可以修改以上端口。

修改协议端口请编辑 EMQ X 系统配置文件'etc/emqx.conf',找到以下各行,并按需要修改端口号:

listener.tcp.external = 0.0.0.0:1883listener.ssl.external = 8883listener.ws.external = 8083

修改 HTTP API 端口请编辑 emqx_management 插件的配置文件'etc/plugins/emqx_management.conf',找到下述行,并按需修改端口号:

management.listener.http = 8080

修改 Dashboard 管理控制台端口请编辑 emqx_dashboard 插件的配置文件'etc/plugins/emqx_dashboard.conf', 找到下述行,并按需修改端口号:

dashboard.listener.http = 18083

在 Web Dashboard 的 MANAGEMENT -> Listeners 菜单下,可以查看现在正在使用的监听器端口和属性。

开源物联网MQTT 5.0服务器——EMQ安装及运行教程

 

启动 / 停止插件

插件是 EMQ X 的重要部分,EMQ X 的扩展功能基本都是通过插件实现的。包括 Dashbard 也是插件实现。您可以通过随软件附带的命令行工具 emqx_ctl 来启动和停止各个插件。

启动插件:

bin/emqx_ctl plugins load plugin_name

停止插件:

bin/emqx_ctl plugins unload plugin_name

您也可以在 Dashboard 的 MANAGEMENT -> plugins 菜单下启动和停止插件,或对插件进行简单的配置。

开源物联网MQTT 5.0服务器——EMQ安装及运行教程

 

EMQ X 的 Dashboard 本身也是一个插件,如果您在 Web 界面下停止了 Dashboard 插件,您将无法再使用 dashboard,直至您使用命令行工具再次启动 Dashboard。

修改 Erlang 虚拟机启动参数

EMQ X 运行在 Erlang 虚拟机上,在'etc/emqx.conf'中有两个限定了虚拟机允许的最大连接数。在运行 EMQ X 前可以修改这两个参数以适配连接需求:

  • node.process_limit : Erlang 虚拟机允许的最大进程数,EMQ X 一个连接会消耗 2 个 Erlang 进程;
  • node.max_ports : Erlang 虚拟机允许的最大 Port 数量,EMQ X 一个连接消耗 1 个 Port
  • 在 Erlang 虚拟机中的 Port 概念并不是 TCP 端口,可以近似的理解为文件句柄。*

这两个参数可以设置为:

  • node.process_limit: 大于最大允许连接数 * 2
  • node.max_ports: 大于最大允许连接数
开源物联网MQTT 5.0服务器——EMQ安装及运行教程

 



Tags:物联网   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
大家好,我是志明。上一期我们聊了物联网的发展。今天我想和大家聊一聊物联网(IOT)的落地应用:共享设备。 相信各位对这个词并不陌生,随着互联网技术的快速发展,以共享设备为代表的...【详细内容】
2021-12-24  Tags: 物联网  点击:(18)  评论:(0)  加入收藏
随着物联网设备数量的持续增加,这些设备之间的通信或连接已成为一个重要的思考课题。通信对物联网来说十分常用且关键,无论是近距离无线传输技术还是移动通信技术,都影响着物联...【详细内容】
2021-12-16  Tags: 物联网  点击:(16)  评论:(0)  加入收藏
安科瑞 于洋 周洁摘要:现代物联网技术高速发展,许多场所已经开始合理应用物联网照明系统,作为工厂生产的重要因素之一,工厂照明系统的智能化控制可以有效提高工厂对能源的利用率...【详细内容】
2021-12-14  Tags: 物联网  点击:(20)  评论:(0)  加入收藏
来源:内容由半导体行业观察(ID:icbank)来自Ctimes,谢谢。在数字化实体世界中,物联网技术的应用相当广泛,市场潜能与商机庞大。麦肯锡(MGI)《物联网:超越市场炒作价值(The Internet o...【详细内容】
2021-11-30  Tags: 物联网  点击:(20)  评论:(0)  加入收藏
SpringBoot开发的物联网通信平台系统项目功能模块 功能 说明 MQTT 1.SSL支持 2.集群化部署时暂不支持retain&will类型消 UDP ...【详细内容】
2021-11-05  Tags: 物联网  点击:(56)  评论:(0)  加入收藏
物联网(IoT)行业正蓬勃发展,成功的物联网项目需要大量工程,本文讨论了完整物联网项目所需的开发人员技能:包括嵌入式开发技术,应用程序编程,大数据分析等等。硬件设计师大多数物...【详细内容】
2021-11-03  Tags: 物联网  点击:(29)  评论:(0)  加入收藏
M2M我的一般的理解就是机器到机器(Machine to Machine),点对点的机器链接。从概念上也可以理解为人到人(Man to Man)、人到机器(Man to Machine)。即时通信工具就是人到人的交互,人...【详细内容】
2021-10-29  Tags: 物联网  点击:(72)  评论:(0)  加入收藏
在这篇文章中,大家将了解MQTT协议,以及为什么在许多物联网应用中使用它。 MQTT协议最初由IBM开发,并且是专有的。它的开发是为了解决石油和天然气行业的传感器通过卫星与远程服...【详细内容】
2021-10-21  Tags: 物联网  点击:(32)  评论:(0)  加入收藏
WiFi发展至今已有20多年的历史,WiFi模组就已经不是一个新兴概念。随着国内市场上智能硬件的成长,WiFi迎来了"爆发式"增长,这也意味着WiFi模组找到了春天。无线通信模块的价值主...【详细内容】
2021-07-20  Tags: 物联网  点击:(106)  评论:(0)  加入收藏
背景介绍在 IoT 物联网场景中,因为消费者分布全球各地,设备会被销售到多个国家或地区使用。 如果需要通过某个固定的服务器,远程管理多个国家或地区的设备,那么可能会出现如下情...【详细内容】
2021-07-16  Tags: 物联网  点击:(80)  评论:(0)  加入收藏
▌简易百科推荐
大家好,我是志明。上一期我们聊了物联网的发展。今天我想和大家聊一聊物联网(IOT)的落地应用:共享设备。 相信各位对这个词并不陌生,随着互联网技术的快速发展,以共享设备为代表的...【详细内容】
2021-12-24  物联网系统开发大观    Tags:物联网   点击:(18)  评论:(0)  加入收藏
随着物联网设备数量的持续增加,这些设备之间的通信或连接已成为一个重要的思考课题。通信对物联网来说十分常用且关键,无论是近距离无线传输技术还是移动通信技术,都影响着物联...【详细内容】
2021-12-16  pheenet菲尼特    Tags:物联网   点击:(16)  评论:(0)  加入收藏
安科瑞 于洋 周洁摘要:现代物联网技术高速发展,许多场所已经开始合理应用物联网照明系统,作为工厂生产的重要因素之一,工厂照明系统的智能化控制可以有效提高工厂对能源的利用率...【详细内容】
2021-12-14  安科瑞于洋    Tags:物联网   点击:(20)  评论:(0)  加入收藏
来源:内容由半导体行业观察(ID:icbank)来自Ctimes,谢谢。在数字化实体世界中,物联网技术的应用相当广泛,市场潜能与商机庞大。麦肯锡(MGI)《物联网:超越市场炒作价值(The Internet o...【详细内容】
2021-11-30  半导体行业观察    Tags:物联网   点击:(20)  评论:(0)  加入收藏
计讯物联无线数传终端DTU,对接充电桩与后端管理中心,多量分散充电桩统一集中管控,工业设计,无线部署、远程状态监测。  无线DTU充电桩联网  1、无线数据终端DTU建立充电桩...【详细内容】
2021-11-05  物联界的程序猿    Tags:充电桩   点击:(40)  评论:(0)  加入收藏
物联网(IoT)行业正蓬勃发展,成功的物联网项目需要大量工程,本文讨论了完整物联网项目所需的开发人员技能:包括嵌入式开发技术,应用程序编程,大数据分析等等。硬件设计师大多数物...【详细内容】
2021-11-03  粤嵌教育    Tags:物联网   点击:(29)  评论:(0)  加入收藏
M2M我的一般的理解就是机器到机器(Machine to Machine),点对点的机器链接。从概念上也可以理解为人到人(Man to Man)、人到机器(Man to Machine)。即时通信工具就是人到人的交互,人...【详细内容】
2021-10-29  喻喻嗒    Tags:物联网   点击:(72)  评论:(0)  加入收藏
在这篇文章中,大家将了解MQTT协议,以及为什么在许多物联网应用中使用它。 MQTT协议最初由IBM开发,并且是专有的。它的开发是为了解决石油和天然气行业的传感器通过卫星与远程服...【详细内容】
2021-10-21  亿佰特物联网实验室    Tags:MQTT   点击:(32)  评论:(0)  加入收藏
介绍IconPark是字节跳动团队开源的一个开源图标库,一共提供超过2000个高质量的图标,提供可视化界面配置来实现不同的方案,非常适合开发者和设计师来使用! GithubGitHub:https://...【详细内容】
2021-07-19  爱分享Coder    Tags:IconPark   点击:(189)  评论:(0)  加入收藏
背景介绍在 IoT 物联网场景中,因为消费者分布全球各地,设备会被销售到多个国家或地区使用。 如果需要通过某个固定的服务器,远程管理多个国家或地区的设备,那么可能会出现如下情...【详细内容】
2021-07-16  公田    Tags:物联网   点击:(80)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条