告警运维中心|构建高效精准的告警协同处理体系

简介:基于报告,ARMS 能快速的整合上下文,包括 Prometheus 监控进行监控。还有前端监控的相关数据,都会整合到报告里面,进行全方位检测来收敛相关问题。

作者:延福

在开始正式内容前,我想跟大家聊一聊为什么要做告警平台。

随着越来越多企业上云,会用到各种监控系统。这其中,用 Skywalking 做 tracing,Prometheus 做 matches,ES 或者云上日志服务,做日志相关监控,随便算算就至少有三套系统了,这其中还不包括云监控等云平台自身的监控平台。这么多监控平台如果没有统一配置告警的地方,就需要在每个系统中都维护一套联系人,这会是一个复杂的管理问题。与此同时,会非常难以形成上下文关联。比如,某一个接口出现问题,那可能云监控的拨测在报警,日志服务的日志也在报警,甚至 ARMS 应用监控也在报警。这些报警之间毫无关联,这是在云上做告警云很大的痛点。

其次无效告警非常多。什么叫无效告警?当业务系统出现严重故障时,关联系统也可能出现相关告警。而且关联告警会非常多,进而将关键信息淹没在告警海洋中,导致运维人员没办法及时对告警进行处理。最后,现在很多报警经常发生,但是没有人处理,就算有人处理了,但处理情况怎么样,关键性告警从发生到修复的时间到底有多长,每天有多少人在处理,企业的 MTTR 能不能算出来?这也是我们要做统一告警平台要解决的问题。

为了解决以上三个问题,ARMS 的智能告警平台应用而生。

首先,集成了众多监控系统包括 ARMS 本身的应用监控、云监控、日志服务等十几家监控系统,并提供开箱即用的智能降噪能力。同时,为了更高效的协作,整个协同的工作流都可以放在钉钉、企业微信等 IM 工具上,用户可以更加便捷的去处理和运维相关的告警。最后,提供告警分析大盘帮助用户来分析告警是不是每天都有人在处理,处理情况是什么样的。

告警要在脑海里形成抽象的概念,到底分成哪些步骤?

第一、从事件源产生告警事件,事件是告警发送之前的状态。事件并不会直接发送进来,它需要和告警的联系人匹配完成以后,才能生成告警流程。这张图简单的介绍了告警的过程。这也是很多同学用系统时候会经常出现的问题:配置了事件,却不知道怎么样产生告警。必须要事件加联系人才能产生告警。

第二、很多同学用的告警系统默认没有接入。我们也提供了灵活告警事件源的接入方式。可以按照自定义的接入方式,将事件传进来,我们来清洗字段,最后接入形成告警平台可以理解的告警。

工单系统举例,希望系统里产生很重要的事件也往告警平台去传时,可以把工单系统的报警事件通过 webhook 的方式发送到告警平台。识别并设置相关内容,再通过电话或短信方式通知到相应联系人。告警平台本质上是接受事件,把告警团队相关信息配到告警平台,帮用户把事件给这些团队的联系人进行匹配发送。

接下来,展示一下这部分能力是怎么实现的,在界面上是什么样的功能。

首先,打开 ARMS 控制台,拉到最下面告警管理模块。我们可以看到概览,其中包括大部分接入过程、事件处理流程等等。

现在已经用 ARMS 应用监控的用户,可以直接在其中先创建一个告警的规则。条件是应用响应时间,调用次数大于一次的时候,它就会产生一个事件。

如果是开源 Skywalking 或其他服务,需要到其中去把告警规则设好,把相应的事件传递过来。传递进来以后,在报警事件列表里面就能看到对应报警的事件了。

报警事件发送进来以后。首先会对告警事件进行降噪处理,识别告警目前最多关键词是什么样,哪些关键词高度重复,或者哪些内容是高度匹配的。同时,根据我们给出的关键词进行压缩。比如,不希望能收到来自于测试环境的告警,可以把“测试”这两个字作为屏蔽词,这样带“测试”相关屏蔽词的功能,告警事件就不会进行二次报警。

告警事件传递过来后,整个数据都会放在事件大池子里面。需要对这些事件进行分配,这个事件到底谁去接收他,谁来对这些事件做通知和排班管理。按照告警名称或者其他的字段等在告警里面预制的字段去匹配,对 Pod 状态的异常做匹配,那它会生成告警。

生成告警以后,可以在联系人里面去配置相关联系人,其中包括导入通讯录或配钉钉机器人等等。在通用策略里面,进一步配置,让用户配一个机器人或者真实的人去接受告警。也可以是对工单系统,比如 Jira 等平台里面去做对接,保证信息可以传递到他们那边。

配完通知策略以后,一旦产生告警,就可以收到相关的告警了。比较推荐您使用的是通过钉钉来接收相关的报警。

这里展示一下怎么样通过钉钉来接收相关的告警。比如,这是我们接收到钉钉相关告警。在接收到这个告警以后,对这条告警消息,只需有一个钉钉账号,不需要有理解这些相关信息,或者登录到系统,直接对这个告警进行认领。因为和钉钉系统深度集成,可以去认领告警,也可以在认领完以后点解决这条告警。

我们会把过程记录在活动里面。用户就会知道认领和关闭告警的整个过程。同时,每天会针对情况做统计,比如今天发生告警的数量,是否有处理,哪些没有处理,整体处理情况是怎么样的。如果团队比较大,有非常多运维同学,而且会有 L1 和 L2 分层运维同学的时候,可以使用排班功能进行线上排班。比如,这一周是某个同学接受告警,下一周是另外的同学。同时,也可以做升级策略的排班管理。重要告警在十分钟内没有人去做认领时,对重要告警做相应升级。

作为运维主管或运维总监,需要了解每天发生的这么多告警,经过一段时间后,它是不是有收敛或平均 MTTR 用了这些工具以后,有没有提升。我们提供了告警大盘,通过这个告警大盘可以了解到每天告警平均响应时间以及大家处理情况。MTTx 相关时间等统计数据会在这个大盘里面给用户进行展示,同时这个大盘是集成在 Grafana 上面,可根据实际需求,把相关数据放 Grafana 上,或者您的 Prometheus 数据源里面做二次的开发。

告警不仅是管理和收集的过程。很多时候虽然发现了告警。在告警处理过程中,阿里云是否可以提供一些建议参考。对此,我们也提供了相应功能来增强这一块的能力。

首先,基于类似应用监控的产品,提供一系列默认报警能力。一旦产生相关报警,我们会提供相关诊断能力。在如上图 20 多种场景下,会提供自动诊断报告。

举一个例子,应用的响应时间做突增,我们会生成一个直观的报表。在这个报表中,会告诉你当前突增的原因是什么。然后会整体的检测这个应用突增以后到底是哪些因素导致的。一般来说,这个诊断逻辑和普通的诊断逻辑是一样的。应用突增会去先检测一下多个主机是不是有突增,然后是不是接口有突增。这些接口如果它响应时间的数据特征是和整个应用一致,会在进一步分析这个接口里面到底又是哪些方法有突增,他传递的入参是什么,为什么有这样的突增?同时我们也会给出来一些特征请求告诉用户,慢的请求是怎样运行的。

以这个 version.json 接口为例,它是在对应的这个时刻,与应用有类似的突增。主要的核心方法就是这样一个方法,导致了接口缓慢。

同时我们结合当时打出来的堆栈可以再次确认,当时就是个 handler 方法导致了它的缓慢,那接下来我们就可以结合代码进一下进一步的优化了。

这就是 ARMS insight 针对常见问题深入分析的一个 case。基于报告,ARMS 能快速的整合上下文,包括 Prometheus 监控进行监控。还有前端监控的相关数据,都会整合到报告里面,进行全方位检测来收敛相关问题。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

01let和const

1.1 let 作用 声明局部变量 特性 不存在变量提升不能重复声明不作为window属性块级作用域暂时性死区(声明前不能使用) 1.2 const 作用 生成常量 特性 与let一致 globalThis 对象 Es5模块中的this是windowEs6模块中的this是undefined函数中的this&…

数字人技术在直播场景下的应用

作者 | 薄志浩本文介绍了在数字人AI技术发展迅猛,整体AI数字人市场呈现高速增长的趋势下,与强调高实时性互动的直播业务场景的结合与应用,通过数字人渲染技术、强大的AI全栈能力、算力为虚拟主播赋能,在面部表情、肢体动作、问答对…

CNCF 沙箱项目 OCM Placement 多集群调度指南

简介:在这篇文章中,将介绍 Placement 如何选择到所需的集群,Placement 可以提供的调度功能,以及一些场景下的最佳实践,使用者可以参考示例来编写符合自己要求的 Placement。其他一些高级调度功能,如支持污点…

02 解构赋值

解构赋值 1.1 什么是解构赋值 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构 只要某种数据结构具有 Iterator 接口,都可以采用数组形式的解构赋值 1.2 数组解构赋值和对象解构赋值的区别 数组的元素是按次…

如何帮助业务丝滑配置?阿里巴巴用了 11 年的“功能开关” 是什么?

简介:AHAS 功能开关是一个轻量级的动态配置框架,通过功能开关可以动态管理代码中的配置项,根据需求为某个应用开启或关闭部分功能,或设置某个性能指标的阈值。功能开关通常用于设置黑白名单、运行时动态调整日志级别、降级业务功能…

摆脱 AI 生产“小作坊”:如何基于 Kubernetes 构建云原生 AI 平台

简介:本文将介绍和梳理我们对云原生 AI 这个新领域的思考和定位,介绍云原生 AI 套件产品的核心场景、架构和主要能力。 作者:张凯 前言 云原生(Cloud Native)[1]是云计算领域过去 5 年发展最快、关注度最高的方向之一…

Node 之父斥责 Oracle:你们也不用,那请交出 JavaScript 商标!

整理 | 苏宓出品 | CSDN(ID:CSDNnews)也许 13 年前,Oracle 以 74 亿美元收购 Sun Microsystems 公司时,也不会想到自己后续要牵扯到诸多的版权诉讼与投诉的漩涡之中。众所周知,Oracle 在收购 Sun 之后&…

mobx的使用

mobx的使用 1、API mobx-react Provider 包裹根组件,用于传递数据observer 组件变为响应式inject 接收mobx实例(用于类组件)MobXProviderContext mobx observable 声明变量action 声明函数用于修改observable 的值makeObservable 更新状态 2、安装 yarn add mo…

OPLG:新一代云原生可观测最佳实践

简介:OPLG 体系拥有成熟且富有活力的开源社区生态,同时也经过了大量企业生产环境的实践检验,是当下建设新一代云原生统一可观测平台的热门选择。但是,OPLG 只是提供了一个技术体系,如何灵活运用,解决实际问…

EventBridge 集成云服务实践

简介:本篇文章主要向大家分享了通过 EventBridge 如何集成云产品事件源,如何集成云产品事件目标以及通过事件流如何集成消息产品。 作者:李凯(凯易) EvenBridge 集成概述 EventBridge 是阿里云所推出了一款无服务器…

前端性能——数据持久化

如何实现数据持久化 一般情况下,借用本地存储用的比较多,或者一些插件,如vue的keep-alive,配合redux使用的persist 为什么需要数据持久化 1、减少发起请求的次数,从而提高性能。 场景:比如一个网站&…

云原生微服务的下一站,微服务引擎 MSE 升级

简介:管好微服务,成为云原生时代的新难题。 管好微服务,成为云原生时代的新难题。 从建好微服务到管好微服务,差的虽是一个字,连接起两边的却需要大量的微服务落地经验。因为软件架构的核心挑战是解决业务快速增长带…

火爆全网的“数字人”,到底是个啥?

作者 | 小枣君来源 | 鲜枣课堂庄子他老人家说过:“人生,就是一场游戏。”对于这场游戏,有些人玩得很嗨,到了结尾不肯退场,总希望无限期玩下去。例如秦始皇,总想着灵丹妙药、长生不死。还有些人呢&#xff0…

阿里云RemoteShuffleService新功能:AQE和流控

简介:阿里云EMR自2020年推出Remote Shuffle Service(RSS)以来,帮助了诸多客户解决Spark作业的性能、稳定性问题,并使得存算分离架构得以实施。为了更方便大家使用和扩展,RSS在2022年初开源,欢迎各路开发者共建。本文将…

react如何在父组件中调用子组件事件

父组件是如何使用子组件的事件的,下边数值累加的例子 类组件 将子组件的this传到父组件,给父组件添加一个属性,值为this,之后就可以通过父组件的属性调用子组件的事件了 import React,{Component} from react;// 这是子组件 clas…

OpenSergo 正式开源,多家厂商共建微服务治理规范和实现

简介 OpenSergo,Open 是开放的意思,Sergo 则是取了服务治理两个英文单词 Service Governance 的前部分字母 Ser 和 Go,合起来即是一个开放的服务治理项目。 该项目由阿里云、bilibili、字节跳动,以及 Spring Cloud Alibaba、Nacos…

Linux中常见的网络端口号

在使用计算机或智能手机时,我们使用各种硬件端口,如用于音频、HDMI、Type-c 等的 3.5mm 端口,其用于与硬件外围设备通信。同样,网络端口可以让我们在一台计算机上访问各种网络服务来达到通信的目的。因此,端口被认为是…

如何在云原生混部场景下利用资源配额高效分配集群资源?

简介:由于混部是一个复杂的技术及运维体系,包括 K8s 调度、OS 隔离、可观测性等等各种技术,之前的一篇文章《历经 7 年双 11 实战,阿里巴巴是如何定义云原生混部调度优先级及服务质量的?》,主要聚焦在调度优…

前端面试题网址合辑

八个笔试&面试仓库 1.Front-end Developer Interview Questions网址:https://h5bp.org/Front-end-Developer-Interview-Questions/ 2.CS-Interview-knowledge-Map 网址:https://github.com/InterviewMap/CS-Interview-Knowledge-Map 3.Daily-Questio…

稳定性与高可用保障的工作思路

简介:稳定性与高可用性是老生常谈的两个词。凭借经验和感受我们知道,提高系统的这两项指标,系统会更加健康,产品也会有更好的用户体验。但是如果要给稳定性和高可用性下一个定义该如何表述?稳定性和高可用性这二者又有…