很多老旧系统没有指标接口,也无法方便接入 Prometheus、Nightingale 这类监控体系,但它们往往支持一件事:发邮件。问题是,邮件适合通知人,却不适合承载现代 OnCall 流程。
核心要点
- 邮件告警容易被工作邮件淹没,也缺少认领、升级、关闭和自动化处理能力。
- Flashduty 的 Email 集成可以接收邮件,把邮件内容转换为告警事件,再进入分派、通知和协同流程。
- 标签增强可以从邮件正文中提取主机、服务、描述等字段,让非结构化邮件具备可路由的结构化标签。
- 自动关闭能力依赖 Alert Key:同一故障的触发邮件和恢复邮件需要能被识别为同一个告警对象。
- 这种方案适合“系统只能发邮件,但团队希望按 OnCall 流程处理告警”的场景。
邮件告警为什么需要增强
在现代 IT 技术环境中,新的监控系统通常支持电话、短信、钉钉、飞书、Slack 等通知媒介,使用起来比较灵活。但是一些老旧系统不提供指标暴露方式,也无法和监控系统良好对接,只内置邮件告警。这给分发、降噪和自动化都带来了挑战。
通常来讲,邮件告警有以下问题:
使用邮件告警有哪些问题?
- 容易被忽视:邮件告警往往淹没在日常工作邮件中,容易被忽视或误判为普通邮件,导致告警未能及时处理,增加业务风险。
- 信息不够直观:邮件内容可能过于冗长,或者缺乏关键上下文,使处理人员难以快速判断严重性和紧急程度。
- 自动化机制缺失:邮件内容通常是非结构化的,OnCall 响应人员很难直接基于邮件做告警自愈、工单同步或故障升级。
这些问题限制了 OnCall 人员及时响应和处理告警的能力。那么有没有更好的方式替换或解决这些问题?祭出大杀器:Flashduty!使用 Flashduty 可以把非结构化的邮件内容解析为结构化数据,进而匹配各种灵活的通知、降噪策略,使用不同的通知媒介来推送。
使用 Flashduty 来增强邮件告警
Flashduty 定位是一站式告警响应平台,目的在于加速企业告警响应。Flashduty 本身是商业服务,但是官方承诺提供长期免费版本,对于一些小团队来说,是够用的。

添加邮件集成
- 登录 Flashduty 控制台,选择【协作空间-集成数据-专属集成】页面,点击创建一个新集成,找到并点击 Email 集成。
- 编写集成名称,其他选项保持默认,保存后系统会生成唯一的邮件前缀。邮件前缀可以自定义;邮件子域名默认是账户主体 ID,也可以联系官方修改为公司简称。

制定分派策略
Flashduty 中的告警均依托于协作空间进行隔离,我们可以在单个协作空间下,针对本空间告警制定灵活的分配与通知策略。如下,我选择将告警投递到飞书、钉钉、Slack 和企业微信。

测试邮件告警
你可以手动发送邮件到集成地址进行测试,也可以使用任何支持邮件告警的系统进行测试。这里我们直接代转笔者之前接收到的 Flashduty 告警邮件来做验证。

如果发送成功,我们会然后立即收到 Flashduty 的通知,以下分别是 Flashduty 控制台和飞书群聊通知的截图:

- 邮件中的 HTML 信息完整地在 Flashduty 中展现。
- Flashduty 生成告警后,将告警投递到飞书,并 at 当前值班人员。
- OnCall 人员可以在飞书中直接认领或处理这个故障。
至此我们实现对邮件告警的分派和更及时的通知。
但是这里还存在一个明显的问题:Flashduty 中完整展示了邮件内容,但是没有提取出关键信息,比如这里的主机“customers-vpn-01”,那么我们如何提取到这个信息?
提取邮件信息
我们进入到【集成详情】,点击【标签增强】,如下图,根据 body_text 标签正则提取出告警对象和告警描述。

注意 body_text 标签是系统为 HTML 邮件特别生成的,所见即所得,方便进行正则提取。现在关掉前边生成的告警,然后再次代转之前的邮件,我们看一下扩展后的信息:

成功提取到描述和主机两个新标签!
这里关于标签增强仅演示了正则提取,还有很多其他玩法,比如关联 cmdb 数据,根据 host 标签找到机器的维护人员、团队信息等等,你可以到控制台深入体验。
自动关闭告警
我们现在解决了邮件告警自动分派,通知增强以及信息扩展。还有一个问题就是,如何在接收到恢复邮件时,自动关闭告警?
我们进入到【集成详情】,选择编辑,修改邮件集成模式为【根据规则触发或关闭告警】,该模式下,每当接收到新邮件,系统会根据你的规则进行邮件匹配,匹配到的邮件按照规则去触发新告警或关闭已有告警:
- 至少需要填写一条触发规则。
- 必须设置 Alert Key 的正则提取规则。Alert Key 是告警的唯一标识,系统使用该字段查找历史告警,以便更新或关闭;如果正则提取失败,系统将使用邮件标题生成 Alert Key,以确保告警不会因为配置错误而丢失。
- 可以选择当所有规则都不匹配时,是否丢弃邮件。
如下图所示,接收所有邮件,当邮件内容中包含 RESOLVED 字样时,关闭告警,否则触发新告警。Alert Key 从邮件标题中提取,规则为 /(.*)/。

配置流程小结
| 步骤 | 配置项 | 解决的问题 |
|---|---|---|
| 添加 Email 集成 | 生成专属邮件地址 | 让老旧系统能把邮件投递到 Flashduty |
| 制定分派策略 | 飞书、钉钉、Slack、企业微信等渠道 | 把邮件告警变成可触达的 OnCall 通知 |
| 测试邮件告警 | 手动发送或转发历史告警邮件 | 验证邮件能进入告警流程 |
| 标签增强 | 从 body_text 中正则提取字段 |
提取主机、描述等可路由信息 |
| 自动关闭告警 | 触发/关闭规则与 Alert Key | 让恢复邮件关闭对应历史告警 |
最后
Flashduty 是一款强大而创新的产品,除了解决传统邮件告警的问题,还提供一系列更好玩、更强大的功能,帮助用户提升告警处理效率、降低业务风险:
- 灵活的值班策略:Flashduty 提供值班和轮班管理功能。通过可定制的值班表和通知规则,确保告警责任制,服务持续可用。
- 强大的降噪能力:Flashduty 提供告警降噪能力,充分应对告警风暴、告警抖动等场景。降噪比例至多可达 99%,让 OnCall 人员把更多精力花在业务上。
- 告警自动化能力:Flashduty 提供事件订阅、自定义操作等扩展以及一系列 API 能力,可以根据设定的规则和条件自动触发响应动作或执行特定操作,减轻人工干预负担。
Flashduty 注册之后,提供 2 周的免费试用期,快去体验吧!像 Google SRE 一样处理告警!
- Flashduty 介绍体验地址:https://www.flashduty.com