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

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

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


思路

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

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

典型手段

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

  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 评分等等。

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

目录
相关文章
|
3月前
|
数据采集 分布式计算 监控
DataWork数据处理问题之数据质量报警如何解决
DataWork数据处理是指使用DataWorks平台进行数据开发、数据处理和数据治理的活动;本合集将涵盖DataWork数据处理的工作流程、工具使用和问题排查,帮助用户提高数据处理的效率和质量。
46 0
|
5月前
|
SQL JSON 网络协议
告警流量特征分析(护网蓝初面试干货)
告警流量特征分析(护网蓝初面试干货)
155 0
|
7月前
|
数据采集 运维 监控
被报警大量骚扰?来看看治理方法论
本文记录了作者组内监控治理过程和治理心得。
4157 1
|
7月前
|
数据采集 安全 网络安全
告警繁杂迷人眼,多源分析见月明
随着数字化浪潮的蓬勃兴起,网络安全问题日趋凸显,面对指数级增长的威胁和告警,传统的安全防御往往力不从心。网内业务逻辑不规范、安全设备技术不成熟都会导致安全设备触发告警。如何在海量众多安全告警中识别出真正的网络安全攻击事件成为安全运营的痛点问题。传统的分析手段,没有从威胁来源和攻击者视角来分析问题,从黑客攻击杀伤链来看,检测点和分析手段严重不足。因此需要从多源安全信息数据融合分析,实现网络攻击精准研判和处置。
72 1
|
8月前
|
SQL 数据库连接 API
应用性能管理场景下自动探查风险
本场景主要内容是体验如何在应用性能管理场景下,模拟数据的导入、读取和预处理的过程,了解自动探查风险。
49 1
|
数据可视化
使用事件风暴探索业务全景
使用事件风暴探索业务全景
使用事件风暴探索业务全景
|
存储 缓存 运维
如何实现全链路系统问题90%精准诊断?
DevKit系统诊断工具是鲲鹏性能分析工具的子工具之一,能够针对内存、网络、存储等常见故障和异常,提供精准定位和诊断能力,帮助用户识别出源代码中的问题点,提升程序的可靠性,故障定位准确率高达90%。
175 0
如何实现全链路系统问题90%精准诊断?
网络舆情应对策略建议
在舆情应对工作过程中,或多或少地会暴露出一些不足和存在的问题,那么针对这些问题应该如何解决呢?下面小编为大家整理了一些舆情策略建议,可供参考。
|
运维 Prometheus 监控
告警运维中心|构建高效精准的告警协同处理体系
基于报告,ARMS 能快速的整合上下文,包括 Prometheus 监控进行监控。还有前端监控的相关数据,都会整合到报告里面,进行全方位检测来收敛相关问题。
告警运维中心|构建高效精准的告警协同处理体系
|
机器学习/深度学习 编解码 自然语言处理
实时语音质量监控
本文主要想介绍实时语音的质量到底是什么样的,大概介绍一下这个领域的一些已有的一些方法,然后会再介绍一下现有的方法,并且介绍一下未来想做的一些事情。