Skip to main content
通过 CloudAMQP 告警(Alarms)的 Webhook 收件人,将实例的告警同步到 Flashduty On-call。每个告警对象(例如某个虚拟主机下的某个队列)对应一条 Flashduty 告警:告警触发时创建,告警持续期间的提醒推送合并到同一条告警,告警恢复时自动恢复。

在 Flashduty On-call


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

使用专属集成

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

使用共享集成

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

在 CloudAMQP 中配置


1

添加 Webhook 收件人

  1. 登录 CloudAMQP 控制台,打开需要接入的实例
  2. 进入 Alarms,在收件人(Recipients)中添加一个类型为 Web hook 的收件人
  3. 将 Flashduty 集成的完整推送地址粘贴到 URL,地址中需包含 integration_key
2

为告警指定收件人

CloudAMQP 的告警只会发给已指定的收件人。在 Alarms 中新建或编辑需要值班处理的告警(如队列、消费者、CPU、内存、磁盘、连接数、服务器不可达),把上一步的 Webhook 收件人加入其 Recipients。部分告警类型只在专用(dedicated)实例上提供,以控制台可选项为准。如需持续提醒,可在告警上设置 Reminder interval(最小 30 秒)。每次提醒都会推送一条同一告警的事件,Flashduty 将其合并到同一条告警中。
3

保存并验证

  1. 在收件人上点击 Trigger 按钮,Flashduty 会创建一条 Info 级别的测试告警,标题为 CloudAMQP test notification,它不会自动恢复,验证后请手动关闭。收件人上的 Resolve 按钮同样只会创建一条独立的 Info 测试告警
  2. 让一个告警真实触发(例如给某个队列设置较低的消息数阈值并发布消息),确认 Flashduty 收到活动告警
  3. 告警恢复后,确认 Flashduty 中对应的告警恢复

事件类型


CloudAMQP 每次推送一个告警对象,请求体为 JSON。 CloudAMQP 在 Webhook 返回非 2xx 时会重试,重复的推送使用同一个 Alert Key,会合并到同一条告警。

Alert Key


Flashduty 使用 dedup_key 计算 Alert Key。dedup_key 由告警类型和对象组成,例如队列告警为 queue::<vhost>/<queue>,同一个对象的触发、提醒和恢复推送使用相同的值。阈值、时间阈值、当前值、主题等字段变化不会改变 Alert Key,缺少 dedup_key 的请求会被拒绝。

状态和告警等级


CloudAMQP 的推送不携带等级,所有告警类型在 Flashduty 中都是 Warning,resolved 为 true 时恢复。如需区分严重程度,可在 Flashduty 的协作空间中按标签(例如 alarm_type)配置路由或告警处理规则调整等级。

标签


排查问题


  • Flashduty 没有收到推送:确认 Webhook 收件人已加入对应告警的 Recipients,并检查告警列表中收件人的状态列是否报错
  • 返回参数错误:确认 URL 完整且包含 integration_key
  • 告警没有恢复:确认恢复推送已到达。告警持续 30 天后 CloudAMQP 会重置该告警,之后可能重新触发;也可以在协作空间中开启告警自动关闭作为兜底
  • 测试告警没有关闭:Trigger 和 Resolve 按钮的推送不会恢复,需手动关闭
更多字段含义请参阅 CloudAMQP 告警文档。