告警优化的三招六式

举报
SRE确定性运维 发表于 2022/11/25 16:43:48 2022/11/25
【摘要】 SRE工程师的重要工作之一是通过构建智能运维平台,结合专家经验,对告警实现精准降维打击,减少99%的无效告警、手工重复工作。在海量告警的场景下,告警处理的极简智能不仅可以提升SRE人均运维效率,更可以提升工作幸福感。

来源:华为云SRE确定性运维专刊(第二期)

1.PNG

      SRE工程师的重要工作之一是通过构建智能运维平台,结合专家经验,对告警实现精准降维打击,减少99%的无效告警、手工重复工作。在海量告警的场景下,告警处理的极简智能不仅可以提升SRE人均运维效率,更可以提升工作幸福感。

      随着业务量持续增长,软件架构不断演进和重构,功能特性和性能目标也经常变化。告警由各种复杂的黑盒、白盒的监控信息与判断条件交叉组成,会随着业务的演进一起变化。某个低频告警可能随时变成一个高频告警,需要SRE工程师快速制定临时应对措施,并且同步寻找根因以便彻底解决问题。
      伴随着华为云的规模增长,告警也在规模增长,每天都有成千上万的告警等待Oncall处理,为降低海量告警带来的副作用,我们经过艰苦卓绝的优化实践,减少了99%的无效告警。经验总结如下:

      一、告警过多的危害
      1、Oncall压力过大,每天工单量>10,每小时都会触发不影响业务的告警,会影响个人工作效率,影响团队稳定性。
      2、“狼来了”效应,会导致Oncall忽略真正影响业务的告警。
      3、告警对监控系统和业务系统存在性能压力,需要设置Cgroup限制CPU和内存的使用配额。当告警过多时,会导致OOM或者CPU超限,引起告警进程被kill等系列问题。

      二、告警优化的责任方
      SRE工程师是告警秩序的管理者,使复杂告警简单化、通俗化,给Oncall输出简单、准确、有效、可处理的告警。
      三、告警优化的三招六式
      分析告警要从小的角度出发,把少量的告警信息抽象化,找出其中的本质,找出告警的主要矛盾和矛盾的主要方面,这样容易入手。这几个矛盾解决了,松开了复杂的信息,又会出现另外的复杂交叉聚合,以此方法依次解开,逐步就理顺了告警。

      第一招:巴莱多定律,即2/8法则
      在任何一组东西中,最重要的只占其中一小部分,约20%,其余80%尽管是多数,却是次要的,因此又称二八定律。
      如果所有告警都同等紧急,就意味着他们也同等不紧急。华为云部分服务存在紧急告警占比较大情况,紧急告警与非紧急告警的比例需符合2/8法则。

      第二招:充分必要条件
      告警应该是故障的充要条件,即告警后能推出故障,故障后能推出告警。华为云存在大量告警无法推出故障,只能从故障推出告警,相关人员以此免于被问责和处罚,是一种“政治正确”。
      第三招:告警优化哲学
      » 每个紧急告警都应该是可以具体操作的;
      » 如果紧急告警不需要立即执行该操作,可以等到第二天早上再执行,那它就不应该成为紧急告警;
      » 每个紧急告警的恢复都应该需要智力分析,如果某个告警只是需要一个固定的机械动作,那它就不应该成为紧急告警;
      » 处理一个告警仅需要固定的机械动作,那么这个动作应该被安全地自动化执行;
      » 处理告警的操作如果只具备短期效果,那么还要考虑长期方案;
      » 如果SRE存在忽略告警的情况,说明这个告警与故障之间无必然关联,需寻找其它告警做聚合分析。
      第一式:(告警)我是谁,我从哪里来
      我是谁:要清晰了解每一个监控的逻辑,通过分析监控代码,分析告警表达式的与、或、非逻辑判断代码输出,画出告警逻辑图;


2.PNG

      我从哪里来:告警的来源系统和传递路径要清晰了解;

3.PNG

      第二式:集群/主备形态的告警优化建议
      云服务虚拟机一般都是集群/主备形态,理论上单点故障不会引起集群故障,大部分告警可以通过软件工程+系统工程方法自愈。
      » 首先应针对集群业务功能点做黑盒监控,生成紧急告警,确保先于用户发现问题;
      » 其次将白盒监控告警降级到重要或者提示,降低Oncall并发处理压力;
      » 最后利用故障自愈平台,针对确定性告警做确定性自动分析、自动恢复、自动关单措施。
      第三式:利用SRE智能运维平台进行告警降量
      华为云SRE构建的智能运维平台,可以从闪断、震荡、汇聚、相关性分析、自动屏蔽等多个维度对告警进行优化降量,从而减少单位时间内海量重复告警,避免了对SRE的干扰。
      » 闪断告警:如果一告警源的同一告警产生时间与清除时间的间隔小于指定时间,则该告警称为闪断告警,该时间段称为闪断周期。
      » 振荡告警:指定时间内,同一告警源的同一告警交替产生/恢复的次数(产生并恢复统计为1次)大于指定值时,则称该告警为振荡告警。

4.PNG

5.PNG

      » 汇聚告警:指定时间内,同一条件(4要素)产生的告警次数大于指定值时,则可以汇聚;4要素信息有16种组合,其中4种可以通过汇聚降量,1种可以优化监控降量,2种需要结合自愈分析降量,其它组合可以根据需求开发能力。
      » 告警触发次数:在服务依赖复杂情况下,经常有连锁反应导致监控异常,而业务却是正常态。适当增加告警触发次数为连续2-5次,可以有效降低告警误告率。
      » 告警自动屏蔽:指定时间内,指定条件产生的告警,根据规则被屏蔽。SRE不会关注被屏蔽的告警,屏蔽后的告警将不在“当前告警”或“事件列表”中显示。自动屏蔽一般只屏蔽白盒告警,不屏蔽黑盒告警,用于减少变更导致的确定性告警。
      » 告警自动清除:不能自动恢复的告警,需要手工清除。建议在告警恢复后,系统发送告警清除通知到监控平台,实现告警自动清除,减少手工重复工作。
      第四式:周边服务/组件连通性告警化建议
      典型的不确定性告警,在服务链很长的情况下,根据SRE云服务分权分域标准,通常有以下几类问题:
      » 对其它服务不具备可操作性;
      » 依赖链条很长,无法独立快速定位其它服务故障根因;
      » 无法完全确定自身服务功能异常点范围;
因此,针对上述问题,需要通过确定性动作优化。通过对告警审视,选择如下告警优化措施:
      » 升级到War Room告警,通过短时间投入各服务SRE人员定位根因,解决风险;
      » 告警触发敏感度调低,可以增大告警失败次数、超时时长、容量阈值;
      » 降级到次要/提示,作为故障的辅助判断依据。
      第五式:过载类告警优化建议
      总体思路:通过闪断+汇聚+监控脚本优化解决短期问题,通过自动扩容+产品优化解决长期问题。
      » CPU利用率告警:CPU是可挤压类资源,通常认为CPU利用率告警本身无法处理,要处理引起该告警的进程代码问题,或者通过纵向扩容、横向扩容解决问题。
      » 内存利用率告警:内存在极端情况下OOM会引起OS的reboot。如果内存不是随时间线性增长,可以考虑横向扩容、纵向扩容。华为云部分服务的内存随时间线性增长,并且无法短期内解决,可以分时分批逐个重启进程释放内存,保护OS不重启。在集群模式下,可以做到不影响业务,并且做到自动化处理。

      » 磁盘利用率、网络IO超限告警:分析告警频率、业务行为、故障影响等因素。如引起业务异常,需要考虑扩容网络带宽、更换高IO磁盘、针对单租户/IP/实例进行Qos限流等措施。如业务无影响,并且无法扩容网络带宽及换盘,可以考虑做告警闪断规则解决尖峰问题。

      第六式:从告警处理人的角度分析,哪些告警可以被优化
      SRE专家需要定期分析Oncall团队的工作量及告警工单回填情况,结合告警优化的三招六式,使用项目管理工具,结合质量管理理念,做好团队告警优化工作。
      如果有以下几类情况,告警是可以优化的:
      » 平均每天每个oncall处理告警超过10单;
      » 查看告警的维护经验不存在;
      » 查看告警回填信息,该告警没有经过Oncall智力分析
(例如已知问题修复中、告警自动恢复、历史告警自动清除等);
      » 告警不是自己服务的问题,无法处理;
      » 告警操作是重复机械的;
      » 没有用户报障,并且判断告警对业务没有影响;
      » 已经有黑盒拨测紧急告警替代,告警意图重复;
      » 告警无法处理,找最牛的技术专家,SRE和产品开发都无法处理该告警。

      总结
      SRE工程师的重要工作之一是通过构建智能运维平台,结合专家经验,对告警实现精准降维打击,减少99%的无效告警、手工重复工作。在海量告警的场景下,告警处理的极简智能不仅可以提升SRE人均运维效率,更可以提升工作幸福感。
      参考文献:《SRE:Google运维解密》[美] Bet syBeyer(贝特西•拜尔),Chris Jones,Jennifer Petoff,NiallMurphy等著,孙宇聪译

6.PNG

      拓展阅读:华为云SRE确定性运维专刊(第二期)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。