CentOS7 搭建EMQ X 服务

一、EMQ X简介

1. MQTT是什么

要想了解 EMQ ,首先要知道什么是 MQTT

  • MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议):是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上

  • MQTT 优点:可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

2. EMQ X是什么

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

  • EMQ X 用于支持各种接入标准 MQTT 协议的设备,实现从设备端到服务器端的消息传递,以及从服务器端到设备端的设备控制和消息转发,从而实现物联网设备的数据采集和对设备的操作控制,目前广泛应用于全球物联网市场。

3. 为什么使用EMQ X

  1. 完整物联网协议支持,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket 或私有协议支持
  2. 企业版单机能支持百万 MQTT 连接,集群能支持千万级别 MQTT 连接
  3. 易于安装和使用
  4. 灵活的拓展性,可支持企业定制场景
  5. 完全开源,用户可以查看所有源代码

二、安装EMQ X

  • EMQ X 官网地址:https://www.emqx.io/zh

1. 下载安装

  • EMQ X 下载地址:https://www.emqx.com/zh/downloads?product=broker

可以看到,这里下载的有两个版本,企业版和开源版,开源版可以免费使用,功能相对少些;企业版可以试用,长久使用需要交点米。我们这里选择开源版下载,选择好版本和系统,点击免费下载

image-20220309163152103

这里给出了下载安装方法,直接根据参考下载安装即可

image-20220309164927957

解压后如下:

image-20220309165112337

这里讲一下一些重要的文件

bin --- emqx【启动相关】 --- emq_ctl【状态相关】 etc --- emqx.conf【配置相关】 --- plugins【插件相关】 log --- erlang.log.1【错误日志】

注:企业版要将License(emqx.key、emqx.lic)上传到etc文件夹下

解压后直接执行bin下的emqx文件即可,如果启动成功,会出现start successfully提示字样

./emqx start

2. 启动常见问题

在启动的时候由于一些依赖版本问题,可能会出现一些错误,如果碰到了,可以通过查看错误日志,可以看到是如下报错:

image-20210823090200617

经过查询资料,发现官网有相关解决方法:常见错误 | EMQ Docs (emqx.cn),是OPENSSL 版本不正确造成的,我们可以根据官网的提示进行操作

image-20210823133943039

在执行make test的时候,报如下错误,可以通过下面命令解决:

yum install perl-Test-Harness

image-20210820175300267

在执行make install的时候会报如下错误,经过查询资料,该错误并不会对启动造成影响,因此继续往下执行即可

image-20210820175644711

3. 开放服务器端口

访问服务器的 emqx,需要开放18083 和1883 两个端口

# 开放18083端口(开放后需要要重启防火墙才生效)
firewall-cmd --zone=public --add-port=18083/tcp --permanent
# 1883(开放后需要要重启防火墙才生效)
firewall-cmd --zone=public --add-port=1883/tcp --permanent
# 重启防火墙
firewall-cmd --reload

添加服务器防火墙安全组规则: image-20220309165736254

4. 启动访问

根据官网解决启动异常问题后,最终启动成功,访问地址:http://8.129.125.48:18083/ ,使用初始用户名密码进行登录:admin,public

image-20210823140652497

image-20210823141059337

启动后,如果老是弹出URL Not Found这个错误,这是因为management的端口冲突造成的,在配置文件里面修改即可,这里修改为8093:

vim /usr/local/emqx-cento7-4.0.7/emqx/etc/plugins/emqx_management.conf

image-20210823141321449

修改后,重启emq,使用默认账号进行登录,可以正常访问

image-20210823134730266

三、常用命令

# 后台启动 EMQ X Broker
./emqx start

# 关闭 EMQ X Broker
./emqx stop

# 重启 EMQ X Broker
./emqx restart

# 使用控制台启动 EMQ X Broker
./emqx console

# 使用控制台启动 EMQ X Broker,与 emqx console 不同,emqx foreground 不支持输入 Erlang 命令
./emqx foreground

# Ping EMQ X Broker
./emqx ping

# 查看 EMQ X 的状态
./emqx_ctl status
end
  • 作者:ONESTAR(联系作者)
  • 更新时间:2022-03-09 17:59
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 转载声明:如果是转载栈主转载的文章,请附上原文链接
  • 公众号转载:请在文末添加作者公众号二维码(公众号二维码见右边,欢迎关注)
  • 评论

    新增邮件回复功能,回复将会通过邮件形式提醒,请填写有效的邮件!