engage(触发),条件消失后发送 release(释放);Flashduty 用同一个 Alert Key 关联这两条消息,触发时创建告警,释放时自动恢复。流量(Flow)告警只发送一次,没有释放消息。
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增集成
- 选择 ntopng,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 ntopng,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 ntopng 中配置
1
在 ntopng 中创建 Webhook Endpoint
操作路径:ntopng › System 界面 › Notifications › Endpoints › +用管理员账号登录 ntopng。
2
创建 Recipient
操作路径:ntopng › System 界面 › Notifications › Recipients › +
先点击 Check 发送一次测试请求,再点击 Add 保存 Recipient。Check 只证明地址可达:它发送
version 为 0.2、alerts 为空的请求,Flashduty 会创建一条标题为 ntopng test notification 的 Info 告警,请手动关闭。恢复:ntopng 的主机、接口、网络等告警条件消失后会发送 release,Flashduty 自动恢复;流量(Flow)告警没有释放消息,见下文「恢复与测试」。3
触发真实告警并验证
操作路径:ntopng › Alerts触发一条主机告警(例如让某台主机触发 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 与端口、协议以及流的首次出现时间生成。
每条告警缺少 alert_id,或 engage、release 消息缺少 entity_id、entity_val 时,Flashduty 会返回参数错误并指出字段名。
状态和告警等级
ntopng 的告警等级由score 决定,Flashduty 按下表映射。score 缺失或不是数字时按 Info 处理。
恢复与测试
release:按 Alert Key 关闭对应告警。release事件的等级按该条消息自身的score计算(≥100 Critical,≥50 Warning,其余 Info),状态为恢复。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 是否启用了告警生成