alert_active,在被解决时推送 alert_resolved;Flashduty 用告警的 id 关联两者,触发时创建告警,解决时自动恢复。
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 Level,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 Level,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 Level 中配置
1
添加 Webhook
- 登录 Level,进入 Settings → Webhooks
- 新建 Webhook,将 Flashduty 集成的完整推送地址粘贴到 URL,地址中需包含
integration_key - 勾选事件
alert_active和alert_resolved。只勾选alert_active时,告警不会自动恢复 - Secret 可以留空。Level 在设置了 Secret 时会在请求头
X-Level-Signature中附带 HMAC-SHA256 签名,Flashduty 不校验该签名,认证依靠推送地址中的integration_key
2
保存并验证
- 保存 Webhook
- 在 Level 中触发一个设备告警,确认 Flashduty 收到活动告警
- 告警在 Level 中被解决后,确认 Flashduty 中对应告警恢复
- 在 Level 的 Webhook 页面可以查看每次投递的状态码和响应,并用 Re-run request 重新发送
Alert Key
Flashduty 使用告警数据中的
data.id(Level 的告警 ID)作为 Alert Key,同一个告警的 alert_active 和 alert_resolved 使用同一个 Alert Key。告警名称、描述、等级、设备主机名等字段变化不会改变 Alert Key。Level 的 event_id 是事件的唯一标识,重试和手动重新发送时保持不变,Flashduty 不把它作为 Alert Key。缺少 data.id 的请求会被拒绝。
状态和告警等级
device_created、device_updated、device_deleted、group_created、group_updated、group_deleted 事件不是告警,Flashduty 收到后直接返回成功,不创建告警。
告警等级取自 data.severity:
恢复事件保留告警原有的等级。
标签
告警标题为
主机名: 告警名称,描述取自 data.description 和 data.payload。
排查问题
- Flashduty 返回参数错误:确认 URL 完整且包含
integration_key,并且请求体是 Level 的 Webhook 格式 - 告警没有恢复:确认 Webhook 勾选了
alert_resolved - 重复收到同一事件:Level 会自动重试失败的投递,同一个告警的重复投递会合并到同一条 Flashduty 告警