在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 Aikido,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 Aikido,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 Aikido 中配置
1
创建 Webhook
Webhook 需要由 Aikido 工作区管理员在 Settings → Integrations → Webhooks 页面配置。把 Flashduty 集成的完整推送地址(含
integration_key)填为目标 URL,并勾选需要推送的事件。2
选择事件
建议勾选以下 issue 事件:
issue.open.created:新 issue,创建告警issue.severity.changed.manual、issue.sla.breached、issue.unignored:更新同一条告警issue.closed、issue.ignored.manual、issue.snoozed:恢复同一条告警
ci.gate.*、zen.*、scan.image.finished 等其他事件的负载不含 issue 信息,Flashduty 会返回 200 并忽略,不会创建告警。3
Webhook 密钥(可选)
在 Webhooks 页面点击 Add secret 可生成签名密钥,Aikido 会在请求头
X-Aikido-Webhook-Signature 中带上负载的 HMAC-SHA256 签名。Flashduty 不校验该签名,也不需要您提供密钥;是否配置密钥不影响推送。4
验证生命周期
让 Aikido 产生一个新 issue,确认 Flashduty 收到告警;再在 Aikido 中关闭该 issue,确认原告警恢复。Aikido 文档未提供发送测试通知的按钮。
Alert Key
Flashduty 使用
payload.issue_id 作为 Alert Key。Aikido 官方文档将其定义为 issue 的 ID,同一个 issue 的所有事件都带有这个 ID。严重度、状态和事件类型的变化不会改变 Alert Key。缺少 payload.issue_id 的 issue 事件会被拒绝,因为无法关联后续更新和恢复。
状态和告警等级
Aikido 负载中没有标题字段,告警标题形如
Aikido open_source issue #123 (critical)。issue 类型(open_source、leaked_secret、cloud、iac、sast、surface_monitoring、malware)、severity_score、workspace_id 等写入告警标签。
排查问题
- Aikido 返回非 200 并重试:Aikido 对非 200 响应或超时会重试 5 次;请确认推送地址完整且包含
integration_key - Flashduty 返回参数错误:确认请求体是有效 JSON,且 issue 事件带有
payload.issue_id - 告警没有恢复:确认勾选了
issue.closed等恢复事件;被忽略或暂缓的 issue 也会触发恢复 - 未收到 CI 或 Zen 事件:这些事件不含 issue 信息,按设计被忽略
- 来源 IP:Aikido 从固定 IP 发送请求(EU 52.18.113.172,US 54.225.143.47 与 3.211.221.73,AU 52.65.15.49),需要时可加入网络白名单