构建告警事件平台,加速告警响应
快猫运营团队
2024-10-21 17:54:48
告警事件是什么?
告警事件是在监控系统运行过程中,当被监控的对象(如服务器、网络设备、应用程序等)出现异常情况或达到特定的预警条件时,由监控系统自动生成的一条消息。这条消息通常包含触发时间、触发对象、触发原因、触发级别等信息,用于通知运维人员或相关人员及时处理。
告警事件的典型痛点
- 不够规整:一般公司通常会有多套监控系统,比如同时用了阿里云云监控、腾讯云云监控、Zabbix、Prometheus、Nightingale、Elastalert 等,这些监控系统都会产生告警事件,但是格式各异,不够规整。
- 告警风暴:某些底层问题,比如基础网络的问题,可能会导致一时间产生大量的告警事件,这种情况下,运维人员很难快速定位问题,手机一直处于震动状态,甚至会漏掉重要的告警事件。
- 告警漏处理:由于告警太多忽略了重要的告警,导致故障处理不及时,影响业务,只是其中一种场景,还有比如处理人晚上睡着了,或者临时处在一个没有信号的位置,或者处理人员在开会等等。
构建告警事件平台的必要性
要想解决刚才的痛点,通常需要专门设计一些功能。比如告警事件的ETL处理、告警事件的 Pipeline、告警事件的聚合降噪、排班认领升级机制等等。
虽然告警事件是监控系统产生的,但是监控系统通常不会着力解决告警事件的后续处理需求,因为监控系统的主要职责是收集、存储、展示监控数据,只是负责监控事件产生,较少会关注事件的后续处理。所以,构建一个专门的告警事件平台是非常有必要的。
告警事件平台的核心功能
- 对接各类监控系统,收集告警事件。一般监控系统都支持通过 webhook 的方式把告警事件推给外部系统,告警事件平台就是通过 webhook 接收各个监控系统产生的告警事件。
- 告警收敛:对于同一类告警事件,可以进行收敛,比如同一个告警规则产生的事件(即便可能是来自不同的多个机器),可以合并成一个incident,减少重复告警。
- 告警派发:根据 incident 的级别、labels 等信息,按条件派发,比如 P1 的告警通过电话、短信、IM 发送,P2 的告警通过邮件发送。
- 告警排班:由于告警OnCall 处理是一个极为耗费精力的事情,所以需要轮班,比如每人处理一周,然后轮到下一个人。
- 告警认领升级:如果告警事件迟迟没有得到处理,就要启动升级流程,升级到下一个处理人员。通常下一个处理人员可能是 backup 的人员,或者是更高级别的人员。
- 数据分析:既然各个监控系统的事件都统一到一个地方了,而且大家的处理流程都在平台留痕,那就可以分析这些数据,看看哪里可以改进,同时沉淀一些最佳实践出来。
告警事件平台选型
告警事件处理国外做的比较好的是 PagerDuty,国内做的比较好的是 FlashDuty,下面对比一下这两个产品。
PagerDuty 和 Flashduty 是两款在事件响应和告警管理领域的产品,以下是它们的对比:
- 公司背景与市场知名度:
- PagerDuty:是一家成立于 2009 年的美国公司,在全球范围内具有较高的知名度和广泛的客户群体,是该领域的先行者和领导者之一。其产品成熟度高,经过多年的发展和优化,在国际市场上得到了众多大型企业的认可,市值较高。
- Flashduty:出自北京快猫星云科技有限公司,开发人员曾参与过开源项目 open-falcon 和 nightingale 的开发。作为后起之秀,在国内市场逐渐崭露头角,尤其在国内一些对稳定性要求较高的企业中得到了应用,但在国际市场上的知名度相对较低。
- 功能特性:
- 告警管理:
- PagerDuty:具有强大的事件识别和分类功能,能够自动收集、整合来自各种监控系统的事件信息,并根据预设的规则进行分类和优先级排序。其告警功能非常灵活,可以根据不同的事件类型、严重程度等设置多种通知方式,支持多种集成,如与 AWS、Datadog 等公司的产品进行深度集成。
- Flashduty:同样具备优秀的告警事件中心功能,可以将夜莺、Zabbix、Prometheus、云监控等各类监控系统的告警汇聚在一个地方,进行统一的告警收敛、聚合降噪、排班、认领、升级、派发、协作等操作。在告警降噪方面表现出色,降噪比例高,能够帮助运维人员更高效地处理告警信息。
- 事件响应与处理:
- PagerDuty:提供了现代化的事件响应功能,支持端到端的自动化响应,用户可以在任何设备上进行操作,针对关键服务还能实现自动执行。同时,它提供了实时的事件信息和影响可见性,方便团队成员之间的沟通与协作。
- Flashduty:提供事件订阅、自定义操作等扩展以及一系列 API 能力,可以根据设定的规则和条件,自动触发响应动作或执行特定的操作,减轻人工干预的负担,提高事件处理的效率和准确性。
- 排班管理:
- PagerDuty:拥有完善的排班功能,可以根据团队成员的工作时间、技能水平等因素进行智能排班,确保在事件发生时能够及时通知到相关的责任人。同时,它还支持排班的可视化管理,方便团队负责人进行监督和调整。
- Flashduty:也提供灵活的值班和轮班管理功能,通过可定制的值班表和通知规则,确保告警责任制,保障服务的持续可用。
- 告警管理:
- 用户体验与界面设计:
- PagerDuty:其界面设计简洁直观,易于操作,用户可以快速上手。同时,它提供了丰富的文档和培训资源,帮助用户更好地了解和使用产品。在移动应用方面,PagerDuty 的移动应用程序广受认可,在 App Store 和 Google Play 上获得较高的评级,方便用户随时随地处理事件。
- Flashduty:界面设计符合国内用户的使用习惯,操作相对简单。提供了中文的技术支持人员,对于国内用户来说,沟通更加顺畅。在移动办公方面,也支持在手机上查看告警、认领告警、协同评论等功能,满足了用户的移动办公需求。
- 价格与成本:
- PagerDuty:作为一款国际知名的产品,其价格相对较高,对于一些小型企业或预算有限的团队来说可能会有一定的压力。此外,由于其服务器位于国外,可能会产生额外的网络费用。
- Flashduty:在价格方面具有一定的优势,尤其是对于国内用户来说,其收费模式相对灵活,提供免费套餐和不同级别的付费套餐,用户可以根据自己的需求进行选择。同时,其服务器位于国内,网络访问速度更快,成本更低。
- 适用场景与客户群体:
- PagerDuty:适用于大型企业和跨国公司,尤其是对数据安全和隐私要求较高、业务分布在全球各地的企业。它能够满足企业复杂的业务需求和高并发的事件处理要求,帮助企业实现数字化运营管理。
- Flashduty:更适合国内的企业和团队,特别是那些对成本敏感、希望快速上手的用户。它能够与国内的监控系统和 IM 通道更好地适配,满足国内用户的个性化需求。
总结
告警事件是运维工作中经常遇到的问题,构建一个告警事件平台是非常有必要的。在选择告警事件平台时,需要根据自身的需求和实际情况,综合考虑产品的功能特性、用户体验、价格成本、适用场景等因素,选择适合自己团队的产品。PagerDuty 和 Flashduty 都是优秀的告警事件平台产品,具有各自的特点和优势,用户可以根据自己的需求进行选择。