在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 PRTG,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 PRTG,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 PRTG 中配置
PRTG 需要两个通知模板:一个在传感器进入告警状态时发送(
event=trigger),一个在传感器离开该状态时发送(event=resolve)。两个模板的推送地址和字段完全相同,只有开头的 event 不同。
1
创建告警通知模板
- 以管理员身份登录 PRTG,进入 Setup → Account Settings → Notification Templates,点击 Add Notification Template
- Template Name 填写
Flashduty 告警 - 勾选 Execute HTTP Action,按下表填写:
告警模板:
- 点击 Create 保存
2
创建恢复通知模板
按上一步再创建一个模板,Template Name 填写 可以在 Notification Templates 列表中对模板发送测试通知来验证地址。PRTG 的测试通知不会替换占位符,Flashduty 识别后直接返回成功,不会创建告警。
Flashduty 恢复,Payload 使用下方的恢复模板,其余设置相同:3
添加状态触发器
- 打开要接入的对象(根组 Root、某个组、设备或传感器),进入 Notification Triggers 标签页,选择 Add State Trigger
- 按下表填写:
- 保存触发器。下级的组、设备和传感器会继承这个触发器
perform 和 no longer ... perform 的选择与上表相同。可选的升级通知(第二行 When sensor status is … for at least … seconds)也选 Flashduty 告警,会合并到同一条告警。4
验证生命周期
让一个传感器真正进入 Down 状态(例如对一个 Ping 传感器指向的地址临时断网),等待触发器的延迟时间,确认 Flashduty 收到活动告警;恢复后确认原告警关闭。
推送内容
PRTG 以
application/x-www-form-urlencoded 表单格式 POST 模板中的字段,每个字段名对应同名的 PRTG 占位符:
告警标题为
<设备名称>: <传感器名称>;设备名称为空时只用传感器名称,两者都为空时使用 PRTG sensor <sensorid>。
Alert Key
Flashduty 使用
sensorid 作为 Alert Key。同一个传感器的告警、升级通知和恢复通知携带相同的传感器 ID,因此会落在同一条告警上;同一设备上名称相同的两个传感器 ID 不同,会生成不同的告警。修改传感器名称、设备名称、状态或消息不会改变 Alert Key。
传感器 ID 只在一台 PRTG 服务器内唯一。多台 PRTG 服务器请分别使用不同的 Flashduty 集成,避免不同服务器上相同 ID 的传感器合并到同一条告警。
状态和告警等级
event 决定告警触发还是恢复,laststatus 决定告警等级:
event 为空或为其他值的请求会被拒绝,避免把无法判断状态的请求写入错误的告警生命周期。
常见问题
为什么需要两个通知模板?
为什么需要两个通知模板?
PRTG 没有占位符能区分一条通知来自状态触发器的触发还是 no longer 恢复,只能由模板中的固定值
event 说明。laststatus 只描述传感器当前状态:传感器从 Down 转为 Warning 时,Down 触发器的恢复通知里 laststatus 是 Warning。用 event 判断恢复,每个触发器的告警都能按时关闭。传感器从 Down 转为 Warning 会怎样?
传感器从 Down 转为 Warning 会怎样?
Down 触发器发送恢复通知,关闭 Down 告警。如果配置了 Warning 状态触发器,它会在延迟时间后发送告警通知,重新打开这个传感器的告警,等级为 Warning。
PRTG 界面不是英文,告警等级不对?
PRTG 界面不是英文,告警等级不对?
PRTG 输出的
laststatus 会随 PRTG 的语言设置翻译。Flashduty 只识别英文状态名,其他语言的状态名一律按 Warning 处理;告警触发和恢复由 event 决定,不受语言影响。PRTG 显示通知发送成功,但 Flashduty 没有收到?
PRTG 显示通知发送成功,但 Flashduty 没有收到?
确认 SNI Handling 选择了 Send SNI,SNI Name 与推送地址中的域名一致。不发送 SNI 时请求可能到达不了 Flashduty,而 PRTG 仍然显示发送成功。
排查问题
- PRTG 推送失败:确认 URL 是完整的推送地址,且包含
integration_key;HTTP Method 为 POST - Flashduty 返回参数错误:确认 Payload 完整粘贴了模板,
event和sensorid都在,且模板保持为一行 - 告警没有恢复:确认状态触发器的 no longer … perform 选择了
Flashduty 恢复模板,恢复通知与告警通知来自同一个传感器