跳转到主要内容
通过 Tactical RMM(自托管的开源 RMM)告警模板中的 Webhook 动作,将代理离线(Agent overdue)、检查(Check)和任务(Task)失败告警同步到 Flashduty On-call。每条 Tactical RMM 告警对应一条 Flashduty 告警:失败时创建,Tactical RMM 判定恢复时自动恢复。 Tactical RMM 没有固定的 Webhook 报文格式,请求体由您在 Webhook 中编写。本页给出需要粘贴的 JSON 模板,Flashduty 按该模板的字段解析。

在 Flashduty On-call

您可通过以下两种方式获取集成推送地址,任选其一即可。

使用专属集成

  1. 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
  2. 选择 配置 → 集成数据 → 专属集成,点击 新增集成
  3. 选择 Tactical RMM,点击 保存
  4. 打开生成的集成卡片,复制 推送地址

使用共享集成

  1. 进入 Flashduty 控制台,选择 集成中心 → 告警事件
  2. 选择 Tactical RMM,填写集成名称
  3. 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
  4. 点击 保存,复制生成的 推送地址

在 Tactical RMM 中配置

需要创建两个 Webhook(失败一个、恢复一个),再把它们绑定到告警模板。两个 Webhook 的 URL 都是 Flashduty 推送地址,请求体只有 status 不同。
1

在 Tactical RMM 中创建“失败”Webhook

操作路径:Tactical RMM › Settings › Global Settings › Web Hooks › Add Web Hook请使用 Web Hooks 标签页,不是 URL Actions。Request Headers:
Request Body:
2

在 Tactical RMM 中创建“恢复”Webhook

操作路径:Tactical RMM › Settings › Global Settings › Web Hooks › Add Web Hook没有“恢复”Webhook 时,Flashduty 中的告警不会自动恢复。
3

在 Tactical RMM 中把 Webhook 绑定到告警模板

操作路径:Tactical RMM › Settings › Alerts ManagerTactical RMM 默认只对 Error 级别(如代理离线)和 Warning 级别的告警执行 Webhook,Info 级别的告警默认不发送。需要 Info 时,在 Settings › Global Settings › General 的 Receive notifications on 中勾选 Informational Alerts。
4

保存并验证

操作路径:Tactical RMM › Settings › Global Settings › Web Hooks › Test
  1. 在 Webhook 编辑页点击 Test,测试对象类型选 None(不选择代理、站点或客户)。Flashduty 会创建一条 Info 级别的测试告警,标题为 Tactical RMM test notification,它不会自动恢复,验证后请手动关闭。Tactical RMM 的文档说明测试模式下 {{alert.XXX}} 变量不可用;选择了测试对象时变量可能被替换成其他值,Flashduty 会因 alert_type 无效返回参数错误。因此 Test 只能证明地址可达,请用真实告警验证
  2. 让一个告警真实触发(例如停止一台测试代理),确认 Flashduty 收到活动告警
  3. 告警恢复后,确认 Flashduty 中对应的告警恢复

事件类型

Alert Key

Flashduty 使用 alert_id(即 {{alert.id}},Tactical RMM 中这条告警记录的编号)计算 Alert Key。同一条告警的失败和恢复 Webhook 渲染自同一条记录,编号相同。同一对象在恢复后再次失败会产生新的告警记录,因此在 Flashduty 中是一条新告警。严重程度、消息、主机名变化不会改变 Alert Key,缺少 alert_id 的请求会被拒绝。 一个 Flashduty 集成对应一个 Tactical RMM 实例。多个 Tactical RMM 实例的告警编号可能重复,请为每个实例创建各自的集成。

状态和告警等级

status 为 resolved 时告警恢复,保留最后一次的告警等级。

标签

排查问题

  • Flashduty 返回参数错误:错误信息会指出问题字段。常见原因是请求体缺少 alert_id,或 alert_type 不是 availability、check、task、custom 之一(例如用 Test 按钮时选择了测试对象)
  • 告警没有恢复:确认已配置“恢复”Webhook 并绑定到告警模板的 Resolved Web Hook,且其 status 为 resolved;可在 Tactical RMM 的告警详情中查看动作的返回结果
  • Flashduty 没有收到任何推送:确认告警模板已应用到对应的代理,且告警等级没有被 Info/Warning 通知开关过滤
  • 请求体不是合法 JSON:{{alert.message}} 的内容含有双引号时,Tactical RMM 渲染出的 JSON 会失效,此时 Flashduty 会拒绝该请求。可从模板中删除 message 行,Flashduty 会用告警类型和主机名生成标题
  • 测试告警没有关闭:Test 按钮的推送不会恢复,需手动关闭
更多变量请参阅 Tactical RMM 告警文档 和 Webhook 文档。