共计 2858 个字符,预计需要花费 8 分钟才能阅读完成。
EMQX 是一款寰球下载量超千万的大规模分布式物联网 MQTT 服务器,自 2013 年在 GitHub 公布开源版本以来,取得了来自 50 多个国家和地区的 20000 余家企业用户的宽泛认可,累计连贯物联网关键设备超过 1 亿台。
不久前,EMQX 公布了 5.0 版本,该版本在音讯传输的可靠性、产品体验的易用性等方面也进行了大幅优化降级,是 MQTT 畛域的一个里程碑式的成绩。在公布前性能测试中,EMQX 团队通过一个 23 节点的集群达成了 1 亿 MQTT 连贯 + 每秒 100 万音讯吞吐,这使得 EMQX 5.0 成为目前为止寰球最具扩展性的 MQTT 服务器。
EMQX 目前反对在 Linux、Windows、macOS、Raspbian 等零碎中运行,也反对应用 Docker、Kubernetes、Terraform 部署。本文将以 EMQX 开源版 5.0.4 为例,介绍如何在 Ubuntu 零碎中搭建一个单节点的 MQTT 服务器,并对搭建过程中容易遇到的常见问题进行逐个演示。
装置 EMQX
本文应用的演示环境为:阿里云上海区域 2 核 4G(ecs.c7.large),Ubuntu 20.04 64 位。
应用 APT 装置 EMQX
APT 是 Ubuntu 自带的包管理器,倡议优先应用 APT 装置 EMQX。同时,EMQX 也提供了官网的 APT 源及一键式配置脚本,不便用户疾速装置 EMQX。
-
配置 EMQX APT 源。
curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash
复制如上命令到 Ubuntu 终端下执行,如下图即示意配置胜利。
-
装置 EMQX 最新版。
sudo apt-get install emqx
-
装置胜利后,应用如下命令启动 EMQX。
sudo emqx start
如下图,若启动胜利,将会提醒:
EMQX 5.0.4 is started successfully!
。若命令长时间无响应,请通过 EMQX 运行状况查看 章节阐明查看相干端口是否被占用。 -
EMQX 治理命令
EMQX 提供了命令行工具,不便用户对 EMQX 进行启动、敞开、进入控制台等操作。如下图,在终端执行
sudo emqx
查看 EMQX 相干治理命令。
应用 tar.gz 包装置 EMQX
当服务器无公网接入或须要疾速部署、验证 EMQX 性能时可应用 tag.gz
包装置,该装置形式无任何第三方依赖且治理不便。
下载安装包
拜访 EMQX 下载地址 https://www.emqx.io/zh/downlo…。选中 Package
标签,安装包类型抉择 Ubuntu20.04 amd64/tag.gz
,而后点击左边的复制图标(这将会复制整行 wget 下载命令)。
将下载命令粘贴至服务器命令行终端,执行下载操作。
解压装置
在服务器终端执行如下命令,该命令将会把压缩包解压至当前目录下的 emqx
目录。
本次演示将会装置在以后用户的家目录下,即
~/emqx/
mkdir -p emqx && tar -zxvf emqx-5.0.4-ubuntu20.04-amd64.tar.gz -C emqx
接下来可应用如下命令启动 EMQX
./emqx/bin/emqx start
若启动胜利,将会提醒:EMQX 5.0.4 is started successfully!
。若命令长时间无响应,请通过 EMQX 运行状况查看 章节阐明查看相干端口是否被占用。
EMQX 运行状况查看
端口监听状况
应用命令 netstat -tunlp
查看 EMQX 端口运行状况,默认状况下 EMQX 会启动如下端口,若有异样请查看端口占用状况。
该命令也可在 EMQX 装置前执行,确保相干端口未被占用。
拜访 Dashboard
EMQX 提供了 Dashboard,以不便用户通过 Web 页面治理、监控 EMQX 并配置所需的性能。EMQX 胜利启动之后能够通过浏览器关上 http://localhost:18083/
(将 localhost 替换为理论 IP 地址)拜访 Dashboard。
拜访 Dashboard 之前须要确保服务器的防火墙关上了 18083 端口
Dashboard 的默认用户名为 admin
,明码为 public
,第一次登录胜利后会提醒批改明码。明码批改实现后,咱们也能够在 Settings 页面将 Dahshboard 的语言改为 简体中文
。
MQTT 连贯测试
接下来咱们点击左侧菜单栏外面的 WebSocket 客户端
,该客户端可测试 MQTT over Websocket,验证 MQTT 服务器是否已部署胜利。
须要确保防火墙已关上 8083 端口拜访权限
连贯至 MQTT 服务器
如下图,该工具已依据拜访地址主动填充了主机名,咱们间接点击 连贯
按钮。
如下图,提醒连贯胜利。
订阅主题
如下图,订阅一个 testtopic
主题。
音讯公布
如下图,咱们向 testtopic
公布了两条音讯,且接管胜利,表明 MQTT 服务器已部署胜利且在失常运行。
至此,咱们已实现了 MQTT 服务器的搭建及连贯测试,然而该服务器仅仅只能用于测试,若要部署生产环境下可用的 MQTT 服务器,咱们还须要进行最重要的认证配置。
配置认证
默认状况下,EMQX 将容许任何客户端连贯,直到用户创立了认证器。认证器将依据客户端提供的认证信息对其进行身份验证,只有认证通过,客户端能力胜利连贯。接下来咱们将演示如何应用 EMQX 内置的数据库进行用户名、明码认证。
EMQX 也提供了与多种后端数据库的认证集成反对,包含 MySQL、PostgreSQL、MongoDB 和 Redis。
查看文档理解更多认证形式:https://www.emqx.io/docs/zh/v…
创立认证
EMQX 从 5.0 开始反对在 Dashbaord 配置认证,以不便用户能更加不便、疾速的创立平安的 MQTT 服务。咱们点击 访问控制
菜单下的 认证
进入认证配置页面,而后点击最右侧的 创立
按钮。
抉择 Password-Based
选项,而后点击 下一步
。
数据库抉择 Built-in Database
,而后点击 下一步
。
接下来抉择账户类型、加密形式、加盐形式,并点击 创立
。
这里咱们应用默认配置,读者可依据业务理论需要进行抉择。
增加用户
认证创立胜利后如下图。接下来咱们点击 用户治理
增加用户。
进入用户治理页面后,咱们点击最右侧的 增加
按钮,并在弹出框里设置用户名与明码,之后点击 保留
。
如下图示意创立胜利。
测试认证
接下来咱们应用 Dashboard 提供的 Websocket 工具来测试认证是否已配置胜利。在连贯配置里输出方才创立的用户名与明码,而后点击 连贯
。
将会看到右侧弹窗提醒已连贯。
接下来咱们应用一个未创立的用户名 test1
,点击连贯将会看到如下连贯失败信息。
至此,咱们已实现了 EMQX 的认证配置,搭建了一台可用于生产环境的单节点 MQTT 服务器。若要保障 MQTT 服务器的高可用,还须要创立多个节点的 EMQX 集群,创立集群的具体细节本文不再详述,读者可参考 EMQX 集群文档 进行配置。
版权申明:本文为 EMQ 原创,转载请注明出处。
原文链接:https://www.emqx.com/zh/blog/how-to-install-emqx-mqtt-broker-on-ubuntu