邮件告警还能这么玩?!

快猫研发团队 2024-03-04 00:06:00

引言

在现代的 IT 技术环境中,新的监控系统通常都支持非常丰富的通知媒介,比如电话、短信、钉钉、飞书、Slack 等,非常灵活。但是一些老旧的系统,不提供指标暴露方式,无法和监控系统良好对接,这些老古董通常只内置提供邮件告警这一种方式。这给整个分发和自动化都带来了挑战。通常来讲,邮件告警方式有以下问题:

使用邮件告警有哪些问题?

  • 1.容易被忽视:邮件告警往往淹没在日常工作邮件中,容易被忽视或误判为普通邮件,导致告警未能及时处理,增加了业务风险和损失;
  • 2.信息不全面和直观:邮件告警的内容可能过于冗长、繁琐,或者缺乏关键的上下文信息,使得处理人员难以快速理解和判断问题的严重性和紧急程度;
  • 3.自动化机制缺失:因为邮件内容通常是非结构化的,OnCall 响应人员比较难基于邮件告警做进一步的自动化处理,比如告警自愈或将告警处理为工单同步到 Jira。

这些问题限制了 OnCall 人员及时响应和处理告警的能力。那么有没有更好的方式替换或解决这些问题?祭出大杀器:FlashDuty!使用FlashDuty 可以把非结构化的邮件内容解析为结构化数据,进而匹配各种灵活的通知、降噪策略,使用不同的通知媒介来推送。

使用 Flashduty 来增强邮件告警

Flashduty 定位是一站式告警响应平台,目的在于加速企业告警响应。Flashduty 本身是商业服务,但是官方承诺提供长期免费版本,对于一些小团队来说,是够用的。

使用 Flashduty 来增强邮件告警

添加邮件集成

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

Flashduty-添加邮件集成

制定分派策略

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

Flashduty-制定分派策略

测试邮件告警

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

Flashduty-测试邮件告警

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

Flashduty-测试邮件告警

  • 1.邮件中的 HTML 信息完整的在 Flashduty 中展现;
  • 2.Flashduty 生成告警后,将告警投递到飞书,并 at 了当前值班人员;
  • 3.OnCall 人员可以在飞书中直接认领或处理这个故障。

至此我们实现对邮件告警的分派和更及时的通知。

但是这里还存在一个明显的问题:Flashduty 中完整展示了邮件内容,但是没有提取出关键信息,比如这里的主机“customers-vpn-01”,那么我们如何提取到这个信息?

提取邮件信息

我们进入到【集成详情】,点击【标签增强】,如下图,根据 body_text 标签正则提取出告警对象和告警描述。

Flashduty-提取邮件信息

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

Flashduty-提取邮件信息

成功提取到描述和主机两个新标签!

这里关于标签增强仅演示了正则提取,还有很多其他玩法,比如关联 cmdb 数据,根据 host 标签找到机器的维护人员、团队信息等等,你可以到控制台深入体验。

自动关闭告警

我们现在解决了邮件告警自动分派,通知增强以及信息扩展。还有一个问题就是,如何在接收到恢复邮件时,自动关闭告警?

我们进入到【集成详情】,选择编辑,修改邮件集成模式为【根据规则触发或关闭告警】,该模式下,每当接收到新邮件,系统会根据你的规则进行邮件匹配,匹配到的邮件按照规则去触发新告警或关闭已有告警:

  • 1.我们至少需要填写一条触发规则;
  • 2.我们必须设置 Alert Key 的正则提取规则,Alert Key 是告警的唯一标识。系统使用该字段来查找历史告警,以便对其进行更新或关闭;如果正则提取失败,系统将使用邮件标题来生成 Alert Key,以确保告警不会因为配置错误而丢失;
  • 3.我们可以选择,当所有的规则都不匹配时,是否丢弃邮件。

如下图所示,接收所有邮件,当邮件内容中包含 RESOVED 字样时,关闭告警,否则触发新告警。Alert Key 从邮件标题中提取,规则为 /(.*)/

Flashduty-自动关闭告警

最后

Flashduty是一款强大而创新的产品,除了解决传统邮件告警的问题,还提供一系列更好玩、更强大的功能,帮助用户提升告警处理效率、降低业务风险:

  • 1.灵活的值班策略:Flashduty 提供灵活的值班和轮班管理功能。通过可定制的值班表和通知规则,确保告警责任制,服务持续可用。
  • 2.强大的降噪能力:Flashduty 提供强大的告警降噪能力,充分应对告警风暴、告警抖动等场景。降噪比例至多可达 99%,让 OnCall 人员把更多精力花在业务上。
  • 3.告警自动化能力:Flashduty 提供事件订阅、自定义操作等扩展以及一系列 API 能力,可以根据设定的规则和条件,自动触发响应动作或执行特定的操作,减轻人工干预的负担,提高效率和准确性。

Flashduty 注册之后,提供 2 周的免费试用期,快去体验吧!像 Google SRE 一样处理告警!

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat