incident.id,Flashduty 据此合并为一条告警,Incident 关闭时告警自动恢复。
Notifications Webhook v2 目前只能通过 BigPanda 的 REST API 创建和修改,控制台里没有对应的表单;本页给出可以直接复制使用的请求体。
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
当您不需要将告警路由到不同的协作空间时,优先选择此方式。展开
展开
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 BigPanda,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
当您需要根据 Payload 将告警路由到不同的协作空间时,选择此方式。展开
展开
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 BigPanda,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
前提条件
- 权限:调用 Notifications Webhook v2 API 需要账号拥有 Integrations 权限;创建 AutoShare 规则需要 Notifications(查看、新增、编辑、删除 AutoShare 规则)权限。
- 认证方式:Notifications Webhook v2 API 目前只接受 User Account 的认证信息,Service Account 无法调用。
- 本集成不解析 BigPanda 的固定字段,而是解析下面第二步中您粘贴进请求体的 JSON 模板;请不要修改模板里的字段名。
在 BigPanda 中配置
1
创建 Notifications Webhook v2 集成
调用 BigPanda 的集成创建接口,
base_url 换成 Flashduty 集成的完整推送地址(包含 integration_key 参数),Authorization 换成您的 User Account 访问令牌:2
创建 AutoShare 规则
Webhook v2 集成创建后本身不会收到任何数据,需要一条 AutoShare 规则决定哪些 Incident 分享给它:
- 在 BigPanda 中进入 Settings → AutoShare
- 点击 Create AutoShare
- 在 Environment 中选择需要接入 Flashduty 的环境
- 在 Share Via 中选择上一步创建的 Webhook v2 集成
- 点击 Create AutoShare
3
验证生命周期
在该环境下触发一次真实告警(或等待下一次真实故障),确认 Flashduty 收到活跃告警;再让所有关联的告警恢复,确认 Incident 状态变为
ok 后 Flashduty 上的告警自动恢复。BigPanda 官方文档未提供该集成的测试通知功能,无法仅通过一次点击验证。Alert Key
Flashduty 直接使用请求体中的
incident_id(来自 BigPanda 模板变量 {{incident.id}})作为 Alert Key。BigPanda 官方文档将 incident.id 定义为 Incident 的系统生成唯一标识;同一个 Incident 的新建、更新、关闭共享同一个 incident.id。
status、environment、host、check、description、url 的变化都不会改变 Alert Key。
状态和告警等级
incident.status 取 Incident 内所有关联告警中最严重的状态;unknown 表示 BigPanda 无法从关联告警判断健康状况,Incident 仍处于未恢复状态,因此按 Warning 处理。空值或未识别的 status 会被 Flashduty 拒绝。
标签
告警标题优先使用
check;模板中的 {{primaryAlert.tags.check}} 为空时,退回使用 description。
常见问题
创建集成后一直没有收到任何请求?
创建集成后一直没有收到任何请求?
Webhook v2 集成创建后不会自动接收数据,必须再创建一条指向它的 AutoShare 规则(见上方步骤二),并确认该规则覆盖了正确的 Environment。
Flashduty 返回参数错误?
Flashduty 返回参数错误?
确认请求体中的
incident_id 和 status 字段名与本页模板完全一致,且 status 取值为 critical、warning、unknown、ok 之一。BigPanda 会把模板变量自动转换为对应的 JSON 类型,如果手动修改过模板,请保持每个字段都是形如 "字段名": "{{变量}}" 的写法。告警没有恢复?
告警没有恢复?
确认 AutoShare 规则覆盖的 Environment 和产生告警时一致;BigPanda 只在 Incident 内所有关联告警都恢复后才会把
incident.status 置为 ok,如果只有部分告警恢复,Incident 会保持在 warning。