Skip to Main Content

日常运维和版本升级

本文介绍使用 AutoMQ Copilot for RocketMQ 过程中的日常运维和版本升级操作说明。

本文中提及的 RocketMQ Copilot 术语是 AutoMQ Copilot for RocketMQ 的简称,均特指安托盟丘(杭州)科技有限公司面向 Apache RocketMQ 设计实现的消息队列智能辅助运维系统。

日常运维

RocketMQ Copilot 安装是一个后台常驻型工具服务。安装成功后,Copilot 默认会一直运行,在后台周期性执行系统巡检和异常检测,同时对外提供图形化 web 界面,方便用户进行查询和分析操作。

参考 RocketMQ Copilot 服务约定,Copilot 服务默认只部署一个节点,不具备高可用能力,如果安装的机器节点物理宕机,则 Copilot 需要人工进行异常恢复。

RocketMQ Copilot 是针对 Apache RocketMQ 提供的辅助诊断分析工具,对 RocketMQ 集群没有任何侵入,Copilot 自身如果运维变更或者宕机异常,并不会影响 RocketMQ 集群的服务可用性。

场景:卸载

如果需要卸载 RocketMQ Copilot,参考以下操作方式:

在线卸载

如果安装 RocketMQ Copilot 的主机环境支持访问互联网,参考如下操作方式进行卸载。


# 执行在线卸载
$ bash -c "$(curl -sSL https://download.automq.com/automq-copilot-for-rocketmq/stop.sh)"

=====================================================
Uninstall AutoMQ Copilot for RocketMQ 🚀
=====================================================

# 停止旧有进程
- Copilot is running [31035], stop it? [y/n] y
- Copilot stopped

- Remove all copilot data? [y/n] y
- Deleted

RocketMQ Copilot has been uninstalled!

卸载过程中会先停止 Copilot 进程,然后删除与 Copilot 相关的所有数据。

离线卸载

如果安装 RocketMQ Copilot 的主机环境处于企业内网,不支持访问互联网,参考以下操作方式进行手动卸载。


# grep 出 copilot
$ ps aux | grep -v grep | grep copilot-app
admin 44998 1.9 1.0 415840496 160144 s021 S 8:33下午 0:19.73 /Users/aiyangkun/Library/JavaVirtualMachines/zulu8.72.0.17-ca-jdk8.0.382-macosx_aarch64/zulu-8.jdk/Contents/home/bin/java -Dout=/Users/aiyangkun/.copilot/script/../dist/questdb.log.conf -Dhome=/Users/aiyangkun -jar /Users/aiyangkun/.copilot/script/../dist/copilot-app.jar -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=160m -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:-UseParNewGC -verbose:gc -Xloggc:/Users/aiyangkun/.copilot/logs/gc/gc_%p_%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m
# 手动关闭相应进程
$ kill 44998
# 删除 copilot 数据
$ rm -rf $home/.copilot

场景:宕机恢复

如果 RocketMQ Copilot 安装的机器节点遇到物理宕机的情况,只需要等机器节点恢复后按照如下流程操作重新启动 RocketMQ Copilot 服务即可完成恢复。


cd $home/.copilot && bash script/run.sh

RocketMQ Copilot 依赖本地文件系统存储内部的巡检规则元数据以及动态产生的Metrics、Events 数据,存储文件目录位于:${HOME}/.copilot

因此,不得随意删除和变更 RocketMQ Copilot 本地生成的存储文件目录。

场景:迁移安装

RocketMQ Copilot 订阅计划约定了软件授权安装的次数,每一次成功安装都需要和订阅计划进行关联和激活,同时也会占用订阅计划的配额。

在生产环境使用中可能出现如下情况需要迁移安装:

  • 原安装机器节点被异常删除释放,导致安装失效,需要重新安装。
  • 原安装机器节点因环境变化,需要迁移到新的机器重新安装。

如出现上述情况,请参考如下流程:

参数调整

RocketMQ Copilot 首次安装会采用默认配置参数,如果默认参数不能满足用户需求,可以尝试在系统配置中修改参数配置,实时生效。

当前,RocketMQ Copilot 支持查看和修改如下参数配置。

参数配置默认值和修改范围是否可以修改说明和建议
数据最长保存时间- 默认:72 小时
- 范围:参考订阅计划限制
不可修改RocketMQ Copilot 会定时清理最早产生的异常事件、Metrics 数据直到满足该最长保持时间。

注:如果本地文件系统剩余空间不足以满足该时长设置,则会强制清除最早数据。
数据保存空间占用- 查看实时消耗不可修改RocketMQ Copilot 本地各项数据实时占用的存储空间,方便用户评估观察。

修改默认系统参数,参考如下步骤:

  1. 登录RocketMQ Copilot,前往顶部菜单栏,点击系统配置。

  2. 找到系统配置项,设置新的配置参数,点击修改即可实时生效。

版本升级

参考 RocketMQ Copilot 版本记录▸ ,用户可以升级 RocketMQ Copilot 到更新版本。

前置条件

用户操作版本升级,需要提前知晓如下情况:

  1. 当前安装必须处于服务中状态,关联的订阅计划没有过期。
  2. RocketMQ Copilot 升级需要短暂的服务重启,不会影响 RocketMQ 集群的可用性,但会导致升级时间段的 Metrics 数据缺失。

在线升级

在线升级

默认情况下,使用 RocketMQ Copilot 在线安装脚本即可升级到最新版本。


# 执行在线安装
$ bash -c "$(curl -sSL https://download.automq.com/automq-copilot-for-rocketmq/start.sh)"

=====================================================
Welcome to AutoMQ Copilot for RocketMQ 🚀
=====================================================

# 停止旧有进程
- Copilot is running [33177], stop it? [y/n] y
- Copilot stopped

- Continue? [y/n] y
- Prepare to reinstall and start

# 保留原始数据
- Copilot data already exists, keep it? [y/n] y
- Keeping existing data

Installing online, please wait...

✅ Download AutoMQ Copilot for RocketMQ

Starting...

# 启动成功
=====================================================
Congratulation! 🎉🎉🎉
Please visit http://localhost:9898
=====================================================

离线升级

离线安装▸ 类似,只需要手动下载最新版本的 RocketMQ Copilot 并重新执行安装即可。


# 下载压缩包到本地
$ curl -OL https://download.automq.com/automq-copilot-for-rocketmq/rocketmq-copilot.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 93.6M 100 93.6M 0 0 6627k 0 0:00:14 0:00:14 --:--:-- 2789k

# 解压压缩包
$ tar -zxf rocketmq-copilot.tar.gz

# 执行离线安装
$ bash script/start_offline.sh

=====================================================
Welcome to AutoMQ Copilot for RocketMQ 🚀
=====================================================

# 停止旧有进程
- Copilot is running [33491], stop it? [y/n] y
- Copilot stopped

- Continue? [y/n] y
- Prepare to reinstall and start

# 保留原始数据
- Copilot data already exists, keep it? [y/n] y
- Keeping existing data

Installing offline...

✅ Related files are ready

Starting...

# 启动成功
=====================================================
Congratulation! 🎉🎉🎉
Please visit http://localhost:9898
=====================================================

webhook 管理

webhook 集成是 RocketMQ Copilot 提供的数据通知和集成功能,用户可以在RocketMQ Copilot 系统配置里添加管理自定义的 webhook 通道,后续可以在风险告警、SLO 告警、容量规划预警等功能中将预警和告警信息发送到指定的 webhook 中,实现数据的集成和通知。

RocketMQ Copilot 目前支持如下 Webhook 类型:

webhook 类型消息类型适用场景
钉钉机器人卡片消息企业使用钉钉 IM 工具,可以将通知告警信息发送到指定的钉钉群。
企业微信机器人卡片消息企业使用企业微信 IM 工具,可以将通知告警信息发送到指定的企业微信群。
飞书机器人卡片消息企业使用飞书 IM 工具,可以将通知告警信息发送到指定的飞书群。
自定义自定义消息企业提供自定义的 HTTP 服务,将通知告警等信息先发送到自定义服务,再做处理和分发。

添加 webhook

用户安装 RocketMQ Copilot 后即可添加 webhook。操作流程如下:

  1. 登录 RocketMQ Copilot 系统,前往系统管理页面。
  2. 点击添加 webhook,填写 webhook 名称,并选择对应的类型。
  3. 根据不同的webhook 类型,填写完整的配置信息,点击确定。系统会进行连通性测试,测试通过后会完成添加。

如果添加钉钉、企业微信、飞书等 IM 工具的 webhook,需要确保 RocketMQ Copilot 部署的机器能够连通公网,否则会出现无法连通的问题。如果是钉钉 webhook,需要设置签名密钥。

自定义 webhook 参数

创建钉钉、企业微信、飞书等 IM 工具的 webhook,RocketMQ Copilot 会按照预定的通知模板发送通知,创建自定义 webhook,用户可以自定义通知内容。

自定义 webhook 使用标准 HTTP 协议通信,支持用户设置 HTTP 请求的如下参数:

参数项输入范围
HTTP Method- POST
- GET
Content-Type- application/x-www-form-urlencoded
- application/json
Headers- 个数限制:10 个
- 内容:用户自定义输入
Params- 个数限制:10 个
- 内容:用户自定义输入或者选择内置的系统变量
- 系统变量支持:
- $ALERT_TITLE:告警标题
- $ALERT_SUBTITLE:告警明细子标题
- $COPILOT_IP:安装信息
- $ALERT_RESOURCE:告警资源信息
- $ALERT_DATE:告警时间
- $ALERT_CONDITION:告警条件
- $ALERT_SUGGERSTION:告警建议

编辑 webhook

用户可以对已经存在的 webhook 进行配置编辑,一般主要用于修改配置名称、webhook 的详细 url 参数等场景。点击对应 webhook 的编辑按钮,完成信息更新和确定。

删除 webhook

如果部分 webhook 已经失效,需要删除,可以点击删除按钮,RocketMQ Copilot 会校验当前 webhook 是否被风险告警、SLO 告警等模块使用。如果没有被使用则可以被删除,如果已经被使用,需要先去除配置引用再删除对应的 webhook。