> ## 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.

# Veeam ONE 告警集成

> Veeam ONE 通过邮件发送告警通知，使用 Flashduty 的邮件集成按规则触发和关闭 Veeam ONE 告警。

Veeam ONE 的告警通知只能通过邮件（以及 SNMP、syslog、脚本）送出，没有 Webhook。Flashduty 的 [邮件集成](/zh/on-call/integration/alert-integration/alert-sources/email) 可以接收这些邮件，并按规则从邮件标题判断是触发还是恢复，因此不需要单独的 Veeam ONE 集成：在 Flashduty 创建邮件集成，把它的邮件地址填进 Veeam ONE 的通知收件人，再按下文配置推送规则。

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

  ***

  您可通过以下两种方式获取集成邮件地址，任选其一即可。**集成类型都选择邮件 Email**，不是 Veeam ONE。

  ### 使用专属集成

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

  ### 使用共享集成

  1. 进入 Flashduty 控制台，选择 **集成中心 → 告警事件**
  2. 选择 **邮件 Email**，填写集成名称，复制 **邮箱地址**
  3. 按下文配置推送规则
  4. 配置默认路由并选择协作空间，点击 **保存**
</div>

## 在 Flashduty 中配置推送规则

***

Veeam ONE 的邮件里没有告警 ID，一条告警由「告警名 + 对象」确定，规则从邮件标题提取这两部分作为 Alert Key。触发和恢复邮件提取出的 Key 相同，恢复邮件因此能关闭对应的告警。

1. **推送模式** 选择 **根据规则触发或关闭告警**
2. 按顺序添加下面 4 条规则。每条规则的条件都是 **邮件标题** **匹配** 给出的正则，Alert Key **提取自** **邮件标题**
3. **默认规则** 选择：如果以上规则均不满足，则 **丢弃该邮件**

规则 1：关闭告警

```
条件：邮件标题 匹配 / Reset/[Rr]esolved for /
正则表达式：/^(.+) Reset/[Rr]esolved for (.+)$/
```

规则 2：关闭告警

```
条件：邮件标题 匹配 /has been changed to Reset/[Rr]esolved/
正则表达式：/Alarm . (.+) for (.+?) has been changed to /
```

规则 3：触发告警

```
条件：邮件标题 匹配 / (Error|Warning) for /
正则表达式：/^(.+) (?:Error|Warning) for (.+)$/
```

规则 4：触发告警

```
条件：邮件标题 匹配 /has been changed to (Error|Warning)/
正则表达式：/Alarm . (.+) for (.+?) has been changed to /
```

关闭规则排在触发规则前面。规则 1、3 对应主题模板写法 A，规则 2、4 对应写法 B，见下文 [邮件标题格式](#邮件标题格式)。两种写法都配上，Veeam ONE 升级或换模板时不用改规则。

默认规则选丢弃，是为了让汇总邮件（见 [限制](#限制)）不生成无法自动关闭的告警。如果您改过主题模板又不想漏掉邮件，可以把默认规则改为 **新建一条告警**，代价是这些邮件按标题生成的告警不会自动恢复。

## 在 Veeam ONE 中配置

***

以下路径以 Veeam ONE v13 为准，均在 Veeam ONE Client 中操作。

1. **SMTP**：进入 **Settings** → **Server Settings** → **SMTP Settings**（旧版本叫 **Mail Server Settings**），填写发信服务器并发送测试邮件
2. **收件人**：把 Flashduty 邮件集成的地址加到 **Default email notification group**，或写进告警动作 **Send email notification** 的收件人。通知级别选 **Any state**，否则收不到恢复邮件
3. **通知策略**：在 **Notification Policy** 中保持对象使用默认的 **Mission Critical** 策略。该策略在告警产生和每次状态变化时各发一封单条告警邮件；**Other** 策略按时间间隔发汇总邮件，规则无法逐条处理
4. **恢复通知**：在 **Notification Policy** → **Miscellaneous** 中保持勾选 **Send notification when alarm metrics are back to normal**，否则告警恢复时不发邮件
5. **邮件格式**：HTML 或 Plain Text 都可以，规则只读取邮件标题

## 邮件标题格式

***

Mission Critical 单条告警邮件的标题由 **Notification Policy** → **Mission Critical** → **Edit template** 中的 **Email subject template** 决定。不同版本的默认值有两种写法：

| 写法 | 模板 | 示例 |
| :- | :- | :- |
| A | `%ALARM_NAME% %STATUS% for %OBJECT_TYPE% "%OBJECT%"` | `VM CPU usage Error for Virtual Machine "VM1"` |
| B | `[Veeam ONE Client] Alarm — %ALARM_NAME% for %OBJECT% has been changed to %STATUS% (previous status: %OLD_STATUS%)` | `[Veeam ONE Client] Alarm — VM CPU usage for VM1 has been changed to Error (previous status: Reset/resolved)` |

`%STATUS%` 的取值：

| Veeam ONE 状态 | 规则处理 |
| :- | :- |
| `Error`、`Warning` | 触发告警，同一告警名和对象的邮件合并到同一条告警 |
| `Reset/resolved` | 关闭对应告警 |
| 其他状态（如 `Information`） | 不匹配任何规则，按默认规则丢弃 |

如果您修改了主题模板，请同步修改规则中的正则。也可以在 **Edit template** 中把主题显式设为写法 A 的模板，此时只需要规则 1 和规则 3。

## 限制

***

* **手动解决**：在 Veeam ONE 中手动解决告警时，发出的是汇总邮件（标题 `Alarm resolve notification`），一封可以列出多条告警，规则无法逐条关闭，会被默认规则丢弃。这类告警需要在 Flashduty 中手动关闭，或在接收该集成的协作空间开启 [超时自动关闭](/zh/on-call/channel/create-edit)，建议 24 小时。
* **确认与汇总**：确认告警（`Alarm acknowledgement notification`）和 Other 策略的汇总（`Alarm summary notification`）同样是汇总邮件，被默认规则丢弃。
* **告警类型与严重程度**：告警在 Flashduty 中显示的集成类型是邮件 Email；严重程度统一为 Warning，可以通过 [告警处理 Pipeline](/zh/on-call/integration/alert-integration/alert-pipelines) 按标题中的 `Error` 调整。
* **合并**：告警名和对象都相同的告警会合并到同一条 Flashduty 告警上。
