ban、partial_block)和解封(unban、partial_unblock)通知同步到 Flashduty On-call。每个被攻击的主机 IP(或主机组)对应一条告警:FastNetMon 封禁时触发,解封时关闭这条告警。
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 FastNetMon,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 FastNetMon,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 FastNetMon 中配置
1
启用 Web Callback
在 FastNetMon Advanced 所在服务器上,用 FastNetMon 以
fcli 设置回调地址并提交(把 URL 换成 Flashduty 的完整推送地址,含 integration_key):POST 发送 Content-Type: application/json 的 JSON 文档,Flashduty 直接解析,无需模板。2
(可选)持续同步攻击状态
FastNetMon 2.0.375 及以上版本可以在封禁期间按固定间隔重复发送封禁通知:重复的通知携带同一个主机 IP,会合并到同一条告警,并刷新流量数据。
3
验证生命周期
触发一次攻击检测(例如用测试流量超过某个主机组的封禁阈值),确认 Flashduty 出现活动告警;攻击结束、FastNetMon 解封后,确认原告警恢复。
推送内容
封禁通知中的数据包采样(
packet_dump)和 Flow Spec 规则不会写入告警。
Alert Key
按被攻击对象生成 Alert Key:主机范围使用
ip,主机组范围使用 hostgroup_name。同一个 IP 的封禁、状态更新和解封落在同一条告警上;不同 IP 或不同主机组是不同的告警。攻击等级、流量数据和 attack_uuid 的变化不会改变 Alert Key。
这里没有使用 attack_uuid:FastNetMon 官方示例中,只有 Blackhole 的封禁与解封共用同一个 UUID,Flow Spec 和主机组示例的封禁与解封 UUID 不同,无法保证按 UUID 一定能关闭告警。
同一个 IP 上同时进行 Blackhole 封禁和 Flow Spec 部分封禁时,两者共用一条告警,先到的解封通知会关闭它。
请求缺少 ip(或主机组范围缺少 hostgroup_name)时,Flashduty 会返回参数错误,因为无法可靠地把解封通知关联到原告警。action 或 alert_scope 为其他值的请求同样被拒绝。
状态和告警等级
官方示例只出现
middle,其他取值按常见命名映射。解封时告警恢复,原等级保持为最后一次攻击等级。
常见问题
FastNetMon 有测试按钮吗?
FastNetMon 有测试按钮吗?
官方文档没有描述测试通知,Flashduty 也没有针对测试请求的特殊处理。手动用
curl 发送示例 JSON 会创建真实告警,请发送对应的 unban 通知关闭。解封通知丢失时告警会一直打开吗?
解封通知丢失时告警会一直打开吗?
会。FastNetMon 不保证重发解封通知。建议开启协作空间的超时自动关闭,时长大于您的最长封禁时间。
Community 版可以使用吗?
Community 版可以使用吗?
本集成对应 FastNetMon Advanced 的 Web Callback 和通知脚本使用的 JSON 格式。Community 版是否发送相同格式请以 FastNetMon 官方文档为准。
排查问题
- 收不到告警:在 FastNetMon 服务器上确认
web_callback_enabled已启用,fcli commit已执行,且服务器能访问 Flashduty 推送地址 - Flashduty 返回参数错误:确认请求是 FastNetMon 的 JSON 通知,且
ip(主机范围)或hostgroup_name(主机组范围)非空 - 告警没有恢复:确认解封通知已发出且携带同一个
ip;必要时开启超时自动关闭