风险治理
本文介绍 AutoMQ Copilot for RocketMQ 风险治理的概念定义、风险操作以及完整的风险项列表明细。
本文中提及的 RocketMQ Copilot 术语是 AutoMQ Copilot for RocketMQ 的简称,均特指安托盟丘(杭州)科技有限公司面向 Apache RocketMQ 设计实现的消息队列智能辅助运维系统。
定义
参考概述▸ ,风险项是 RocketMQ Copilot 对巡检产生的异常事件归类聚合得到的巡检结论,通过风险描述、数据详情和解决建议等信息帮助用户提前识别和修复线上集群实际潜在的问题。
风险项的作用如下:
- 描述问目标资源:风险是精确到特定的集群节点、Topic 或者 ConsumerGroup。
- 量化紧急程度:风险内部聚合了异常事件的起始时间、最后时间、异常次数以及异常的等级。
- 保留问题现场:风险内部保存了巡检发现异常时的系统状态和快照,方便用户分析问题时间点的各个情况。
- 给出解决建议:Copilot 为每个风险项定义了相应的专家建议,帮助用户按推荐流程解决问题。
内部属性
属性:关联资源
风险项是针对单个资源的异常事件进行聚合归纳得到,因此每个风险项仅针对特定的集群、Topic 和 ConsumerGroup。不同 Topic、ConsumerGroup 的异常事件会聚合成不同的风险项,需要用户独各自处理。
属性:风险等级
风险等级是 RocketMQ Copilot 针对巡检规则产生的异常事件的紧急程度进行层级划分。
按照运维习惯,主要分为如下级别:
风险级别 | 紧急程度 | 处理建议 |
---|---|---|
P0 级 | 紧急级别,出现该等级异常风险会影响线上集群收发消息核心链路,导致服务不可用 | - 必须立即处理 |
P1 级 | 严重级别,出现该等级异常风险代表非核心链路出现问题,暂不会影响线上集群收发消息核心链路,但持续未处理可能导致其他异常 | - 必须尽快处理 |
P2 级 | 一般级别,出现该等级异常风险代表集群内出现了一些不符合最佳实践的异常状态,虽然暂时不会影响业务,但仍然建议处理。 | - 可选建议处理 |
属性:风险状态
风险状态是风险项当前风险是否被处理完成的标识。系统巡检通过定时周期执行巡检规则检查,产生对应的异常事件和风险项,风险项需要由运维人员进行标记和处理。
风险状态由如下枚举组成:
- 未处理:风险人员尚未对风险项进行核实和处理。
- 已处理:运维人员已经知晓并核实风险的原因和相关信息,并确认已经处理修复。
风险治理操作
前提条件
RocketMQ Copilot 进行风险治理需要满足如下条件:
- 当前安装已经接入了至少一个集群组和一个集群,并且处于服务中状态。
- 当前安装关联的订阅计划处于服务中状态,没有到期。
查看集群组风险大盘
在初始化添加集群组和集群后,日常运维期间可以登录 RocketMQ Copilot 查看集群组风险大盘,具体操作流程如下:
- 登录RocketMQ Copilot,前往左侧菜单栏,点击风险治理。
集群组风险大盘提供如下信息:
- 集群组 Metrics 数据:查看集群组内所有集群的消息收发 TPS、存储空间、Topic 等使用量。
- 集群粒度的 Metrics 数据:查看单个集群的消息收发 TPS、存储空间、Topic 等使用量。
- 集群粒度的风险项统计:按照风险级别分组展示每个集群当前的巡检结论和风险概括。
查看并处理集群风险
针对单个集群,如果出现了风险,可以继续查看集群粒度的风险列表并下钻处理。变更巡检规则的操作流程如下:
- 登录RocketMQ Copilot,前往左侧菜单栏,点击风险治理。
- 在风险大盘页面,找到目标集群,点击进入集群风险列表页。
- 针对单个风险项,可以点击立即处理,查看风险详情数据,并根据建议处理风险。
附录:风险项列表
RocketMQ Copilot 针对集群、Topic 和 ConsumerGroup 的巡检规则,沉淀了如下风险项:
各风险项对应的系统巡检规则以及检测逻辑处理建议等明细请登录 RocketMQ Copilot 产品控制台实时查阅和体验。
风险项名称 | 风险等级 | 事件类型 | 关联的巡检规则 |
---|---|---|---|
主题自动创建被启用 | p1 | BrokerTopicAutoCreateEnableInspectionFailed | Topic 自动创建开关配置项检查 |
订阅组自动创建被启用 | p1 | BrokerConsumerGroupAutoCreateEnableInspectionFailed | ConsumerGroup 自动创建开关配置项检查 |
消息轨迹被禁用 | p1 | BrokerMessageTraceEnableInspectionFailed | 消息轨迹启用开关配置项检查 |
服务端被禁写 | p1 | BrokerWritePermissionInspectionFailed | Broker读写权限配置项检查 |
服务端被禁读 | p0 | BrokerReadPermissionInspectionFailed | Broker读写权限配置项检查 |
服务端强制路由注册被禁用 | p0 | BrokerForceRegistrationEnableInspectionFailed | Broker强制定时进行路由注册配置项检查 |
服务端快速失败被禁用 | p1 | BrokerFastFailureEnableInspectionFailed | Broker请求快速失败开关配置项检查 |
慢消费者被禁用 | p0 | BrokerSlowConsumerDisableInspectionFailed | 禁用慢消费者消费功能开关配置项检查 |
服务端配置不一致 | p0 | BrokerConfigConsistencyInspectionFailed | 集群内 Broker 配置一致性检查 |
服务端版本不一致 | p0 | BrokerVersionConsistencyInspectionFailed | 集群内 Broker 版本一致性检查 |
内核 swappiness 配置过大 | p0 | BrokerKernelParamsVmSwappinessInspectionFailed | 内核参数vm.swappiness检查 |
内核文件映射数过小 | p0 | BrokerKernelParamsVmMaxMapCountInspectionFailed | 内核参数vm.max_map_count检查 |
内核单个进程最大可用 fd 数过小 | p0 | BrokerProcessMaxFileDescriptorInspectionFailed | 内核参数单个进程最大可打开的 fd 数检查 |
主题各个 Broker 队列数不一致 | p1 | TopicQueueNumConsistencyInspectionFailed | Topic 队列数一致性检查 |
主题跨多个集群分布 | p1 | TopicAcrossMultipleClusterInspectionFailed | Topic 跨集群分布检查 |
消费者组订阅关系不一致 | p0 | ConsumerGroupSubscriptionConsistencyInspectionFailed | ConsumerGroup 订阅关系一致性检查 |