首页 > 其他分享 >告警事件的闭环处理

告警事件的闭环处理

时间:2023-09-10 22:32:50浏览次数:35  
标签:协同 处理 闭环 故障 自动 事件 告警 收敛

所谓的闭环,就是指告警发出、认领、协作处理、问题恢复、复盘改进的整个过程。

排班,专人做专事

这个手段听起来并不高大上,但确实非常有效。值班期间虽然提心吊胆的,生怕背锅,但因为是轮班制,心里总有个盼头,挺过这个周期就好了。

轮班的人在值班期间是第一责任人,会拿出 120% 的精力来处理问题,责任到人显然更容易推进问题解决,其他不值班的人则可以心无旁骛地做一些长线的事情,不至于总是被告警打断。

排班系统通常不开源,通常是作为事件中心的一个功能,PagerDuty 就提供了排班能力,即使没有系统支持,也建议人为制定一个排班表,把这个制度落实下去,对告警闭环处理也会有很大帮助。

值班人员在值班期间,虽然已经高度重视了,但也难免疏漏,这就需要告警升级机制了。

告警升级机制

告警升级是指在第一责任人收到告警之后没有及时响应,然后系统自动通知二线、三线人员的一种机制。一线人员没有及时响应的原因可能有很多,比如手机静音了没有听到,晚上睡着了,或者临时出去有事忘带手机了等等。这个时候系统发现某个告警一直没有恢复,也没有被认领,一段时间之后,就应该通知值班人员的领导或者二线备份人员,如果二线人员也迟迟没有响应,就应该继续往上升级。

告警升级机制需要认领功能的配合,也就是一线人员收到告警之后要通过某种机制告诉系统:“我已知晓告警,现在我开始处理了,你不要升级了”。

所以一般只有严重的告警才会启用升级机制,警告或者通知性质的告警都不用启用升级机制。当然,这个规范怎么定,各个团队可以自行商定。

告警收敛逻辑

一般收敛逻辑是三级收敛,event -> alert -> incident。

从 event 到 alert 的这个收敛逻辑,我们叫做一级收敛。只有这个收敛逻辑还不够,告警信息还是比较散,不好基于这些散乱的告警分别做协同,把多个 alert 收敛成一个 incident(故障),基于 incident 做协同才比较方便。但是,event 到 alert 是有一个固定的收敛逻辑的,可以通过程序自动收敛,而 alert 到 incident 却很难自动收敛。

1.根据时间做收敛;2. 根据时间 + 标签做收敛;3. 根据时间 + 文本相似度做收敛。

既然没办法把告警自动收敛成故障,那就手工来做。一个故障关联的关键告警,还是相对容易区分的,只要把关键告警关联到故障,后续基于这个故障做协同就可以了。所谓协同,一个是信息同步、协同处理,一个是共同复盘、管理跟进项。

故障协同处理

首先,并不是所有的告警都需要升级成故障协同处理。一般来讲,如果告警可以被值班人员直接处理掉,对别的团队负责的服务没有影响,不需要通知别的团队,通常是不需要升级成故障的,在告警层面来协同就可以了,自己团队内部消化掉;如果值班人员和他所在的团队没办法独自处理告警,才需要升级成故障,拉其他团队的人进来一起处理。

多个团队共同处理一个故障,不同团队的人会发现一些不同的线索,需要及时同步给所有相关的人,这个时候就可以在故障下面添加评论,其他人就可以及时看到。等到止损之后,大家还要根据故障时间线复盘,产出一系列跟进项,这个时候就需要这个故障管理模块具备跟进项管理的功能,或者至少能够跟任务管理系统良好打通。

有了这样一个故障协同的机制之后,故障被处理掉的概率就大幅提升了,后续再配合一些运营统计手段,统计各个团队的平均故障止损时间,建立红黑榜,大家就会有更高的热情来处理故障。当然,人的热情再高,也不如机器来得快,如果有些告警能够直接关联自动化处理逻辑,无疑可以大大增加事件闭环率。

告警自动处理

很多监控系统都可以配置 Webhook,当告警触发之后自动回调某个 HTTP 接口,来串联一些自动化的逻辑,让告警事件无人值守自动处理。比如某个机房的某个服务挂掉了,Webhook 的逻辑是自动调用切流的接口,把服务流量切走,这样来达到止损的目的。

告警自动处理的这段逻辑,未必一定能够做到告警自愈,有的时候只是使用这个机制来抓现场,也是非常有价值的。比如某个进程挂掉了,在挂掉的时候我想知道当时机器的一些运行情况,比如各项资源的占用情况、系统日志的信息等等,我们就可以借助告警自动处理的这个方式,来自动跑个脚本抓取当时机器上的一些现场信息,相比收到告警之后手工登录机器查看要高效得多。

告警事件的闭环处理_告警


标签:协同,处理,闭环,故障,自动,事件,告警,收敛
From: https://blog.51cto.com/key3feng/7428609

相关文章

  • 概率论-事件之间的关系
    .包含事件A发生必然导致事件B发生,就叫,A包含于B,B包含A,.空集包含于A,A包含于全集,.包含和属于的区别是:像,其中是元素,是集合,元素属于集合;但是像,A就是一个集合,B也是一个集合,两个集合之间这样的关系,就是A包含于B,就是包含。相等:如果,2.并(和)A并B,,就是A与B中至少有一个发生,......
  • AlterManager集成邮件、短信告警功能
    (文章目录)AlterManager集成邮件、短信告警功能前言在生产环境下,实时监控和报警是非常重要的,它可以快速发现问题并通知相关人员进行处理,避免事态进一步恶化。针对这一需求,我们可以使用AlterManager来集成邮件、短信告警功能。在本篇文章中,我们将会介绍如何使用AlterManager来集......
  • el-input 回车事件keydown刷新页面(白屏)
    因为触发了form表单的事件,禁用即可,@submit.prevent<el-form:model="form"[email protected]><el-form-itemlabel=""><el-inputv-model="form.code"placeholder=""......
  • 深入理解消息队列与事件驱动架构
    什么是消息队列?消息队列是一种通信模式,用于将消息从一个发送者传递到一个或多个接收者。它们允许应用程序之间以异步、松耦合的方式进行通信。消息队列通常包括消息代理(如RabbitMQ、ApacheKafka)和消息消费者。为什么使用消息队列?使用消息队列的好处包括:解耦应用程序:消息队列允许......
  • Qt图形视图框架事件传递顺序
     全文链接:http://www.fearlazy.com/index.php/post/111.html Qt为我们提供的图形视图框架真的是非常好用,它通过分解出视图、场景和图元降低了我们绘制图形的难度。它提供了强大图元控制能力,如快速查找图元、检测图元位置、检测图元碰撞等。除此以外图形视图框架还有一个很强大......
  • QGraphicsView父类中MouseMove和MouseButtonRelease事件获取办法
    QGraphicsView是QT支持的一套图元显示框架。最近在开发过程中发现一个问题,在QGraphicsView父类(QWidget)中重载mousePressEvent和mouseMoveEvent事件,只能获取到mousePress事件,mouseMove事件不论如何都获取不到,测试代码如下,为了方便测试将布局的Margin设置成了20。发现在Margin区域......
  • Prometheus+Alertmanager集成免费告警电话、短信
    Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是GoogleBorgMon监控系统的开源版本。 https://www.ccloudalarm.com账号后,选择Prometheus监控集成CCloudAlarm告警平台支持参数自定义,可针对自定义参数做告警处理~首先提供Prometh......
  • 事件总线(发布订阅者模式)
    点击查看代码classEventEmitter{constructor(){this.cache={}}on(name,fn){if(this.cache[name]){this.cache[name].push(fn)}else{this.cache[name]=[fn]}}off(name,fn){lettasks=this.cache[name]if(tasks){constindex=tasks.findIndex(......
  • [个人笔记][C#]委托事件lambda
    通过委托储存传递对方法的引用,并可以通过该引用调用方法用方法名作为委托实例或者用lambda表达式现场创建一个方法委托是强类型的,参数和返回值的类型是固定的Func<>有返回值,Action<>无返回值,Predicate<>返回一个bool,称为谓词,传递进去一个数据项,返回一个boll指出该项是否符合条......
  • 记录--移动端的双击事件好不好用?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言2023年了,我不允许还有人不会自己实现移动端的双击事件。过来,看这里,不足 50 行的代码实现的双击事件。听笔者娓娓道来。dblclickjs原生有个dblclick双击事件,但是几乎不支持移动端。 而且,该dblclick事件......