> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashduty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Nobl9 告警集成

> 通过 Nobl9 Webhook 告警方法，将 SLO 告警策略触发的告警同步到 Flashduty On-call。

通过 Nobl9 的 Webhook 告警方法（Alert Method），把 SLO 告警策略触发的告警同步到 Flashduty On-call。每个 Nobl9 告警（`alert_id`）对应一条 Flashduty 告警。Nobl9 Webhook 文档没有说明"已恢复"通知，告警需要由协作空间的超时自动关闭或手动关闭。

<div className="hide">
  ## 在 Flashduty On-call

  ***

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

  ### 使用专属集成

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

  ### 使用共享集成

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

## 在 Nobl9 中配置

***

<Steps>
  <Step title="创建 Webhook 告警方法">
    1. 登录 Nobl9，进入 **Integrations → Alert methods**，选择 **Webhook**
    2. **URL** 填写 Flashduty 集成的完整推送地址（必须以 `https://` 开头）
    3. 选择 **Project**，填写 **Name**（小写字母、数字和连字符）
    4. 在 **Notification details** 中选择自定义 JSON（Template），粘贴下面的模板
    5. 保存后可在告警方法详情页点击 **Test**。Nobl9 文档没有公开测试请求的内容，如果它不含 `alert_id`，Flashduty 会返回参数错误，这不表示配置有误，请以真实告警验证

    ```json theme={null}
    {
      "alert_id": "$alert_id",
      "alert_policy_name": "$alert_policy_name",
      "slo_name": "$slo_name",
      "severity": "$severity",
      "timestamp": "$iso_timestamp",
      "organization": "$organization",
      "project_name": "$project_name",
      "service_name": "$service_name",
      "objective_name": "$objective_name",
      "alert_policy_conditions_text": "$alert_policy_conditions_text",
      "slo_details_link": "$slo_details_link"
    }
    ```
  </Step>

  <Step title="关联告警策略">
    编辑需要接入的告警策略（Alert Policy），在 **Alert methods** 中添加刚创建的 Webhook 告警方法。
  </Step>

  <Step title="开启超时自动关闭">
    请在接收这些告警的协作空间中开启 [超时自动关闭](/zh/on-call/channel/create-edit)，建议时长 24 小时。
  </Step>
</Steps>

<Warning>
  必须使用上面的模板。Nobl9 的默认字段没有 `alert_id`，缺少 `alert_id` 的请求会被 Flashduty 拒绝。
</Warning>

## 推送内容

***

| 字段 | 含义 | 在 Flashduty 中 |
| :- | :- | :- |
| `alert_id` | 告警唯一 ID | Alert Key，标签 `alert_id` |
| `alert_policy_name` + `slo_name` | 告警策略和 SLO 名称 | 告警标题（`策略: SLO`），标签 `alert_policy`、`slo`、`resource` |
| `severity` | `high`、`medium` 或 `low` | 告警等级，标签 `severity` |
| `timestamp` | 触发时间 | 描述 |
| `organization`、`project_name`、`service_name`、`objective_name` | 组织、项目、服务、目标 | 标签 `organization`、`project`、`service`、`objective` |
| `alert_policy_conditions_text`、`slo_details_link` | 触发条件、SLO 详情链接 | 描述 |

## Alert Key

***

Flashduty 使用 `alert_id`（Nobl9 文档：Unique identifier of the alert）作为 Alert Key。同一个 Nobl9 告警重复推送时合并到同一条 Flashduty 告警。

## 告警等级

***

| Nobl9 `severity` | Flashduty 等级 |
| :- | :- |
| `high` | Critical |
| `medium` | Warning |
| `low` | Info |
| 其他或为空 | Warning |

## 常见问题

***

<AccordionGroup>
  <Accordion title="告警会自动恢复吗？">
    不会。Nobl9 Webhook 文档没有恢复通知，请开启协作空间的超时自动关闭，或在 Flashduty 中手动关闭。
  </Accordion>
</AccordionGroup>

## 排查问题

***

* **Nobl9 测试失败**：测试请求不含 `alert_id` 时会被拒绝，属预期；其余情况确认 URL 是以 `https://` 开头的完整推送地址，且包含 `integration_key`
* **Flashduty 返回参数错误**：确认模板包含 `"alert_id": "$alert_id"`

字段说明请参阅 Nobl9 官方文档 [Webhook alert method](https://docs.nobl9.com/alerting/alert-methods/webhook/)。
