Skip to main content
LogicMonitor 通过 Custom HTTP Delivery 集成推送告警:告警产生、等级变化或清除时,LogicMonitor 按本文给出的请求体模板向 Flashduty 发送一条 JSON。LogicMonitor 中的每个「资源 + LogicModule + 实例 + 数据点」对应一条 Flashduty 告警:告警产生时打开,告警清除时自动关闭。

在 Flashduty On-call


您可通过以下两种方式获取集成推送地址,任选其一即可。

使用专属集成

  1. 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
  2. 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
  3. 选择 LogicMonitor,点击 保存
  4. 打开生成的集成卡片,复制 推送地址

使用共享集成

  1. 进入 Flashduty 控制台,选择 集成中心 → 告警事件
  2. 选择 LogicMonitor,填写集成名称
  3. 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
  4. 点击 保存,复制生成的 推送地址

在 LogicMonitor 中配置


以下操作需要可以管理 Integrations、Escalation Chains 和 Alert Rules 的 LogicMonitor 账号。
1

创建 Custom HTTP Delivery 集成

进入 Settings → Integrations,点击 Add Integration,在 Workflow Integration 下选择 Custom HTTP Delivery,按下表填写:请求体模板:
字段名不要修改,alert_id 和 alert_status 必须保留。Use Custom Headers 和 Include an ID provided in HTTP response when updating alert status 保持关闭。
2

测试并保存

点击 Test Alert Delivery,确认 LogicMonitor 提示发送成功。测试请求的 alert_status 为 test,Flashduty 返回成功,不会生成告警。确认后点击 Save。
3

创建升级链

LogicMonitor 只把告警发送给告警规则所引用的升级链。进入 Settings → Escalation Chains,新建一条升级链,在第一阶段(Stage 1)中添加 Recipient,选择上一步创建的 Flashduty 集成,然后保存。
4

配置告警规则

进入 Settings → Alert Rules,新建告警规则或编辑已有规则,按下表设置:
Send notification when alerts clear 未开启时,LogicMonitor 在告警清除时不发送通知,Flashduty 中的告警不会关闭。
LogicMonitor 按优先级从小到大匹配告警规则,一条告警只命中第一条匹配的规则。请确认需要推送的告警不会先命中其他规则。
5

验证生命周期

让一个数据点越过告警阈值(例如临时调低某个 DataSource 数据点的阈值),确认 Flashduty 收到活动告警;恢复阈值后等待告警清除,确认原告警关闭。LogicMonitor 在数据点的轮询周期内评估阈值,告警和清除通常在一到两个轮询周期内送达。

Alert Key


Flashduty 使用 alert_id(##ALERTID##,形如 LMD12345)作为 Alert Key。LogicMonitor 文档说明,同一个「资源(或网站)+ LogicModule + 实例 + 数据点」组合上的告警都使用同一个告警 ID,因此告警产生、等级变化和清除通知落在同一条 Flashduty 告警上;告警清除后再次产生会打开一条新告警。 告警等级、数值、阈值和告警正文的变化都不会改变 Alert Key。请不要把模板中的 ##ALERTID## 换成 ##INTERNALID##:##INTERNALID## 在告警等级变化时会改变,会导致清除通知关不掉原告警。 请求缺少 alert_id 或 alert_status,或这两个字段仍是未替换的 ##ALERTID##、##ALERTSTATUS## 时,Flashduty 会拒绝该请求。

告警生命周期


Flashduty 按 alert_status 字段(##ALERTSTATUS##)处理通知: 在集成中勾选 Acknowledged 后,LogicMonitor 会在告警被确认时发送 ack 通知。确认不会打开或关闭 Flashduty 告警,被忽略的通知返回成功。

告警等级


告警等级取自 level 字段(##LEVEL##),不区分大小写: 清除通知携带被清除告警的等级,恢复事件保留该等级。

告警内容


  • 标题:<DataSource> <数据点> on <资源>;资源为主机名,网站告警为网站名称。缺少 DataSource 和数据点时只用资源名称,全部缺少时为 LogicMonitor alert <alert_id>
  • 描述:##MESSAGE## 渲染出的告警正文,即 LogicModule 中配置的告警消息
  • 标签:check(DataSource 和数据点)、resource、host、website、alert_id、alert_status、alert_type、level(原始等级)、datasource、instance、datapoint、value、threshold、group、alert_url(LogicMonitor 告警详情页链接)
值为空的字段不会写入标签。某些字段不适用于当前告警类型时(例如网站告警没有数据点),LogicMonitor 可能原样保留 ##DATAPOINT## 这样的占位符,Flashduty 会把它当作空值处理。

排查问题


  • Test Alert Delivery 失败:确认 URL 是完整的推送地址,包含 integration_key 参数,且 HTTP Method 为 HTTP Post
  • Flashduty 提示请求体不是合法 JSON:确认 Alert Data 选择了 Raw 和 JSON 格式,模板中的每个 ##TOKEN## 都在双引号内
  • 告警没有发出:确认告警命中了引用该升级链的告警规则,且升级链的阶段中包含该集成;可以在告警详情的 History 中查看通知记录
  • 告警没有恢复:确认告警规则开启了 Send notification when alerts clear,集成的 Alert Statuses 勾选了 Cleared,模板中的 alert_id 为 ##ALERTID##
  • 同一个问题重复通知:把告警规则的 Escalation Interval 设为 0
  • 已清除的告警又被打开:勾选 Escalated/De-escalated 时,在 LogicMonitor 中给已清除的告警添加备注(note)也会发送 update 通知,Flashduty 会重新打开该告警。避免给已清除的告警加备注,或在 Flashduty 中手动关闭该告警
令牌的含义请参阅 LogicMonitor 文档 Tokens Available in LogicModule Alert Messages 和 Custom HTTP Delivery。