1 安装
EMQ X 目前支持的操作系统:
- Centos6
- Centos7
- OpenSUSE tumbleweed
- Debian 8
- Debian 9
- Debian 10
- Ubuntu 14.04
- Ubuntu 16.04
- Ubuntu 18.04
- macOS 10.13
- macOS 10.14
- macOS 10.15
- Windows Server 2019
产品部署建议 Linux 服务器,不推荐 Windows 服务器。
安装的方式有很多种,可供自由选择:
Shell脚本安装、包管理器安装、二进制包安装、ZIP压缩包安装、Homebrew安装、Docker运行安装、Helm安装、源码编译安装
CentOS7的虚拟机上进行安装EMQ X broker:
1.1 二进制包安装
从该地址下载最新版本:https://www.emqx.io/cn/downloads#broker
执行如下命令执行安装
rpm -ivh emqx-centos7-v4.0.5.x86_64.rpm
安装完成后直接使用如下命令启动emqx
emqx start
查看emqx broker的启动状态
emqx_ctl status
EMQ X broker提供了Dashboard 以方便用户管理设备与监控相关指标,启动后我们通过访问服务端18083端口
http://192.168.222.142:18083/
默认用户名:admin,默认密码:public
停止emqx broker请使用如下命令
emqx stop
卸载 EMQ X Broker
rpm -e emqx
1.2 Docker运行安装
在EMQ X Broker下载页面直接提供的有基于docker的安装命令
首先拉取emqx的镜像
docker pull emqx/emqx:v4.0.5
使用docker命令运行得到docker容器
docker run -tid --name emqx -p 1883:1883 -p 8083:8083 -p 8081:8081 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v4.0.5
访问Dashboard 查看启动效果!
2 基本命令
如果采用的是非docker部署的,那么EMQ X提供了一些常用的命令行工具,方便用户对EMQ X进行启动、关闭、进入控制台等操作。
- emqx start
后台启动 EMQ X Broker
- emqx stop
关闭 EMQ X Broker
- emqx restart
重启 EMQ X Broker
- emqx console
使用控制台启动 EMQ X Broker
- emqx foreground
使用控制台启动 EMQ X Broker,与 emqx console 不同, emqx foreground 不支持输入 Erlang 命令
- emqx ping
Ping EMQ X Broke
3 目录结构
不同安装方式得到的 EMQ X 其目录结构会有所不同,具体如下:
描述 | 使用 ZIP 压缩包安装(同docker) | 使用二进制包安装 |
可执行文件目录 | ./bin | /usr/lib/emqx/bin |
数据文件 | ./data | /var/lib/emqx/data |
Erlang 虚拟机文件 | ./erts-* | /usr/lib/emqx/erts-* |
配置文件目录 | ./etc | /etc/emqx |
依赖项目录 | ./lib | /usr/lib/emqx/lib |
日志文件 | ./log | /var/log/emqx |
启动相关的脚本、schema 文件 | ./releases | /usr/lib/emqx/releases |
以上目录中,用户经常接触与使用的是 bin 、 etc 、 data 、 log 目录。
bin 目录
emqx、emqx.cmd:EMQ X 的可执行文件
emqx_ctl、emqx_ctl.cmd:EMQ X 管理命令的可执行文件
etc 目录
EMQ X 通过 etc 目录下配置文件进行设置,主要配置文件包括:
配置文件 | 说明 |
emqx.conf | EMQ X 配置文件 |
acl.conf | EMQ X 默认 ACL 规则配置文件 |
plugins/*.conf | EMQ X 各类插件配置文件 |
certs/* | EMQ X SSL 证书文件 |
emqx.lic | License 文件仅限 EMQ X Enterprise |
data 目录
EMQ X 将运行数据存储在 data 目录下,主要的文件包括:
configs/app.*.config
EMQ X 读取 etc/emqx.conf 和 etc/plugins/*.conf 中的配置后,转换为 Erlang 原生配置文件格式,并在运行时读取其中的配置。
loaded_plugins
loaded_plugins 文件记录了 EMQ X 默认启动的插件列表,可以修改此文件以增删默认启动的插件。
loaded_plugins 中启动项格式为 {<Plugin Name>, <Enabled>}. , <Enabled> 字段为布尔类型,EMQ X 会在启动时根据 <Enabled> 的值判断是否需要启动该插件。
$ cat loaded_plugins
{emqx_management,true}.
{emqx_recon,true}.
{emqx_retainer,true}.
{emqx_dashboard,true}.
{emqx_rule_engine,true}.
{emqx_bridge_mqtt,false}.
mnesia
Mnesia 数据库是 Erlang 内置的一个分布式 DBMS,可以直接存储 Erlang 的各种数据结构。
EMQ X 使用 Mnesia 数据库存储自身运行数据,例如告警记录、规则引擎已创建的资源和规则、Dashbaord用户信息等数据,这些数据都将被存储在 mnesia 目录下,因此一旦删除该目录,将导致 EMQ X 丢失所有业务数据。
可以通过 emqx_ctl mnesia 命令查询 EMQ X 中 Mnesia 数据库的系统信息。
log 目录
emqx.log.*:EMQ X 运行时产生的日志文件
crash.dump:EMQ X 的崩溃转储文件,可以通过 etc/emqx.conf 修改配置。
erlang.log.*:以 emqx start 方式后台启动 EMQ X 时,控制台日志的副本文件。
4 配置说明
EMQ X 的配置文件通常以 .conf 作为后缀名,你可以在 etc 目录找到这些配置文件,主要配置文件包括:
配置文件 | 说明 |
etc/emqx.conf | EMQ X 配置文件 |
etc/acl.conf | EMQ X 默认 ACL 规则配置文件 |
etc/plugins/*.conf | EMQ X 扩展插件配置文件 |
需要注意的是,安装方式不同 etc 目录所处的路径可能不同,
语法规则
- 采用类似 sysctl 的 k = v 通用格式
- 单个配置项的所有信息都在同一行内,换行意味着创建一个新的配置项
- 键可以通过 . 进行分层,支持按树形结构管理配置项
- 值的类型可以是 integer , fload , percent , enum , ip , string , atom , flag , duration and bytesize
- 任何以#开头的行均被视为注释