运维场景
在数据库日常运维中,从“告警出现”到“问题闭环”通常要经历一条跨工具、跨角色、跨系统的长链路,企业普遍面临以下两类挑战:
告警发现滞后、噪音大、经验难沉淀:数据库告警需要人工登录控制台查看,缺少主动推送机制,故障发现时间被拉长;传统告警系统仅推送原始事件,缺少智能聚合与根因分析,DBA 需要逐条排查;诊断经验依赖资深 DBA 个人能力,很难标准化。
异常处理链路长、跨角色协作成本高:CPU 飙高告警后,DBA 需在控制台与 IM 群间反复跳转:查日志、发建议、等研发确认、再切回控制台执行。沟通等待与系统切换双重耗时,极易拉长故障窗口。
解决方案
腾讯云数据库 AI 服务 DatabaseClaw 通过告警订阅分析能力与 Channel IM 接入能力,在同一个 IM 群内串起“告警 > 诊断 > 建议同步 > 业务确认 > DBA 处置 > 结果回写”完整闭环。
主动感知:告警订阅定时任务自动拉取腾讯云可观测平台(Monitor)与数据库智能管家(DBbrain)的双路告警,自动诊断分析,通过 Webhook 或 Channel 推送到业务 IM 群。
群内诊断与追问:直接对话机器人追问会话详情、SQL、执行计划等信息,判断是否需要处置,无需切控制台。
DBA 群内闭环执行:一旦业务确认需要处置,DBA 在同一个群里直接下达终止会话、SQL 限流等指令,机器人生成二次确认卡片、执行操作、自动把结果回写到群内并留痕审计。
方案优势
一群闭环、跨角色不切工具:告警诊断、业务确认、DBA 处置、结果回写都在同一个业务 IM 群内完成,DBA 不再需要“控制台 > IM > 控制台”来回切换,故障影响时间大幅压缩。
AI 诊断质量对齐资深 DBA:AI 对高危告警自动完成事实、根因、建议、证据的完整分析,业务和 DBA 拿到的都是可直接决策的信息,而不是原始事件。
处置权限内建收敛:只读诊断能力可以放心开放给业务研发,写操作(终止会话/限流等)严格收敛到 DBA 值班人员范围,配合二次确认卡片,一次误操作也不会漏过人工审查。
应用场景
场景 | 核心痛点 | 方案关键能力 |
大促/突发流量下的紧急止损 | CPU 突增等场景需要快速终止长事务或临时限流,等待控制台操作会拉长业务影响时间。 | 值班 DBA 直接在群内触发处置,配合二次确认卡片,秒级完成闭环。 |
非工作时段高危告警 | 告警无人响应,缺少标准化处置流程。 | 定时分析 + IM 主动推送 + AI 自动诊断,值班人员到群即可开始处置。 |
研发自助排障 | 研发怀疑是自己的代码或压测脚本触发问题,需要先自查再决定是否升级。 | 群内 @ 只读机器人自助查询会话、SQL、执行计划,无需等待 DBA。 |
多业务组统一闭环流程 | 多个业务组都需要“诊断 + 处置”两级流程,逐个手动搭建成本高。 | |
告警风暴 | 低优先级噪音大,高危告警被淹没。 | 多层聚合 + 优先级评分 + Top N 深度诊断,每小时聚焦最需关注的 3~5 条。 |
整体架构

该架构中 DatabaseClaw 侧运行两个实例,这两个实例都接入同一个业务 IM 群,配合 IM 平台侧的可见范围设置,业务研发只能触达只读机器人做诊断查询,DBA 才能触达可写机器人执行处置。
只读角色实例:承载对全体群成员的自助诊断、分析、查询能力。
可写角色实例:承载 DBA 的处置能力。
实践建议
1. 控制告警范围,优先处理高危异常
建议按业务标签或实例范围配置告警订阅,优先覆盖高危告警,并默认采用“无风险不推送”策略,减少 IM 噪音,让业务和 DBA 聚焦真正需要处理的问题。
2. 权限与处置分层,所有写操作必须确认
只读诊断能力面向业务研发开放,可写处置能力仅收敛给 DBA/值班人员;终止会话、限流等运维动作必须展示确认卡片,明确目标、影响和回滚方式,高危动作建议增加确认码或超时取消机制。
3. 规范推送格式,先演练再上线
告警消息建议包含实例、异常指标、影响判断、处理建议、业务确认入口和处置结果回写;上线前先用演练告警验证“推送到群 > 业务确认 > DBA 处置 > 结果回写”链路是否顺畅。
操作步骤(以企业微信为例)
说明:
本节以企业微信为例演示完整流程。飞书、钉钉的 DatabaseClaw 侧操作步骤相同,仅在 IM 平台侧获取凭证与配置可见范围的界面不同,差异点已在各步骤中标注。
步骤一:前置准备
条件 | 说明 |
腾讯云账号 | 已完成实名认证,且已开通腾讯云数据库 AI 服务。 |
CAM 权限 | 操作人具备 QcloudDatabaseClawAdminFullAccess(管理端)策略;如需自建可写角色,还需具备 CAM 创建角色及关联策略的权限。 |
可观测平台 | 已为目标 MySQL 实例配置可观测平台(Monitor)告警策略。 |
步骤二:创建两个 DatabaseClaw 实例
1. 登录 数据库 AI 服务控制台。
2. 分别创建两个实例,例如命名为 claw-readonly(承载诊断查询)与 claw-readwrite(承载 DBA 处置)。
步骤三:确认或创建实例的用户角色
只读实例(claw-readonly):无需额外操作
首次创建实例时会自动关联默认全局只读角色 DatabaseClaw_AI_GlobalReadOnly(覆盖主流数据库产品的只读能力),可直接承载诊断查询能力。
可写实例(claw-readwrite):基于可写角色模版自建角色并绑定实例
1.1 登录 数据库 AI 服务控制台。
1.2 在左侧导航栏选择后台管理 > 团队管理 > 用户角色。
1.3 在页面上方单击 DatabaseClaw 代创建,弹出选择角色模板对话框。

1.4 选择可写角色模板,单击下一步。

1.5 在确认角色模板 - 可写对话框中,确认或调整以下字段:
推荐角色名称:系统默认生成形如 DatabaseClaw_AI_ReadWrite_YYYYMMDDxxxxxx,可保留默认或按团队规范调整(以 DatabaseClaw_ 开头,长度不超过 60)。
推荐角色描述:可保留默认或补充业务说明。
标签:可选,按需添加。
策略信息:确认包含 14 条只读 + 13 条 FullAccess + 1 条 Deny 兜底策略(DatabaseClaw_DenyDestructive_v2,永久拒绝销毁、扩缩容、库表删除、网络变更等高危动作)。

1.6 在页面底部勾选我已了解,单击 DatabaseClaw 代创建完成创建。
1.7 在用户角色列表页面,找到刚创建的可写角色,在操作列单击关联实例,在弹窗中勾选 claw-readwrite 实例并确认(可写角色仅支持指定实例生效,不建议设为全局生效)。变更实例角色后,系统会提示受影响实例即将重启(通常5分钟内完成角色变更,变更期间实例不可用)。
步骤四:分别接入两个企业微信机器人 Channel
1. 在企业微信工作台智能机器人分别创建两个机器人,创建时分别配置各自的可见范围:只读诊断机器人设为较大范围(如全体业务研发),可写处置机器人设为 DBA/值班人员名单。

2. 两个机器人均选择 API 模式创建、连接方式选使用长连接,分别获取各自的 Bot ID 与 Secret。
3. 登录 数据库 AI 服务控制台,在左侧导航栏选择实例管理,分别在 claw-readonly 与 claw-readwrite 实例卡片的 Channel 接入中添加对应机器人凭证。
4. 将两个机器人都加入到同一个业务 IM 群。
说明:
飞书差异点:机器人对应飞书自建应用,可见范围通过版本管理与发布创建新版本时的可用范围配置;每次调整可见范围需重新发布版本。详细的接入飞书的操作请参见 接入飞书。

钉钉差异点:机器人对应钉钉企业内部应用,可见范围通过应用发布页配置;钉钉渠道对应迭代中功能,接入前请与实际功能核对。详细的接入钉钉的操作请参见 接入钉钉。
步骤五:创建告警订阅定时任务
1. 登录 DatabaseClaw 控制台。
2. 在左侧导航栏选择 DatabaseClaw > 实例管理,单击目标实例卡片进入对话页面。
3. 在对话页面顶部工具栏,单击定时任务。

4. 在右侧弹框上方单击创建任务。
5. 根据页面提示配置定时任务。创建时将结果投递设置为 Webhook,并填写 Webhook 地址。
执行内容填写内容参考:
对广州地域所有 MySQL 实例进行告警订阅分析,仅订阅高危告警(DBbrain的致命告警,可观测平台的Serious告警),分析后按照以下格式推送结果:**【MySQL 告警订阅分析】****报告链接**:[查看完整报告]({{cos链接}}),使用 markdown 链接格式**分析时间**:**实例范围**:**分析窗口**:**数据源**:显示订阅的告警数据源与告警策略等级**告警概要**:一句话概述告警分布与涉及实例数无风险跳过推送,如有风险则按照以下格式推送:**{{instance_id}} - {{告警概述}} **> 实例:{{instance_name}}> 分析:一句话简述{{core_issue}}+{{key_evidence}}> 建议:{{action}}

群内对话示例
以下示例演示典型的端到端闭环交互:

整个过程在同一个 IM 群内完成,无需任何工具切换。只读机器人始终只提供查询与诊断信息,处置类指令仅可写机器人识别、且需要人工点击确认后才会实际执行。
用户角色与实例配置策略说明
要在群内实现“诊断能力对业务开放、处置能力收敛给 DBA”,需要用两个 DatabaseClaw 实例分别承载只读诊断与可写处置能力(用户角色是“按实例绑定”的,同一实例只能绑定 1 个角色,因此权限边界必须落在两个独立实例上)。
只读实例:直接复用默认全局只读角色
DatabaseClaw 首次创建实例时会自动代建默认全局只读角色 DatabaseClaw_AI_GlobalReadOnly,覆盖腾讯云主流数据库产品的只读能力(14 条只读策略),无需额外配置即可承载诊断查询能力。如需将只读能力进一步限定到特定数据库实例范围,可参见 多业务部门 DatabaseClaw IM 接入与资源隔离实践教程 中"资源级只读角色"的做法自建限定策略。
可写实例:基于可写角色模版自建、指定实例生效
1.1 在用户角色管理页选择可写角色模板(在只读基础上叠加各产品写权限,并强制叠加 Deny 兜底策略),或前往 CAM 控制台手动关联对应写权限策略。
1.2 可写角色不允许设为全局生效,创建后必须选择指定实例生效,仅关联到可写处置的 DatabaseClaw 实例。
说明:
可写角色代创建时会强制叠加 DatabaseClaw_DenyDestructive_v2 Deny 兜底策略,永久拒绝销毁实例、扩缩容、网络变更、库表删除等高危动作。请不要在 CAM 控制台手动解绑该 Deny 策略,否则可写实例将失去这层安全兜底。
IM 平台侧机器人可见范围设置
DatabaseClaw 用户角色决定“AI 能执行哪些操作”,而 IM 平台侧的可见范围决定“哪些人能触达机器人对话”,两者是独立机制、需要分别配置:
IM 渠道 | 配置入口 | 效果 |
企业微信 | 企业微信工作台智能机器人创建机器人时,在基础信息页配置可见范围(添加使用人员/部门)。 | 只有在可见范围内的成员才能与该机器人对话;不在范围内的成员发消息会收到平台侧的“不在可使用范围”提示。 |
飞书 | 飞书开放平台应用详情页版本管理与发布创建新版本时,在可用范围中编辑选择使用人员。 | 仅在可用范围内的用户可以搜索到、使用该企业自建应用;每次更新可用范围需重新创建并发布版本。 |
钉钉 | 钉钉开放平台企业内部应用应用发布页配置可见范围(全部员工/指定部门或人员)。 | 仅可见范围内的员工能看到并使用该应用机器人。 |
建议将只读诊断机器人的可见范围设为全体业务研发,可写处置机器人的可见范围严格收敛到 DBA/值班人员名单,并随值班排班及时更新,调整 IM 侧可见范围通常比调整 CAM 角色更轻量、无需重启实例,适合作为值班轮换的日常操作入口。
说明:
IM 平台侧的可见范围只是“是否能对话”的第一层门槛,不等同于“能执行什么操作”。即便某个用户意外进入了可写机器人的可见范围,其可执行的操作仍受 DatabaseClaw 可写角色的 CAM 权限边界与 Skill 层二次确认约束,三层机制独立生效,互为兜底。
群聊场景下,只有 @ 机器人的消息才会触发响应(企业微信、飞书、钉钉三渠道一致);私聊场景各渠道略有差异,企业微信/飞书私聊无需 @,钉钉私聊同样直接发消息即可触发。
钉钉 Channel 接入对应迭代中功能,接入前请与实际功能核对。
常见问题
Q1:告警分析报告中没有 DBbrain 告警数据?
请确认以下几点:
目标 CDB 实例已开通 DBbrain 服务。
创建定时任务时启用了 DBbrain 数据源。
指定的时间窗口内确实存在 DBbrain 检测到的异常事件。
如果使用全量模式(未指定具体实例 ID),DBbrain 数据源将自动跳过,仅分析 Monitor 告警。建议显式指定实例范围以启用 DBbrain 数据源。
Q2:如何修改或删除已创建的定时任务?
可通过 DatabaseClaw 对话界面或控制台定时任务列表管理。对话方式示例:
查看定时任务:“查看当前所有告警订阅定时任务”
修改任务参数:“修改指定告警订阅任务的执行时间为凌晨 3 点”
暂停/删除任务:“暂停指定告警订阅任务”
Q3:推送到钉钉或自有 IM 失败怎么办?
请检查 Webhook 地址是否为有效的 HTTPS 地址;目标机器人是否仍然有效;接收端是否配置了安全设置或 IP 白名单(如有,请按平台要求完成加签/关键词/白名单配置);消息体格式是否符合目标平台要求。
Q4:两个机器人可以复用同一个企业微信应用/飞书自建应用吗?
不建议。Channel 与 DatabaseClaw 实例是 1:1 路由绑定,若两个机器人共用同一个 IM 应用,将无法在 IM 平台侧为其分别配置不同的可见范围,也就失去了“权限分层”的基础。建议为只读诊断、可写处置分别创建独立的机器人应用。
Q5:为什么不能在同一个实例上通过切换角色来实现只读/可写切换?
用户角色是“按实例绑定”的,同一实例只能绑定 1 个角色。切换角色会触发实例重启(通常 5分钟内),无法做到“两种权限同时在线、群内并存”,也就无法承接“业务确认 > DBA 立即处置”这种秒级切换的闭环链路。
Q6:可写机器人的可见范围能否根据告警自动临时开放?
当前 IM 平台侧的可见范围配置为静态配置项,需要管理员手动调整(企业微信/飞书/钉钉均如此),暂不支持随告警触发自动临时开放可见范围。如需动态收紧处置权限,建议结合值班排班表定期手动更新可见范围,或在可写机器人所在群明确约定仅值班 DBA 使用。
Q7:不在可写机器人可见范围内的用户,是否还能通过其他方式获得写权限?
IM 平台侧的可见范围仅控制该用户能否与该 Channel 对应的机器人对话,与用户在腾讯云控制台或 API 侧的自身 CAM 权限无关。如果该用户的个人子账号本身具备数据库写权限,仍可通过控制台或 API 直接操作数据库,这不属于 Channel 权限隔离机制的覆盖范围,需通过 CAM 账号权限管理另行收敛。
Q8:终止会话、限流具体通过什么机制确认,能否关闭确认环节?
运维类操作默认会展示确认卡片(操作类型、目标、影响范围 + 确认/取消按钮),需要人工确认后才执行,该确认机制是安全设计的一部分,当前不支持在产品侧关闭或跳过。
相关文档
多业务部门 DatabaseClaw IM 接入与资源隔离实践教程(多业务组场景下的架构扩展参考)
管理用户角色(只读 / 可写角色创建与关联实例操作详情)
管理定时任务(告警订阅任务的投递配置)