EMQ X(2):EMQ X服务端环境搭建与配置

news/2024/11/25 19:22:52/

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.confEMQ X 配置文件
acl.confEMQ X 默认 ACL 规则配置文件
plugins/*.confEMQ X 各类插件配置文件
certs/*EMQ X SSL 证书文件
emqx.licLicense 文件仅限 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.confEMQ X 配置文件
etc/acl.confEMQ X 默认 ACL 规则配置文件
etc/plugins/*.confEMQ X 扩展插件配置文件

需要注意的是,安装方式不同 etc 目录所处的路径可能不同,

语法规则

  • 采用类似 sysctl 的 k = v 通用格式
  • 单个配置项的所有信息都在同一行内,换行意味着创建一个新的配置项
  • 键可以通过 . 进行分层,支持按树形结构管理配置项
  • 值的类型可以是 integer , fload , percent , enum , ip , string , atom , flag , duration and bytesize
  • 任何以#开头的行均被视为注释


http://www.ppmy.cn/news/287726.html

相关文章

JavaSSM笔记(二)

SpringMVC 在前面学习完Spring框架技术之后&#xff0c;差不多会出现两批人&#xff1a;一批是听得云里雾里&#xff0c;依然不明白这个东西是干嘛的&#xff1b;还有一批就是差不多理解了核心思想&#xff0c;但是不知道这些东西该如何去发挥它的作用。在SpringMVC阶段&#…

Android AutoSize屏幕适配中图标及字体放大的问题解决

现象&#xff1a; 项目接入Android AutoSize屏幕适配框架&#xff0c;项目本身主界面是横屏操作的界面。测试中用户反馈在vivo x27的手机或者其他机型也会出现&#xff08;没测试出来&#xff09;横屏后所有的图标及字体都放大。 原因查找&#xff1a; 查看Android AutoSize…

Android通过代码模拟物理、屏幕点击事件,adb 执行各种命令点击事件;

本文讲的是通过使用代码&#xff0c;可以控制手机的屏幕和物理按键&#xff0c;也就是说不只是在某一个APP里去操作&#xff0c;而是整个手机系统。 getevent/sendevent getevent&sendevent 是android系统下的一个工具&#xff0c;可以模拟多种按键和触屏操作&#xff0c;…

屏幕适配 AndroidAutoSize 完全解析,踩坑测试 与 使用注意事项总结

1、设备屏幕参数获取、计算、几个设备相关参数 计算示范&#xff1a;某手机 6.39英寸 &#xff08;对角线&#xff09;&#xff0c;1英寸是160dp&#xff0c;所以是 1022.4dp&#xff0c;分辨率 2340 x 1080&#xff0c;勾股定理得到对角线长为2577.2 &#xff0c;所以屏幕密度…

TouchPanel在MSM7X27上的移植

调试TouchPanel也有一段时间了&#xff0c;今天总结一下&#xff0c;平台是MSM7x27&#xff0c;android2.2&#xff0c;TP主要就是I2C了&#xff0c;这里不介绍I2C,不清楚的自己search&#xff0c;主要介绍TP在这个平台上的移植内容。需要注意的是平台采用的是硬件I2C而非GPIO模…

编程小知识之 CanvasScaler 的一点知识

本文简述了 Unity 中 CanvasScaler 的一点知识 制作 UI 时,一般都需要进行多分辨率适配,基本的方法大概有以下几种: UI 参照单一的分辨率(参考分辨率)进行制作,实际显示时按照某种方式调整到实际的设备分辨率UI 按照所有可能的分辨率分别进行制作,实际显示时选择对应的设备分辨…

华为mate20受累屏幕或推动其强化与产业链的合作

华为mate20 Pro出现的绿屏门主要问题就出在OLED面板方面&#xff0c;而据报道指华为这次不得不采用京东方和LG的OLED面板&#xff0c;据称是因为三星方面担忧华为在手机业务上不断迫近的压力而不愿向它供应OLED面板&#xff0c;这或许将推动它强化与产业链的合作&#xff0c;明…

Android通过代码模拟物理、屏幕点击事件

本文讲的是通过使用代码&#xff0c;可以控制手机的屏幕和物理按键&#xff0c;也就是说不只是在某一个APP里去操作&#xff0c;而是整个手机系统。 getevent/sendevent getevent&sendevent 是android系统下的一个工具&#xff0c;可以模拟多种按键和触屏操作&#xff0c;产…