engage(触发),条件消失后发送 release(释放);Flashduty 用同一个 Alert Key 关联这两条消息,触发时创建告警,释放时自动恢复。流量(Flow)告警只发送一次,没有释放消息。
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 ntopng,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 ntopng,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 ntopng 中配置
1
创建 Webhook Endpoint
- 用管理员账号登录 ntopng
- 选择 Notifications → Endpoints,点击 +
- Endpoint 类型选择 Webhook,名称可填写
Flashduty - 将 Flashduty 集成的完整推送地址(包含
integration_key)粘贴到 Webhook URL - Shared Secret、Username、Password 留空即可。Flashduty 通过推送地址中的
integration_key认证,不校验这几项;如果填写了 Shared Secret,它会出现在每条请求里,但不会写入 Flashduty 告警
2
创建 Recipient
- 选择 Notifications → Recipients,点击 +
- 选择上一步创建的
FlashdutyEndpoint,填写 Recipient 名称 - 将 Notifications Type 改为 Alerts。默认值是 Active Scan Reports,该类型不会发送告警,Flashduty 收不到任何事件
- 按需设置最低告警等级(Minimum Severity)、告警类别、实体类型和主机池,只有符合条件的告警才会发送
- 点击 Check 发送一次测试请求,再点击 Add 保存 Recipient
3
验证生命周期
触发一条主机告警(例如让某台主机触发 ntopng 的阈值检查),确认 Flashduty 收到活动告警;条件消失、ntopng 释放这条告警后,确认 Flashduty 中的告警自动恢复。
Alert Key
ntopng 在
engage 和 release 消息里携带相同的接口 ID(ifid)、实体类型(entity_id)、实体值(entity_val)、告警类型(alert_id)和子类型(subtype),Flashduty 用这五项生成 Alert Key。ntopng 自身也用实体值、告警类型和子类型来区分已触发的告警。分值(score)、时间戳、主机名和检查周期会随消息变化,不参与 Alert Key。
流量(Flow)告警的 action 为 store,每条独立成为一条告警。同一条流因条件变化被 ntopng 重新发送时,Alert Key 保持不变:它由接口、告警类型、VLAN、客户端和服务端的 IP 与端口、协议以及流的首次出现时间生成。
engage、release 消息缺少 alert_id、entity_id 或 entity_val 时,Flashduty 会返回参数错误并指出字段名。
告警等级
ntopng 的告警等级由
score 决定,Flashduty 按下表映射。score 缺失或不是数字时按 Info 处理。
恢复与测试
release:按 Alert Key 关闭对应告警,并保留释放前的告警等级。store(流量告警)和其他没有释放消息的告警:不会自动恢复。请在 Flashduty 集成或协作空间中开启 超时自动关闭,建议设置为 24 小时。- Check 按钮:ntopng 会发送一个
version为0.2且alerts为空的请求。Flashduty 返回成功,并创建一条标题为ntopng test notification的 Info 告警,它使用独立的 Alert Key,不会与真实告警合并,也不会自动恢复,请手动关闭。
排查问题
- ntopng 提示发送失败:确认 Webhook URL 完整,包含
integration_key,并且 ntopng 所在服务器能访问api.flashcat.cloud。ntopng 在失败时会重试 3 次 - Flashduty 返回参数错误:检查请求体是否为 JSON,且每条
engage、release告警都有alert_id、entity_id、entity_val - 告警没有恢复:流量告警没有释放消息;其他告警需要 ntopng 先释放,请在 ntopng 的 Alerts 页面确认这条告警是否仍处于触发状态
- 收不到告警:检查 Recipient 的最低告警等级、告警类别和实体过滤条件,以及 ntopng 是否启用了告警生成