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 将按照插件开启先后顺序进行链式认证,一旦认证成功就终止认证链并允许客户端接入,最后一个认证源仍未通过时将终止客户端连接,认证链的认证过程示意图如下所示。
image.png
参考:
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

posted @ 2023-06-17 09:34  EggCode  阅读(2254)  评论(0)    收藏  举报