Skip to content

Commit

Permalink
sync blog
Browse files Browse the repository at this point in the history
  • Loading branch information
emqx-ci-robot authored and Swilder-M committed Nov 21, 2024
1 parent cc1d6cf commit 1dcc38c
Show file tree
Hide file tree
Showing 3 changed files with 184 additions and 1 deletion.
1 change: 1 addition & 0 deletions README-ZH.md
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ Explore more with & via EMQ.
## [EMQX Open Source | Broker](https://www.emqx.com/zh/blog/category/emqx)
EMQX is the world's most scalable open-source MQTT broker with a high performance that connects 100M+ IoT devices in 1 cluster, while maintaining 1M message per second throughput and sub-millisecond latency.

- [持续监控云端数据:利用 EMQX ECP 集中管理 EMQX 集群](https://www.emqx.com/zh/blog/managing-emqx-clusters-with-emqx-ecp) ([Edit](https://github.com/emqx/blog/blob/main/zh/202411/managing-emqx-clusters-with-emqx-ecp.md))
- [CoAP 协议介绍:特性、应用与优劣势](https://www.emqx.com/zh/blog/coap-protocol) ([Edit](https://github.com/emqx/blog/blob/main/zh/202411/coap-protocol.md))
- [EMQX Platform 旗舰版:面向企业级 AI 和物联网应用的高级 MQTT 消息服务](https://www.emqx.com/zh/blog/introducing-emqx-premium) ([Edit](https://github.com/emqx/blog/blob/main/zh/202410/introducing-emqx-premium.md))
- [EMQX Enterprise 5.8.0 发布:实现跨区域、全球分布的集群连接](https://www.emqx.com/zh/blog/emqx-enterprise-5-8-0-release-notes) ([Edit](https://github.com/emqx/blog/blob/main/zh/202409/emqx-enterprise-5-8-0-release-notes.md))
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Get to know the preferred protocol in IoT from beginner to master.
- [MQTT Broker: How It Works, Popular Options, and Quickstart](https://www.emqx.com/en/blog/the-ultimate-guide-to-mqtt-broker-comparison) ([Edit](https://github.com/emqx/blog/blob/main/en/202402/the-ultimate-guide-to-mqtt-broker-comparison.md))
- [How to Install a Scalable MQTT Broker on OpenWRT](https://www.emqx.com/en/blog/how-to-install-a-scalable-mqtt-broker-on-openwrt) ([Edit](https://github.com/emqx/blog/blob/main/en/202310/how-to-install-a-scalable-mqtt-broker-on-openwrt.md))
- [RabbitMQ vs Kafka: 5 Key Differences & Leading Use Cases](https://www.emqx.com/en/blog/rabbitmq-vs-kafka) ([Edit](https://github.com/emqx/blog/blob/main/en/202309/rabbitmq-vs-kafka.md))
- [Mosquitto MQTT Broker: Pros/Cons, Tutorial, and a Modern Alternative](https://www.emqx.com/en/blog/mosquitto-mqtt-broker-pros-cons-tutorial-and-modern-alternatives) ([Edit](https://github.com/emqx/blog/blob/main/en/202308/mosquitto-mqtt-broker-pros-cons-tutorial-and-modern-alternatives.md))
- [Mosquitto MQTT Broker: Pros/Cons, Tutorial, and Alternative](https://www.emqx.com/en/blog/mosquitto-mqtt-broker-pros-cons-tutorial-and-modern-alternatives) ([Edit](https://github.com/emqx/blog/blob/main/en/202308/mosquitto-mqtt-broker-pros-cons-tutorial-and-modern-alternatives.md))
- [The Best Mosquitto Alternative: An In-Depth Look at NanoMQ for IoT Edge](https://www.emqx.com/en/blog/nanomq-the-multi-threaded-alternative-to-mosquitto-for-iot-edge) ([Edit](https://github.com/emqx/blog/blob/main/en/202306/nanomq-the-multi-threaded-alternative-to-mosquitto-for-iot-edge.md))
- [Connecting to Serverless MQTT Broker in Node.js](https://www.emqx.com/en/blog/connecting-to-serverless-mqtt-broker-in-nodejs) ([Edit](https://github.com/emqx/blog/blob/main/en/202305/connecting-to-serverless-mqtt-broker-in-nodejs.md))
- [EMQX MQTT Broker Troubleshooting: Connection Issues](https://www.emqx.com/en/blog/emqx-mqtt-broker-connection-troubleshooting) ([Edit](https://github.com/emqx/blog/blob/main/en/202305/emqx-mqtt-broker-connection-troubleshooting.md))
Expand Down
182 changes: 182 additions & 0 deletions zh/202411/managing-emqx-clusters-with-emqx-ecp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
## 背景

EMQX ECP 作为工业互联数据平台,能够满足工业场景大规模数据采集、处理和存储分析的需求,是云边协作中的重要一环,它提供了对边缘端服务 NeuronEX 及云端 EMQX 集群的统一管理,确保了对数据采集、处理、传输环节的高效控制。

其中,EMQX ECP 的多集群管理功能在分租户、分项目的基础上实现,可以通过 K8s 快速创建新集群或纳管已有的集群,并对管理的集群进行统一的运维管理。

> 参考:云端集中管控边缘服务:[利用 EMQX ECP 在 K8s 上快速部署 NeuronEX](https://www.emqx.com/zh/blog/deploy-neuronex-on-k8s-using-emqx-ecp)
本文将详细介绍如何使用 EMQX ECP 2.3.0 及以上版本,将已安装的 EMQX v5 企业版集群纳入管理,并对集群的数据进行持续监控。

## 功能原理

EMQX ECP 对 EMQX 集群的纳管,是通过 ECP 开发的集群代理应用 EMQX Agent 来实现。该代理应用作为 ECP 与纳管集群之间的桥梁,接收 ECP 端的配置及操作指令转发给集群,并收集集群的实时运维、指标数据至 ECP,形成完整的管理回路。

EMQX ECP 端收到集群的数据后,在 ECP 平台侧的运维面板中,从指标、告警、日志等多个维度监控被纳管的集群。同时,ECP 平台侧还提供 EMQX Dashboard 的入口,方便用户随时对集群进行更细致的操作和配置。

## 准备工作

1、部署 EMQX 企业版 5.7.0 或更高版本,确保 EMQX 集群所在服务器与 ECP 所在服务器之间可正常进行网络通信。

2、以系统管理员登录 ECP,或以具有组织/项目管理权限的用户身份登录。系统管理员可以对所有项目进行集群管理,非系统管理员只要具备某个组织/项目的管理权限,也可以在相应项目下纳管集群。

## 纳管步骤

纳管集群的操作分为三步:

1、创建集群纳管入口

2、下载并运行集群代理

3、注册集群代理至纳管入口

下面将分步骤具体进行介绍。

### 创建集群纳管入口

进入工作台,点击左侧菜单栏中的`数据集成``数据接入`。在数据接入页面中,项目下所有已被 ECP 管理的集群将以卡片或列表方式进行展示。

![`数据集成``数据接入`](https://assets.emqx.com/images/b1fa9e0bbb43f54ac26af1757087c9ef.png)

点击页面右上角的`纳管集群`按钮,填写集群名称及集群服务地址。集群服务地址为需要被纳管的 EMQX 集群的 dashboard 访问地址,默认是 18083 端口。集群服务地址也可以稍后通过编辑操作来进行设置或修改。

确认完成后,数据接入页面中将新增一个纳管的集群,状态为“已创建”。后续 ECP 对 集群的管理都将使用它作为入口。

### 下载并运行集群代理

选择第 1 步创建好的集群,点击`注册节点`,页面右侧将展开集群注册引导说明,指引完成集群代理的下载、安装及注册。

集群代理需要安装在纳管的 EMQX 集群所在的服务器上,根据该服务器的 CPU 架构(AMD64、ARM32 或 ARM64)选择相应的二进制包,并按照引导中`下载`部分的说明,在目标服务器上依次拷贝相应命令,下载二进制包、设置执行权限、启动集群代理。

![集群注册引导说明](https://assets.emqx.com/images/8d5be0f6ccfa6aeac516ea5f16768498.png)

集群代理成功启动后,将会在控制台上打印:EMQX Agent xxx is running!

后续也可以随时查看集群代理日志文件 `/opt/emqx/log/agent.log` 排查问题。

### 注册集群代理至纳管入口

引导`节点配置`部分帮助用户填写注册集群代理所需的信息。其中:

username 和 password 为登录 EMQX Dashboard 使用的用户名及密码。

dashboardUrl 为集群代理访问 EMQX Dashboard 的地址,默认的端口是 18083。由于集群代理与 EMQX 集群安装在同一台服务器上,可以使用内网地址。

apiUrl 为集群代理访问 EMQX REST API 的地址,EMQX v5 默认的 API 端口是 18083。同样可以使用内网地址。

![节点配置](https://assets.emqx.com/images/9b6fbf10ed35ed2ad2b89733975814b3.png)

`节点配置`部分的配置信息会自动填充入`注册`部分的命令,用户拷贝注册命令,在集群代理所在服务器上运行注册命令。同时,ECP 端数据接入页面上该纳管集群的状态将变为“注册中”。一旦注册成功完成,状态将变为“运行中”。



## 管理运维

通过集群代理成功完成 EMQX 集群的纳管后,ECP 端支持以下运维操作:

### 查看集群基本信息

集群代理以固定间隔时间(默认间隔15秒)向 ECP 上报 EMQX 集群的最新状态,数据接入页面可以查看到被管理的各个集群最新的基本信息,包括集群的启动时间、集群的创建时间(对纳管集群来说,即为在 ECP 端进行纳管的时间)、集群版本、集群包含的节点数量、集群的总连接数和允许的最大连接数

### 跳转到集群 Dashboard

如果在创建集群纳管入口时已配置好集群服务地址,那么成功纳管后数据接入页面将出现“进入 Dashboard”选项,点击即可免登录自动跳转到相应的集群服务地址。

![进入 Dashboard](https://assets.emqx.com/images/db0f47d80ecfa04daefd41d16a6d68e9.png)

### 监控集群实时运行状态

点击工作台左侧菜单栏中的`监控运维``监控`,并切换到`数据集成监控`标签页,可查看当前项目下被纳管集群的实时运行状态。

![`数据集成监控`标签页](https://assets.emqx.com/images/d8b77073dd15e62afcd37a066f517fd6.png)

监控页面上方是基础的统计信息,包括项目中所有纳管集群的总连接数、在线连接数、总规则数、运行和停止状态的规则数、总连接器数、已连接和断开连接状态的连接器数。

页面下方是非正常状态下的规则、连接器的详细信息,用户可以通过集群名称进行过滤查看,也可以通过操作栏中的“详情”按钮,跳转到集群 Dashboard 相应的规则/连接器页面,处理异常状态的规则/连接器。

### 监控集群规则及连接器异常告警

ECP 支持对集群中的规则异常和连接器异常发出告警通知。系统管理员或组织/项目管理员需要提前对项目的进行告警设置以激活集群告警:

1、点击工作台左侧菜单栏中的`监控运维``告警`,进入告警页面

2、切换到`告警设置`标签页,编辑并打开`告警状态`滑动开关。根据实际需求设置其他的配置项。

3、切换到`告警规则配置`标签页,在`云端集群`部分,对告警触发次数、告警恢复次数、告警级别进行相应的设置。

4、如果希望集群告警发生时,告警信息可以实时推送给相关人员,可以在`告警推送`标签页下配置 email 或 webhook,请确保「EMQX 告警推送」选项已开启。

![告警设置](https://assets.emqx.com/images/9093e86ce9a1a91e48ea9950c2604e68.png)

当发生集群规则或连接器异常的时候,告警列表中将会实时展示异常的相关信息,并在异常恢复后自动移入历史告警列表,用户也可以在确认异常已解除或不再需要时手动移除。

### 修改集群的最大连接数

ECP 纳管 EMQX v5 集群后,会自动设置纳管集群的初始最大连接数为 10。如果需要调整部分纳管集群的最大连接数,可以点击集群`...`按钮,打开`更多`操作菜单,通过「修改连接数」操作进行。在修改时请关注提示信息,了解 ECP 许可证允许的连接数总配额及单集群最大连接限制,在合理范围内指定连接数。

![修改集群最大连接数](https://assets.emqx.com/images/e45cd235d08a4c6a9721acd672331109.png)

完成最大连接数调整后,用户跳转到集群 Dashboard 的 License 界面,查看到的将是更新后的 License 使用情况。请注意,被纳管的集群由 ECP 统一管理最大连接数,因此即使在集群 Dashboard License 界面重置或更新其他 License,也会被 ECP 自动设置回在 ECP 上指定的最大连接数。

### 查看集群日志

ECP 的统一日志功能中也提供纳管集群日志查询的功能。该功能需要对接第三方的 Elasticsearch 日志服务器,同时在集群代理注册节点时需额外提供配置项进行日志功能的开启:

1、在系统管理界面,点击`系统设置``通用配置``日志接收器`,在类型中选择「开启」,并设置外接 Elasticsearch 服务器的连接信息,通过测试后保存。

2、在纳管集群过程中,拷贝集群注册引导页面上的`注册`命令时,在命令的最后加上参数:`--emqx-log-collection-enabled --emqx-log-collection-dir /opt/emqx/log`。其中 `/opt/emqx/log` 为集群日志所在的文件夹的位置。如果集群是使用 docker 方式安装的,建议提前配置好集群的日志映射路径。

开启纳管集群的日志功能后,在工作台的日志页面,可查看到当前项目下相应集群的日志信息。

### 向其他项目转移集群

系统管理员或组织/项目管理员可以在具备管理权限的项目之间转移纳管的集群。在需要被移动的集群上,点击`...`按钮,并选择`转移`操作,然后在弹出的对话框中,选择要转移到的目标项目。

### 取消纳管

如果不再需要 ECP 对某个集群进行统一管理,可以运行集群代理的取消注册命令:在集群代理所在的服务器上,运行`sudo /usr/local/bin/emqxee-agent`。取消注册后,ECP 端该集群入口状态变为“已创建”,后续如果希望恢复纳管,重复上述注册步骤即可。

也可以在 ECP 端点击`...`按钮,并选择`删除`操作,该操作在取消纳管后,同时也会删除 ECP 端的纳管集群入口。请注意如果集群处于“异常”状态,删除操作无法保证成功。

## 常见问题

Q:如果 ECP 或集群 Dashboard 使用 HTTPS,可以在纳管集群的过程中跳过 tls 证书验证吗?

A:如果希望跳过 ECP 及 EMQX 的 tls 证书验证,可以在注册集群代理时,在注册命令最后加上参数:`--insecure-skip-verify`



Q:如果集群由多个节点组成,需要在每个节点上分别安装集群代理吗?

A:纳管多节点 EMQX 集群,只需要在其中一个节点的服务器上安装并注册集群代理,即可完成对整个集群的纳管。



Q:可以使用同一个集群代理管理多个集群吗?

A:不可以。ECP 端纳管集群入口 - 集群代理 - EMQX 集群这三者需为一一对应的关系。



Q:如果某个已被纳管的集群无法恢复正常运行,在 ECP 端始终处于异常状态,如何在 ECP 端删除这个被纳管的集群?

A:先尝试运行集群代理的取消注册命令。如果取消注册命令也无法成功,可以在该纳管集群的操作选项中选择“重新注册”,将入口重新绑定到一个可以正常运行的集群上(也就是用同一个纳管集群入口去纳管一个其他的集群),后续再进行删除操作。



Q:纳管过程中出现的其他问题,如何定位?

A:在集群代理所在服务器上,查看代理日志 `/opt/emqx/log/agent.log`

## 结语

上文介绍了 EMQX ECP 纳管 EMQX 集群的步骤及实际运维操作。用户可以在 ECP 界面上对集群进行统一管理,包括修改集群最大连接数、集群转移、删除等操作,以及集群信息概览、集群监控、集群告警和集群日志等可视化功能,从而简化运维复杂度,提升数据分析能力,提升运维管理效率。



<section class="promotion">
<div>
咨询 EMQ 技术专家
</div>
<a href="https://www.emqx.com/zh/contact?product=solutions" class="button is-gradient">联系我们 →</a>
</section>

0 comments on commit 1dcc38c

Please sign in to comment.