治理告警风暴,告警降噪的一些典型手段

简介: 很多公司希望提升服务稳定性,而上线了各类监控系统,指标的、链路的、日志的,而且只是指标层面可能就会有多个监控系统,这么多监控系统、这么多监控目标,如果没有良好的治理,很快就会产生告警风暴的问题,如何通过一些手段达到告警降噪的效果呢?

在现代化的互联网架构中,告警是监控系统中最为重要的一部分,可以帮助运维人员及时发现并解决问题,确保服务的可用性和稳定性。但是,随着业务的不断扩大和系统的不断升级,告警数量也会快速增加,导致告警风暴的出现,给运维人员、研发人员带来了很大的困扰。因此,如何有效地治理告警风暴,降低告警噪音,成为了运维工作中的一个重要问题。


思路

治理告警风暴和告警降噪需要从以下几个方面进行思考:

  • 告警策略:需要根据业务特点和实际情况,合理制定告警策略,防止因过于严格的告警策略导致过多无用告警产生。
  • 告警优先级:根据业务的重要程度和影响范围,合理设置告警优先级,确保关键告警能够及时通知运维人员。
  • 告警分类:对告警进行分类,能够让运维人员更加清晰地了解问题的性质和紧急程度,不同的告警需要不同的通知媒介和紧急程度,也能够使告警处理更加高效。
  • 告警处理:需要建立完整的告警处理流程,确保告警能够得到及时处理和解决,如果能做到自动化的告警自愈那就更好了。

典型手段

治理告警风暴和告警降噪有以下典型技术手段:

  1. 告警去重:对于重复的告警,需要进行去重处理,减少无效告警的产生。
  2. 告警压缩:对于短时间内产生大量的告警,可以进行告警压缩,将多个告警合并为一个,降低告警噪音。
  3. 告警屏蔽:对于一些已知的无害告警,可以进行告警屏蔽,避免因此产生不必要的干扰。
  4. 告警分级:对告警进行分级处理,将关键告警优先展示,降低无用告警的干扰。
  5. 告警抑制:如果监控数据同时触发了高级别的告警规则和低级别的告警规则,则只发送高级别的告警。

以上内容是 Notion 的建议,我略微做了补充修正,下文是我的实战建议。

优化告警策略

优化告警策略是最为釜底抽薪的办法,大量告警产生大概率是告警策略本身就有问题。很多告警发出来,只是起到一个通知的作用,而告警接收者无需产生动作,那这个告警策略是否合理就很值得深究。通常来说,告警规则里建议配置Runbook,也就是预案SOP的链接,这样告警之后,处理人员看到这个预案内容就可以一步一步去操作。Runbook预置率可以作为一个很关键的告警策略量化分析指标,预置率太低,一定是有问题的。GrafanaNightingale 等系统在配置告警规则的时候,都支持附加字段,允许用户随意配置额外的字段信息,但是Runbook这个字段是内置的,可见其重视程度。

业务告警和资源告警区别对待

比如A告警是订单量下跌,B告警是某个机器的CPU飙高,哪个更重要?一目了然吧。老板更关注哪个?一目了然吧。A告警产生,说明公司核心业务有故障,直接造成了资损,老板可能很快就会收到投诉电话。B告警产生,可能在 Kubernetes 平台的自动处理之下,相关业务 Pod 很快就被自动调度走了。所以业务指标应该有 VIP 级别的对待方式,这类指标通常被称为北极星指标,是全公司员工共同努力的方向。Flashcat 产品中就专门有个子模块叫北极星,就是因为这类指标实在是太重要了。应该有更高优的处理机制,有更完备的告警规则,有更好的展示方式。

监控系统太多,相关逻辑不完备怎么办

很多公司都有多套监控系统,但是监控系统通常把重心放在了数据采集、时序库、告警规则的管理、监控大盘等功能上面。对于告警事件产生之后的后续处理逻辑关注较少。有些监控系统或多或少也会做一些,但是整体来看,监控系统的这方面的能力良莠不齐。所以,我们更推荐的做法是建立统一的告警事件OnCall中心,在这个产品里,来完成告警事件聚合降噪、排班OnCall、认领、升级、协同,等一些列逻辑,这样一来,监控系统只需要产生告警事件就好了,不奢望做更多的事情,这个统一的OnCall中心来完成后续的事件处理。这个产品主要解决两个大问题,一个是告警事件的分发触达,一个是良好的协同。

告警事件的分发触达,可以支持灵活的通知策略,比如 P1、P2 的高优告警有自己的通知、聚合规则,P3、P4 的低优告警有自己的通知、聚合规则。协同这块,一个是体现在与钉钉、飞书、企微的良好打通,一个是事件流转、信息共享。这方面相关的产品大家可以关注一下 PagerDutyFlashDuty

建立量化改进机制

通过一些手段持续改进,告警风暴、打扰问题或许可以得到改善,但是具体是做得如何最好能够量化出来。一个是可以给老板讲,有数据有依据,一个是我们做改造的时候也能有据可依,知道做的一些手段确实有改进提升。典型的量化方法,比如告警事件的数量,短信、邮件、电话、IM 的通知数量,告警系统的 NPS 评分等等。

最后,希望各位朋友都能够有一个良好的告警治理体系,每天不至于太过疲惫,快乐工作、健康生活。

目录
相关文章
|
4月前
|
存储 监控 数据可视化
大模型可观测1-5-10:发现、定位、恢复的三层能力建设
本文通过丰富的代码Demo和截图为读者提供了可落地的实践指南。
725 34
大模型可观测1-5-10:发现、定位、恢复的三层能力建设
|
人工智能 Java Serverless
【MCP教程系列】搭建基于 Spring AI 的 SSE 模式 MCP 服务并自定义部署至阿里云百炼
本文详细介绍了如何基于Spring AI搭建支持SSE模式的MCP服务,并成功集成至阿里云百炼大模型平台。通过四个步骤实现从零到Agent的构建,包括项目创建、工具开发、服务测试与部署。文章还提供了具体代码示例和操作截图,帮助读者快速上手。最终,将自定义SSE MCP服务集成到百炼平台,完成智能体应用的创建与测试。适合希望了解SSE实时交互及大模型集成的开发者参考。
13357 60
|
5月前
|
边缘计算 测试技术 数据格式
小体积,大潜力 - 腾讯混元Dense模型多尺寸正式开源
混元是腾讯开源的高效大型语言模型系列,旨在在各种计算环境中灵活部署。从边缘设备到高并发生产系统,这些模型通过先进的量化支持和超长上下文能力提供了最佳性能。
334 0
|
3月前
|
机器学习/深度学习 存储 人工智能
大模型微调:从理论到实践的全面指南
🌟蒋星熠Jaxonic:AI探索者,专注大模型微调技术。从LoRA到RLHF,实践医疗、法律等垂直领域模型优化,分享深度学习的科学与艺术,共赴二进制星河的极客征程。
大模型微调:从理论到实践的全面指南
|
存储 数据挖掘 OLAP
Doris数据库的效率为什么很高
【6月更文挑战第8天】Doris数据库的效率为什么很高
1072 9
|
机器学习/深度学习 运维 监控
智能化运维:从被动响应到主动预防的转型之路####
本文深入探讨了智能化运维(AIOps)如何引领信息技术管理从传统的被动响应模式向主动预防机制转变,强调了大数据、人工智能算法与机器学习技术在提升系统稳定性和效率中的关键作用。通过分析智能化运维的核心价值、实施策略及面临的挑战,本文为读者揭示了一个更加智能、高效且灵活的IT运维未来蓝图。 ####
|
消息中间件 存储 NoSQL
国产化中间件正在侵蚀开源中间件
国产化中间件正在侵蚀开源中间件
2582 7
|
存储 数据库 时序数据库
influxdb得导出与导入
influxdb得导出与导入
978 1
|
Android开发
aTimeLogger--时间追踪工具
aTimeLogger--时间追踪工具
321 0
|
JavaScript 前端开发 Java
小笔记:表 - 各种语言的 CommonMark Markdown解析器 实现
小笔记:表 - 各种语言的 CommonMark Markdown解析器 实现
863 1

热门文章

最新文章