CentOS 安装 EMQX
安装
EMQX v4.3.15
1、下载 emqx-centos8-4.3.15-amd64.rpmSHA256
wget https://www.emqx.com/zh/downloads/broker/4.3.15/emqx-centos8-4.3.15-amd64.rpm
2、安装 EMQX
sudo yum install emqx-centos8-4.3.15-amd64.rpm
3、启动 EMQX
sudo emqx start
基本命令
EMQX 提供了 emqx 命令行工具,方便用户对 EMQX 进行启动、关闭、进入控制台等操作。
- emqx start后台启动 EMQX Broker;
- emqx stop关闭 EMQX Broker;
- emqx restart重启 EMQX Broker;
- emqx console使用控制台启动 EMQX Broker;
- emqx foreground使用控制台启动 EMQX Broker,与 emqx console 不同,emqx foreground 不支持输入 Erlang 命令;
- emqx pingPing EMQX Broker。
以上命令为用户常用命令,此外 emqx 命令还有一些其他选项为方便开发者使用,普通用户无需关心。
关闭遥测
遥测功能在 4.2-rc.1 版本中加入到 EMQX。
这个东西相当于官方的运行数据上报,我们可以把它关了。
启动前禁用
编辑 data/loaded_plugins 文件,删除 emqx_telemetry. 这一行数据(注意后面有一个 "." 字符),这表示遥测插件永远不会启动。
运行中禁用
在命令行中停止 emqx-telemetry 插件:./bin/emqx_ctl plugins unload emqx_telemetry
在 Dashboard 中停止 emqx-telemetry 插件:打开 http://localhost:18083 进入 Dashboard,进入 插件 页面,找到 emqx-telemetry 点击 停止 即可。
目录结构
不同安装方式得到的 EMQX 其目录结构会有所不同,具体如下:
描述 | 使用 ZIP 压缩包安装 | 使用二进制包安装 | Homebrew(MacOS)安装 |
---|---|---|---|
可执行文件目录 | ./bin | /usr/lib/emqx/bin | /usr/local/bin |
数据文件 | ./data | /var/lib/emqx | /usr/local/Cellar/emqx/*/data |
Erlang 虚拟机文件 | ./erts-* | /usr/lib/emqx/erts-* | /usr/local/Cellar/emqx/*/erts- |
配置文件目录 | ./etc | /etc/emqx | /usr/local/Cellar/emqx/*/etc |
依赖项目录 | ./lib | /usr/lib/emqx/lib | /usr/local/Cellar/emqx/*/lib |
日志文件 | ./log | /var/log/emqx | /usr/local/Cellar/emqx/*/log |
启动相关的脚本、schema 文件 | ./releases | /usr/lib/emqx/releases | /usr/local/Cellar/emqx/*/releases |
log 目录
emqx.log.*
EMQX 运行时产生的日志文件,具体请查看 日志与追踪。
crash.dump
EMQX 的崩溃转储文件,可以通过 etc/emqx.conf 修改配置,具体内容可以查看 配置项。
erlang.log.*
以 emqx start 方式后台启动 EMQX 时,控制台日志的副本文件。
详情查看:
https://www.emqx.io/docs/zh/v4.4/getting-started/directory.html
端口监听
Listener 主要用于配置不同协议的监听端口和相关参数,EMQX 支持配置多个 Listener 以同时监听多个协议或端口,以下是支持的 Listener:
监听器 | 说明 |
---|---|
TCP Listener | A listener for MQTT which uses TCP |
SSL Listener | A secure listener for MQTT which uses TLS |
Websocket Listener | A listener for MQTT over WebSockets |
Secure Websocket Listener | A secure listener for MQTT over secure WebSockets (TLS) |
EMQX 默认提供 5 个 Listener,它们将占用以下端口:
端口 | 说明 |
---|---|
1883 | MQTT/TCP 协议端口 |
11883 | MQTT/TCP 协议内部端口,仅用于本机客户端连接 |
8883 | MQTT/SSL 协议端口 |
8083 | MQTT/WS 协议端口 |
8084 | MQTT/WSS 协议端口 |
其中 8883 和 8084 是 SSL 协议,需要另需配置,一般不需要。
综上,需要开启 1883、8083、18083(WEB 控制台)。
认证鉴权
EMQ X 默认开启匿名认证,即允许任意客户端登录,具体配置在 etc/emqx.conf 中:
## Allow Anonymous authentication
mqtt.allow_anonymous = true
EMQ X 认证相关插件名称以 emqx_auth 开头。当启用认证插件之前,请在配置文件 etc/emqx.conf 中把允许匿名认证的方式给去掉:mqtt.allow_anonymous = false。当共同启用多个认证插件时,EMQ X 将按照插件开启先后顺序进行链式认证,一旦认证成功就终止认证链并允许客户端接入,最后一个认证源仍未通过时将终止客户端连接,认证链的认证过程示意图如下所示。
参考:
https://www.bookstack.cn/read/emqx-v3.0/90bf5bca23cd64a7.md
ACL 访问控制,避免随意订阅主题
https://www.bookstack.cn/read/emqx-v3.0/20129bbfa2c8162e.md
https://blog.csdn.net/a123123sdf/article/details/120952570
关闭匿名认证
EMQX 默认启动匿名认证,任何客户端都能连接 EMQX 。
生产环境中请禁用匿名认证。
修改 emqx 配置文件,/etc/emqx/emqx.conf
allow_anonymous = false