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

news2025/4/7 20:04:05

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.coloradmin.cn/o/625833.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】HTTP协议

目录 &#x1f680;前言&#x1f683;HTTP协议 &#x1f684;1、URL网址&#x1f685;2、URL的编码和解码&#x1f687;3、HTTP协议格式&#x1f688;4、HTTP请求&#x1f689;4.1、 HTTP GET和POST方法&#x1f68b;4.2、HTTP状态码&#x1f68a;4.3、HTTP常见Header &#x1…

redis架构设计: redis-server的启动(硬核分析)

怎么在windows上用clion搭建redis的源码阅读环境 请看我的上一篇文章 redis启动之后都干了什么呢? 我们知道&#xff0c;redis的服务端对应的源码位置是server.c main函数是程序启动的入口 &#xff0c;下面我来一行一行的分析server.c的源码 1、定义时间函数变量 struct …

chatgpt赋能python:Python多种输出格式详解

Python多种输出格式详解 对于Python程序员来说&#xff0c;输出是非常重要的。无论是在开发阶段还是在生产环境中&#xff0c;输出都是我们调试程序和确认程序运行是否正常的重要手段。Python标准库提供了丰富的输出格式&#xff0c;本文介绍了几种常见的输出格式及其使用方法…

因为写不出拖拽移动效果,我恶补了一下Dom中的各种距离

目录 背景 JS Dom各种距离释义 第一个发现 window.devicePixelRatio 的存在 document.body、document.documentElement和window.screen的宽高区别 scrollWidth, scrollLeft, clientWidth关系 元素自身和父级元素的scrollWidth和scrollLeft关系? offsetWidth和clientWid…

【FDA】图像通过傅里叶变换改变光谱风格,实现域自适应

FDA: Fourier Domain Adaptation for Semantic Segmentation, CVPR2020 翻译&#xff1a;CVF2020邻域自适应/语义分割&#xff1a;FDA: Fourier Domain Adaptation for Semantic SegmentationFDA&#xff1a;用于语义分割的傅立叶域自适应算法_傅里叶域适应_HheeFish的博客-CS…

【TCP/IP】多进程服务器的实现(进阶) - 进程和僵尸进程

目录 僵尸(Zombie)进程 僵尸进程的产生机制 僵尸进程的危害 僵尸进程的销毁 wait函数 waitpid函数 进程管理在网络编程中十分重要&#xff0c;如果未处理好&#xff0c;将会导致出现“僵尸进程”&#xff0c;进而影响服务器端对进程的管控。 僵尸(Zombie)进程 第一次听到…

数据类型

常见的数据类型&#xff1a; int&#xff0c;整数类型&#xff08;整形&#xff09;bool&#xff0c;布尔类型str&#xff0c;字符串类型list&#xff0c;列表类型tuple&#xff0c;元组类型dict&#xff0c;字典类型set&#xff0c;集合类型float&#xff0c;浮点类型&#x…

python Web开发 flask轻量级Web框架实战项目--学生管理系统

上次发的一篇文章&#xff0c;有很多朋友私信我要后面的部分&#xff0c;那咱们就今天来一起学习一下吧&#xff0c;因为我的数据库这门课选中的课题是学生管理系统&#xff0c;所以今天就以这个课题为例子&#xff0c;从0到1去实现一个管理系统。数据库设计部分我会专门出一个…

《Java 核心技术面试》课程笔记(十二)

Java 有几种文件拷贝方式&#xff1f;哪一种最高效&#xff1f; 典型回答 Java 有多种比较典型的文件拷贝实现方式&#xff0c;比如&#xff1a;利用java.io 类库&#xff0c;直接为源文件构建一个 FileInputStream 读取&#xff0c;然后再为目标文件构建一个 FileOutputStre…

chatgpt赋能python:Python模块(Module)是什么?

Python模块&#xff08;Module&#xff09;是什么&#xff1f; Python模块&#xff08;Module&#xff09;是指一些预先编写好的代码&#xff0c;这些代码可以在程序中被引入和使用。它们可以包含可以复用的函数、常量和类。Python模块是一种封装程序代码的方法。 下载Python…

领取的AWS亚马逊云服务器到期会扣费的问题解决办法。

本篇文章主要讲解&#xff0c;领取的AWS亚马逊服务器到期后会持续扣费问题的解决办法。 作者&#xff1a;任聪聪 日期&#xff1a;2023年6月8日 关于aws服务器一年免费期限到期后扣费的问题&#xff0c;网络上的文章并不是很全&#xff0c;故此我通过个人的经验进行了如下的教程…

chatgpt赋能python:Python怎么print换行?

Python怎么print换行&#xff1f; 如果你是一个Python开发者&#xff0c;你可能遇到过需要在Python中打印输出换行的情况。本文将分享几种方式&#xff0c;让你学会如何在Python中print换行。 1. 使用"\n" 您可以在print语句中使用"\n"来表示换行。这个…

陈丹琦团队新作:单卡A100可训300亿参数模型啦!

夕小瑶科技说 原创 作者 | 智商掉了一地、ZenMoore 近年来&#xff0c;随着大模型的涌现&#xff0c;微调语言模型已经在各种下游任务上展现出了卓越的性能。然而&#xff0c;这些庞大模型的参数量常常达到数十亿甚至上百亿的级别&#xff0c;训练这样规模的模型需要消耗大量…

chatgpt赋能python:Python视图(View)在SEO中的重要性

Python视图&#xff08;View&#xff09;在SEO中的重要性 什么是Python视图&#xff1f; Python视图是指&#xff0c;在Web应用程序中&#xff0c;将业务逻辑与显示逻辑分开处理&#xff0c;并以代码的形式定义的可重用组件。它们是与URL相对应的函数或方法。Python视图可以生…

uniapp:uni-app-base 项目基础配置,开箱可用

目前&#xff08;20230605&#xff09;uni-app最新版本&#xff08;3.8.4.20230531&#xff09; 一、官网文档 uni-app官网 二、创建项目 项目目标&#xff1a;vue3tsvitevscode 创建以 typescript 开发的工程&#xff08;如命令行创建失败&#xff0c;请直接访问 gitee 下…

《面试1v1》JVM调优

我是 javapub&#xff0c;一名 Markdown 程序员从&#x1f468;‍&#x1f4bb;&#xff0c;八股文种子选手。 《面试1v1》 连载中… 面试官&#xff1a; 小伙子,说听说你JVM调优挺在行? 候选人&#xff1a; 谢谢夸奖,我对JVM调优还在学习中,远未达到在行的程度。不过日常工作…

springboot项目外卖管理 day04-文件的上传下载与菜品的新增与修改

文章目录 1、文件上传下载1.1、文件上传介绍与实现1.2、文件下载介绍与实现 2、新增菜品2.1、需求分析2.2、代码开发-梳理交互过程2.2.1、菜品分类下拉框&#xff1a;在CategoryController添加 2.2.2、新增保存 3、菜品信息分页查询3.1、代码开发-梳理交互过程对象拷贝BeanUtil…

chatgpt赋能python:Python输出方法详解:从基础print()到高级logging模块

Python输出方法详解&#xff1a;从基础print()到高级logging模块 在Python编程中&#xff0c;输出是一个必不可少的步骤。然而&#xff0c;Python提供了多种输出方法&#xff0c;如何选择最适合的方法呢&#xff1f;本文将详细介绍Python输出的不同方法&#xff0c;并给出实际…

只给大模型LeetCode编号,也能解题!大模型表现好是源于对训练数据的记忆吗?请不要迷信大模型

夕小瑶科技说 原创 作者 | Python 自从推出以来&#xff0c;ChatGPT这款智能高效的人机对话平台迅速风靡全球。人们开始广泛尝试使用ChatGPT来解决各种问题&#xff0c;无论是医学检测报告的解释&#xff0c;还是公众号文章的取名&#xff0c;甚至是论文修改润色和rebuttal撰…

微服务治理框架- - -Spring Cloud

前言&#xff1a;最近微服务很是火热&#xff0c;那么什么是微服务&#xff1f;相信小伙伴们对此也是一知半解&#xff0c;那么今天叶秋学长带领大家一起学习微服务治理框架Spring Cloud&#xff0c;快来跟着学长一起学习吧~~ 目录 对SpringCloud了解多少&#xff1f; 什么是…