巡检规则管理
本文介绍 AutoMQ Copilot for RocketMQ 巡检规则的概念定义、管理操作以及完整的巡检规则列表明细。
本文中提及的 RocketMQ Copilot 术语是 AutoMQ Copilot for RocketMQ 的简称,均特指安托盟丘(杭州)科技有限公司面向 Apache RocketMQ 设计实现的消息队列智能辅助运维系统。
定义
参考概述▸ ,巡检规则是 RocketMQ Copilot 中针对一个或者多个资源的一个或者多个Metrics指标、状态而定义的检查规则。
巡检规则的作用如下:
- 约定巡检的目标资源,是集群节点还是 Topic 或者 ConsumerGroup。
- 约定巡检的执行行为,例如巡检周期、异常检测条件、是否可以跳过部分资源等。
- 约定巡检的结果,产生什么类型的异常事件。
内部属性
属性:资源类型
资源类型是指 RocketMQ Copilot 巡检规则每个巡检规则项的检查目标是什么粒度的资源,主要支持如下资源类型:
- 集群:该类型的巡检规则检查 RocketMQ Broker 集群,包括全局的配置、broker 节点的异常状态等,产出的异常事件主体为集群。
- Topic:该类型的巡检规则检查特定 Topic 的异常状态,产出的异常事件主体为 Topic。
- ConsumerGroup:该类型的巡检规则检查特定 ConsumerGroup 的异常状态,产出的异常事件主体为 ConsumerGroup。
不同资源类型代表异常风险的范围不同,集群类型的风险往往是全局风险,而 Topic 和 ConsumerGroup 资源类型的风险一般是局部业务风险。
属性:巡检周期
巡检周期是指 RocketMQ Copilot 巡检规则定时执行的时间间隔。系统巡检在没有异常的情况下会一直按固定的巡检周期重复检查。
巡检周期根据不同的巡检规则项会有差异,一般有如下周期:
- 1 分钟
- 10 分钟
- 1 小时
- 12 小时
巡检周期属性,暂不允许用户自由修改。
属性:异常检测条件
异常检测条件是 RocketMQ Copilot 巡检规则中定义当次检查不通过产出异常事件的逻辑表达式。一般有如下类型:
- 阈值判断类型:比如判断磁盘空间占用是否超过阈值。
- 一致性比对类型:比如比对配置一致性、订阅关系一致性等巡检规则。
根据巡检规则的差异,部分巡检规则支持用户自定义调整检测条件中的部分阈值变量。
属性:关联异常事件
关联异常事件是指巡检规则判定异常检测条件成立时自动生成的异常事件。RocketMQ Copilot 内置事件存储系统,支持历史事件的查询和分析。关于 RocketMQ Copilot 的事件列表定义参考 AutoMQ Copilot 事件列表▸ 。
管理巡检规则
前提条件
RocketMQ Copilot 巡检规则由系统内部自动生成,默认情况下在接入集群后即可自动运行,无需用户手动创建。
查看或者变更巡检规则,需要满足如下条件:
- 当前安装已经接入了至少一个集群组和一个集群,并且处于服务中状态。
- 当前安装关联的订阅计划处于服务中状态,没有到期。
查看巡检规则
用户可以在添加集群组和集群后自主查看当前生效的巡检规则,RocketMQ Copilot 按照资源类型分组展示系统巡检规则。具体操作流程如下:
- 登录RocketMQ Copilot,前往左侧菜单栏,点击巡检规则。
- 用户可以根据资源类型切换系统巡检规则 Tab 页面,查看各资源类型相关的巡检规则。
变更巡检规则
部分巡检规则支持用户进行变更,主要的变更操作有如下:
- 调整异常检测条件参数:仅推荐在默认的异常检测条件不符合需求的情况下调整。
- 调整检测周期:仅推荐在默认的异常周期不符合需求的情况下调整。
- 临时关闭或者启用单个巡检规则:仅推荐在异常风险处理过程中临时关闭巡检,日常服务中请保持巡检开启。
当前系统巡检规则只支持集群组粒度生效,不支持针对单个集群或者 Broker 节点的自定义参数配置。
部分高危且重要的系统巡检规则不支持用户关闭。
变更巡检规则的操作流程如下:
- 登录RocketMQ Copilot,前往左侧菜单栏,点击巡检规则。
- 用户可以根据资源类型切换系统巡检规则 Tab 页面,找到目标巡检规则,修改参数后点击确认生效。
附录:巡检规则列表
RocketMQ Copilot 基于十多年 RocketMQ 运维经验沉淀了若干针对集群、Topic 和 ConsumerGroup 的巡检规则,列举如下:
关于系统巡检规则的检测逻辑、异常风险和业务处理经验请登录 RocketMQ Copilot 产品控制台实时查阅和体验。
资源类型 | 规则名称 | 检查周期 | 强制开启 | 支持自定义阈值 |
---|---|---|---|---|
集群类型 | 集群高危风险版本检查 | 24h | 否 | 是 |
集群类型 | 集群内 Broker 版本一致性检查 | 10min | 是 | 否 |
集群类型 | 集群内 Broker 配置一致性检查 | 10min | 是 | 否 |
集群类型 | Topic 自动创建开关配置项检查 | 10min | 是 | 否 |
集群类型 | 默认 Topic 队列数配置项检查 | 10min | 否 | 否 |
集群类型 | ConsumerGroup 自动创建开关配置项检查 | 10min | 是 | 否 |
集群类型 | Consumer 数量变动通知开关配置项检查 | 10min | 否 | 否 |
集群类型 | 消息轨迹 Topic 启用开关配置项检查 | 10min | 否 | 否 |
集群类型 | 消息轨迹启用开关配置项检查 | 10min | 否 | 否 |
集群类型 | Broker读权限配置项检查 | 10min | 是 | 否 |
集群类型 | Broker写权限配置项检查 | 10min | 是 | 否 |
集群类型 | Consumer批量冷读消息量配置项检查 | 10min | 否 | 是 |
集群类型 | Broker强制定时进行路由注册配置项检查 | 10min | 是 | 否 |
集群类型 | Broker路由注册超时时间配置项检查 | 10min | 是 | 是 |
集群类型 | Broker定时注册周期配置项检查 | 10min | 是 | 否 |
集群类型 | Broker请求快速失败开关配置项检查 | 10min | 是 | 否 |
集群类型 | Broker消息发送任务队列最大等待时间配置项检查 | 10min | 是 | 是 |
集群类型 | Broker消息拉取任务排队最大等待时间配置项检查 | 10min | 否 | 是 |
集群类型 | 客户端心跳任务排队最大等待时间配置项检查 | 10min | 否 | 是 |
集群类型 | 消息事务提交最大等待时间配置项检查 | 10min | 否 | 是 |
集群类型 | SQL92 属性过滤开关配置项检查 | 10min | 否 | 否 |
集群类型 | ConsumeQueueExt 启用开关配置项检查 | 10min | 否 | 否 |
集群类型 | 禁用慢消费者消费功能开关配置项检查 | 10min | 否 | 否 |
集群类型 | PutMessage 自旋锁启用开关配置项检查 | 10min | 是 | 否 |
集群类型 | Slave节点读取消息开关配置项检查 | 10min | 否 | 否 |
集群类型 | 物理位点偏移内存占用比例阈值配置项检查 | 10min | 是 | 是 |
集群类型 | 文件预热开关配置项检查 | 10min | 否 | 否 |
集群类型 | 堆外内存池写入开关配置项检查 | 10min | 否 | 否 |
集群类型 | 通信网络 IO 读写和编解码线程数配置项检查 | 10min | 否 | 否 |
集群类型 | 使用堆内存进行消息传输开关配置项检查 | 10min | 是 | 否 |
集群类型 | 内核参数vm.swappiness检查 | 10min | 是 | 是 |
集群类型 | 内核参数vm.max_map_count检查 | 10min | 是 | 是 |
集群类型 | 内核参数单个进程最大可打开的 fd 数 检查 | 10min | 是 | 是 |
集群类型 | 消息保存时长完整性检查 | 10min | 是 | 是 |
集群类型 | Broker 路由注册报文大小检查 | 10min | 是 | 是 |
集群类型 | Broker 消息发送线程池任务排队检查 | 10min | 是 | 是 |
集群类型 | Broker 消息拉取线程池任务排队检查 | 10min | 是 | 是 |
集群类型 | Broker 消息查询线程池任务排队检查 | 10min | 是 | 是 |
集群类型 | 执行 PutMessage 耗时长检查 | 即时 | 否 | 否 |
集群类型 | 待刷盘数据量检查 | 1min | 是 | 是 |
集群类型 | Broker 版本一致性检查 | 1h | 是 | 否 |
集群类型 | Broker 注册数据大小检查 | 1h | 是 | 是 |
集群类型 | Broker 堆外内存池待提交数据量检查 | 10min | 是 | 是 |
集群类型 | Broker 之间入流量热点检查 | 10min | 是 | 是 |
集群类型 | Broker 之间出流量热点检查 | 10min | 是 | 是 |
集群类型 | 集群内 Broker 流量热点检查 | 1min | 否 | 是 |
集群类型 | Broker 主备节点同步延迟检查 | 1min | 是 | 是 |
集群类型 | 堆外内存池待提交数据量检查 | 1min | 是 | 是 |
集群类型 | ConsumeQueue和Commitlog一致性检查 | 10min | 是 | 否 |
集群类型 | NameServer路由一致性检查 | 10min | 是 | 否 |
集群类型 | 脚本重复性启动检查 | 10min | 是 | 否 |
集群类型 | 集群磁盘空间占用检查 | 10min | 是 | 是 |
集群类型 | 集群磁盘 IO 水位检查 | 1min | 是 | 是 |
集群类型 | 集群 CPU 水位检查 | 1min | 是 | 是 |
集群类型 | 网络读写缓冲区检查 | 1min | 否 | 是 |
集群类型 | Pagecache 脏页检查 | 1min | 否 | 是 |
集群类型 | 半事务消息检查 | 1min | 是 | 否 |
集群类型 | 消息定时清理任务检查 | 1min | 是 | 否 |
集群类型 | 消息逻辑队列分发延迟检查 | 1min | 是 | 是 |
集群类型 | 死信消息队列消息数检查 | 1min | 否 | 是 |
集群类型 | 消息堆积导致随机 IO 延迟检查 | 1min | 否 | 否 |
集群类型 | Broker注册链路RPC成功率检查 | 1min | 否 | 是 |
集群类型 | Broker 运行命中已知缺陷检查 | 24h | 否 | 否 |
Topic类型 | Topic 路由一致性检查 | 1h | 是 | 否 |
Topic类型 | Topic 队列数一致性检查 | 1h | 是 | 否 |
Topic类型 | Topic 跨集群分布检查 | 1h | 是 | 否 |
Topic类型 | Topic 队列和消费者均衡度检查 | 10min | 是 | 否 |
Topic类型 | Topic队列写入热点检查 | 1h | 否 | 是 |
Topic类型 | Topic 跨集群分布检查 | 10min | 否 | 否 |
Topic类型 | 定时消息热点时间戳检查 | 10min | 否 | 否 |
Topic类型 | 发送RT波动检查 | 10min | 否 | 是 |
Topic类型 | 事务消息回查异常检查 | 10min | 否 | 否 |
ConsumerGroup 类型 | ConsumerGroup 订阅关系一致性检查 | 10min | 是 | 否 |
ConsumerGroup 类型 | 订阅关系复杂度检查 | 10min | 否 | 否 |
ConsumerGroup 类型 | 客户端版本不一致检查 | 10min | 否 | 否 |
ConsumerGroup 类型 | 消费者队列负载均衡检查 | 10min | 否 | 否 |
ConsumerGroup 类型 | 消费者提交位点回退检查 | 即时 | 否 | 否 |
ConsumerGroup 类型 | 消费者消费超时异常检查 | 10min | 是 | 是 |
ConsumerGroup 类型 | 消费者重试超过限制次数检查 | 10min | 是 | 否 |
ConsumerGroup 类型 | 是否出现队列未被分配的现象 | 10min | 是 | 否 |
ConsumerGroup 类型 | 消费堆积和延迟陡增检查 | 10min | 否 | 否 |
ConsumerGroup 类型 | 消费RT陡增检查 | 10min | 否 | 否 |
ConsumerGroup 类型 | 消费者提交位点回退检查 | 10min | 是 | 否 |
ConsumerGroup 类型 | 重试队列热点检查 | 10min | 是 | 否 |
Client客户端类型 | 消费者并发度参数检查 | 10min | 否 | 是 |
Client客户端类型 | 消费者超时时间参数检查 | 10min | 否 | 是 |
Client客户端类型 | 消费者鉴权参数异常检查 | 10min | 否 | 是 |
Client客户端类型 | 生产者鉴权异常检查 | 10min | 否 | 是 |