在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 NetBeez,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 NetBeez,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 NetBeez 中配置
1
启用 Webhook 集成
- 使用管理员账号登录 NetBeez(BeezKeeper 13.0 及以上版本支持 Webhook)
- 进入 Settings → Integrations → Webhooks,启用该集成
- 将 Flashduty 集成的完整推送地址粘贴到 Webhook URL 并保存
- 可使用页面上的测试功能验证地址。Flashduty 对不含事件类型(
event_type或event)的请求返回成功且不创建告警
2
选择要发送的通知类型
在同一页面的通知设置里,按需勾选要发送到 Webhook 的通知:Agent 设备告警、Agent / Target / WiFi Profile / 计划测试的告警,以及 Agent / Target / WiFi Profile 的故障。每一类可以选择单条通知或聚合通知,聚合通知会在一个请求里带多条事件,Flashduty 逐条处理。
告警和故障是两套独立的通知:同一次网络问题如果两类都勾选,Flashduty 会产生两条告警。只想按故障响应时,只勾选故障类通知即可。
3
验证生命周期
让一个 Target 或 Agent 真正异常(例如临时停用某个 Agent),确认 Flashduty 收到活动告警;恢复后确认原告警关闭。
推送内容
NetBeez 以
application/json POST 一个只有 data 字段的对象:单条通知时 data 是对象,聚合通知时是数组。Flashduty 直接解析,无需配置模板。
告警标题为“对象名称: 说明文字”,对象名称依次取
target、wifi_profile、agent、destination。
Alert Key
- 告警类通知使用
alert_dedup_id。NetBeez 文档说明同一个告警的打开和清除通知共享它,按它归并即可。 - 故障类通知使用“对象类型 + 对象 ID +
incident_ts”。incident_ts始终是故障开始时间,打开和清除通知一致。NetBeez 文档也建议按incident_id关联故障,但文档中的清除通知示例带了与打开通知不同的incident_id,所以 Flashduty 不依赖它,incident_id只作为标签保留。 - 告警类和故障类的 Alert Key 互不相同,修改对象名称、说明文字或等级不会改变 Alert Key。
alert_dedup_id,或故障类通知缺少对象 ID 或 incident_ts 时,Flashduty 返回参数错误,因为无法可靠地把清除通知关联到原告警。
状态和告警等级
NetBeez 文档只说明打开的告警
severity 不大于 5,等级名称形如 alert、critical,没有给出完整对照表,因此只把 1 和 2 映射为 Critical。需要调整时,可在协作空间的 配置 中用规则改写等级。
常见问题
聚合通知里同时有打开和清除事件,会怎样?
聚合通知里同时有打开和清除事件,会怎样?
Flashduty 按
alert_ts 从早到晚逐条处理,同一告警的打开事件先于清除事件,最终状态为恢复。Webhook 测试会创建告警吗?
Webhook 测试会创建告警吗?
NetBeez 的测试发送示例数据。Flashduty 只把含
event_type 或 event 的请求当作告警,其他请求返回成功且不创建告警。如果示例数据被识别为告警,请在 Flashduty 中手动关闭。NetBeez 重试会产生重复告警吗?
NetBeez 重试会产生重复告警吗?
不会。NetBeez 对非 2xx 响应重试,同一事件的 Alert Key 不变,重复投递会合并到同一条告警。
排查问题
- NetBeez 推送失败:确认 Webhook URL 是完整的推送地址,且包含
integration_key - Flashduty 返回参数错误:确认请求体包含
data,告警带alert_dedup_id,故障带对象 ID 和incident_ts - 告警没有恢复:确认 NetBeez 已勾选对应类型的清除通知(打开和清除随同一个通知类型发送)