Skip to main content
通过 IBM SevOne NPM 8.x 的 Webhook Definition Manager,把策略(Policy)告警的触发和清除同步到 Flashduty On-call。SevOne 的 Webhook 请求体由您在模板里自己编写,本页给出需要粘贴的 JSON 模板,Flashduty 按该模板解析。每条 SevOne 告警对应一条 Flashduty 告警:策略触发时创建,再次触发合并到同一条告警,策略清除时关闭。

在 Flashduty On-call


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

使用专属集成

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

使用共享集成

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

在 SevOne NPM 中配置


需要创建两个 Webhook Definition:一个在告警触发时发送,一个在告警清除时发送。
1

创建触发 Webhook

  1. 登录 SevOne NMS,进入 Events → Configuration → Webhook Definition Manager,点击添加
  2. Definition Type 选择 Policy,Webhook Definition Name 填写 Flashduty trigger
  3. Destination URL 粘贴 Flashduty 集成的完整推送地址
  4. Request Method 选择 POST,Content Type 选择 application/json
  5. 在 Body 中粘贴下面的模板:
  1. 点击 Test Definition 检查请求能否发出,然后点击 Save
2

创建清除 Webhook

按上一步再创建一个 Definition,名称填写 Flashduty clear,Body 粘贴下面的模板(event 为 clear,并多一个 closure_message):
3

把 Webhook 分配给策略

  1. 进入 Events → Configuration → Policy Browser,选中需要接入的策略,点击 Assign Webhooks
  2. 选择 Flashduty trigger,Apply To 勾选 Trigger,保存
  3. 再次 Assign Webhooks,选择 Flashduty clear,Apply To 勾选 Clear,保存
4

验证生命周期

让一条策略真正触发,确认 Flashduty 收到活动告警;再让它清除(条件恢复,或在 Events → Alerts 手动确认),确认原告警恢复。
  • Content Type 必须选 application/json。SevOne 会按 Content Type 对变量做转义,选其他类型可能生成无法解析的 JSON。
  • 触发和清除的模板中 event 取值必须分别是 trigger 和 clear,其他值会被 Flashduty 拒绝。
  • 推送地址包含 integration_key,不需要额外的认证头。

推送内容


模板中的每个字段都是一个 SevOne 变量的替换结果(变量说明见 IBM 文档 Webhook Definition Manager): SevOne 对不支持的变量输出 n/a(例如流量策略的 $pluginName),Flashduty 会忽略 n/a。

Alert Key


Flashduty 使用 alert_id($alertId,IBM 文档描述为 “The id of the triggered alert”)作为 Alert Key。同一条 SevOne 告警的多次触发和清除携带相同的 alert_id,会落在同一条 Flashduty 告警上;修改策略名称、等级或消息不会改变 Alert Key。 请求中 alert_id 为空、为 n/a 或仍是未替换的 $alertId 时,Flashduty 返回参数错误。

状态和告警等级


$alertState 是策略的等级。清除事件沿用该告警的等级,状态变为恢复。

常见问题


IBM 文档只说明 Test Definition 会返回状态码、响应头和响应体,没有给出测试请求体的格式。如果测试请求带有有效的 alert_id 和 event,会像真实通知一样创建或关闭告警;不带时 Flashduty 返回参数错误。测试产生的告警请手动关闭。
可以接收告警,但 Flashduty 告警不会自动恢复。建议在集成或协作空间中开启超时自动关闭,或补配清除 Webhook。
不会。同一条 SevOne 告警每次触发的 alert_id 相同,合并到同一条 Flashduty 告警。
本页模板按 Policy 类型设计。Trap 类型的 Definition 使用另一组变量,不在本集成范围内。

排查问题


  • SevOne 推送失败:确认 Destination URL 是完整的推送地址;自签名 TLS 证书需要勾选 Allow insecure webhook connection,且证书需使用 SAN 而不是仅 Common Name
  • Flashduty 返回参数错误:确认 Content Type 为 application/json,event 为 trigger 或 clear,且 alert_id 有值
  • 告警没有恢复:确认清除 Webhook 已分配给同一策略并勾选 Clear