SLS 智能告警平台最新技术总结_数据中台 告警系统-程序员宅基地

技术标签: 运维  big data  云计算  

本文主要讲述过去一年内可观测平台 SLS 的改进和迭代。

SLS 作为一站式的可观测平台,提供了对 Log、Metric、Trace 等数据的完整支持,包括数据存储、查询分析、ETL、可视化、监控告警等能力。随着企业业务的不断发展,线上服务以及它们所产生的的可观测数据也会越来越多,越来越复杂,如何从这些海量的异构数据中快速发现有价值的信息,进而赋能运维与运营人员,是一个比较大的挑战。

在这个过程中,可能面临的挑战有:

  • 多套系统重复建设,维护成本高难度大
  • 数据孤岛化,异构数据的协同监控比较困难,不得不做各种数据处理
  • 大量的重复告警无法收敛,用户心态已经麻痹
  • 通知渠道与通知内容形式相对比较单薄,需要进一步去排查和发现问题,影响处理效率
  • 动态分派、人员值班等能力弱,导致工作负载不均衡,影响工作效率
    ……

为了解决这些问题,我们在 SLS 原有的监控告警能力基础上,进一步做了非常多重大的功能与体验升级,致力于将 SLS 打造成一站式的智能运维平台,从而帮助企业与用户解决以上诸多痛点。之前已经有多篇文章对此作了较为完整的介绍,可参考附1、附2。

在过去的一年,我们在功能性、易用性、集成度等方面做了大幅改进和优化,致力于满足不同需求层次的客户诉求,让智能告警触手可及。

架构大图

在这里插入图片描述

整体上,SLS 智能告警系统主要分为以下几个组成部分:

  • 告警监控:依托于 SLS 本身强大的存储和查询分析能力,我们可以支持海量数据的实时查询分析、异构数据的协同分析、跨账号跨地域的协同监控等能力;
  • 告警管理:提供了多种告警降噪能力,包括去重、合并、抑制、静默等;
  • 行动管理:对接了十多种通知渠道,可以快速配置使用,并且提供了非常灵活且强大的动态分派能力;
  • 开放告警:对于数据并未接入 SLS 的用户,可以通过开放告警的能力,将自建系统或其它云产品的告警接入 SLS 告警管理系统,从而快速使用 SLS 的告警管理与行动管理能力。

功能演进概述

在过去的一年,主要从以下两个维度做了功能演进:

  • 从点到线:每个独立模块都做了功能增强与优化,例如对于告警监控继承了独享 SQL,丰富了内置规则库等;对于告警管理实现了算法降噪等;通知管理部分新增了多个通知渠道,实现了与外部 CMDB 系统的对接,增强了移动端的通知查看体验;开放告警也丰富了多个数据源等(参考下图标注部分);
  • 从线到面:基于业务实现告警的统一管理,通过在告警管理中心应用中,进行逻辑上的业务划分,可以实现从数据到监控到告警管理的完整流程。
    在这里插入图片描述

最新功能演进详情

集成独享 SQL 支持海量数据监控

在需要对大量数据进行监控的时候,由于查询资源的限制,可能会导致查询不完整、查询超时等问题,从而导致监控失效。为了解决该问题,SLS 告警的监控集成了 SQL 独享版,通过开启该功能,可以支持更大数据量、更高性能的监控。
在这里插入图片描述

在配置监控查询分析语句的时候,可以选择是否开启 SQL 独享版,有以下三种选项:

  • 启用:始终使用 SQL 独享版去查询,该选项会产生少量的独享 SQL 费用;
  • 关闭:不使用 SQL 独享版。在数据量比较大、SQL 比较复杂的情况下,可能会导致查询不精确,从而影响监控的准确性;
  • 自动:默认不使用 SQL 独享版,当发现查询不精确或者超时失败的时候,会使用 SQL 独享版再去查询。该选项在性能和费用之间做了平衡。

基于算法的智能合并降噪

在告警降噪过程中,我们可以通过配置适当的合并规则,将具有相似特征的告警合并到同一个分组中,实现批量的通知。例如可以设置将相同应用的告警进行合并,从而避免同一个应用的多个告警频繁触发通知。
在这里插入图片描述

但是在有些场景下,并没有非常明确的预设规则可以用来进行合并。基于这些场景,我们提供了智能合并模式。SLS 告警智能合并依托于 NLP 算法,自动化地去学习告警之间的关联或相似关系,在不依赖于历史告警数据的前提下(冷启动),可以实时地对不同来源的告警进行智能合并,然后再通知给用户,让用户免于告警风暴的困扰。关于智能合并更详细的介绍,可以参考附3。
在这里插入图片描述

通知渠道扩展

通知渠道方面,在已有的短信、语音、邮件、钉钉、自定义 Webhook 等基础上,新增了企业微信、飞书、Slack、函数计算、事件总线等通知渠道。

另外对于钉钉、企业微信、飞书、Slack、自定义 Webhook 等这些 Webhook 类型的通知渠道,提供了 Webhook 集成的功能,从而可以配置一次多处复用。在通知内容上,也对这些通知渠道做了包装,因此用户无需感知不同通知渠道的数据协议,只需要关注于自己希望看到的通知内容即可。
在这里插入图片描述

除了短信、钉钉这样的通知渠道,还可以对接函数计算来实现一些自动化的响应。即在告警触发后,无需人工干预,可以使用设定好的规则自动去处理故障,让故障的处理变得更加自动化和高效。详细使用案例可以参考附4。
在这里插入图片描述

内容模板增强

由于告警通知支持多个渠道,每个渠道都有各自的内容格式,比如邮件支持 HTML,钉钉等 IM 渠道支持 Markdown,因此同样的通知内容,在不同渠道中,需要使用不同的样式。另外对于具体的通知内容,可能需要根据不同的条件来展示不同的内容(例如告警触发的时候显示原始日志,恢复的时候无需展示);或者需要通过循环的方式,来遍历触发的日志内容,进行格式化的呈现。

基于这样动态渲染以及更丰富样式的诉求,我们在原有内容模板语法的基础上做了大幅改进,从而升级到了新版的模板语法。新版模板语法主要有以下特点:

  • 内容和样式分离,因此在不同的通知渠道中定制不同的样式就变得比较简单
  • 支持 if、for 循环等多种结构,从而可实现动态渲染
  • 提供了 50+ 内置函数对数据进行处理,例如时间格式化、JSON 解析、字符串处理、数学计算等

例如同样的一条告警,使用新的模板语法,可以实现更好看的样式,从而让内容呈现更加直观。更多详细介绍,可以参考附5。
在这里插入图片描述

对接企业 CMDB 实现动态接收人

SLS 告警管理中,行动策略天然地支持动态分派的能力,例如将测试环境的告警发送给某个接收人,生产环境的告警通过短信发送给另一个接收人:
在这里插入图片描述

但是这对于某些特定场景,还是不太方便,例如:

  • 用户信息并没有导入到 SLS 中,而是在企业自建的用户管理系统中(例如 LDAP、AD 等)进行维护
  • 动态分派的条件比较复杂,且条件判断可能非常多,例如几十个上百个条件分支,配置复杂且不方便维护

在这种情况下,SLS 告警提供了动态接收人的方式,用户只需要提供一个 Webhook 服务,用于处理用户信息的对接以及告警通知的分派,无需将大量的用户信息导入 SLS 或配置大量的条件分支。
在这里插入图片描述
在这里插入图片描述

通过这种方式,可以灵活地与各种企业自建的 CMDB 系统进行对接,包括已有的用户信息管理、通知分派、值班等逻辑,都可以与 SLS 告警系统无缝对接。更多详细介绍可以参考附6。

移动端体验增强

通常在接收到告警通知后,我们可能需要登录控制台,再去查看详细的日志以及告警信息,然后进行告警事务的处理。这就带来了一些不方便,尤其是在路上或者夜里的时候,不仅需要开电脑,还需要登录才能操作。为了增强移动端的体验,我们提供了免登陆查看告警详情的功能。在接收到告警之后,通过免登陆链接在手机上直接点击,无需登录即可查看告警详情、查看触发日志、进行事务处理等操作。更多介绍可参考附7。
在这里插入图片描述

基于业务的告警统一管理

默认情况下,告警是在某个 Project 下进行管理的,也就是说,告警和数据相关联。但是在实际的一些使用场景中,我们可能希望能够根据业务单元为粒度,统一进行告警的管理以及态势的统计分析。因此我们提供了告警管理中心 APP,以业务为中心进行告警的统一管理,每个业务都包含从资源层到事务管理的完整链路。
在这里插入图片描述

在告警管理中心 APP 中,我们可以基于这样的业务划分,实现告警通知的统一管理、基于业务的告警态势查看与管理事务等功能。更多详细内容可以参考附8。
在这里插入图片描述

在这里插入图片描述

开箱即用:云产品/APP 集成

为了让其它云产品或者 SLS 日志应用能够快速启用告警,方便对相关资源进行监控,我们提供了大量的内置监控规则,并提供了一键开启告警的能力。覆盖了多个云产品以及 SLS 自身的功能监控等多个方面。通过这些内置的监控规则,用户甚至无需去理解日志数据的各个字段的详细语义,就可以实现对相关数据的监控,很大程度上降低了复杂数据的监控使用门槛。
在这里插入图片描述

目前已经集成的云产品包括容器服务 ACK、服务网格 ASM、操作审计等。以及 SLS 的日志应用,例如 k8s 事件中心、成本管家、日志审计、全栈监控 Cloud Lens for OSS 等十多个应用。

兼容并包:开放告警
在这里插入图片描述

除了将数据接入到 SLS 进行监控之外,对于一些用户已有的监控系统产生的告警,或者多云场景下的告警,也可以通过开放告警的方式统一接入到 SLS 告警管理平台,进行统一的告警管理。目前开放告警累计支持了 Prometheus、AlertManager、Grafana、Zabbix、DataDog、Loki、AWS CloudWatch、New Relic、华为云云监控等十多个监控源,从而可以将 SLS 作为统一的告警管理中心来对各个不同系统的告警进行管理。

自动化资源编排

随着 Infrastructure as Code 的理念发展,越来越多的企业在使用 Terraform 来进行云资源的管理编排。SLS 告警提供了对 Terraform 的支持,从而方便集成到企业的自动化流程中。另外也提供了完整的 SDK ,以方便批量自动化对告警规则及相关资源进行管理,相关信息可以参考附9、附10。

总结与思考

综合来说,过去的一年中我们主要在功能完整性、生态、易用性等方面做了比较大的演进。但整体上来说,依然存在着一些不足:

  • 功能强大带来的是使用门槛的提高,首次上手的难度依然有待改进;
  • 生态开放上有待继续完善,需要更灵活的对接形式,以方便用户按照自身需求做二次开发,避免陷入纯粹的需求驱动的误区;
  • 告警通知后的事务管理,与钉钉等工具的协作依然需要不断演进,完善使用场景,形成操作闭环。

接下来的研发过程中,SLS 一站式智能告警运维系统会努力变得更加好用易用,进一步帮助用户更高效地挖掘潜在的数据价值。

参考文档

附1:一站式云原生智能告警运维平台——SLS 新版告警发布!

https://developer.aliyun.com/article/783352

附2:这才是可观测告警运维平台——20 个 SLS 告警运维场景

https://developer.aliyun.com/article/783354

附3:抑制告警风暴—SLS 告警智能合并发布

https://developer.aliyun.com/article/835401

附4:SLS 告警响应升级——通知对接 FC 进行自动化操作

https://developer.aliyun.com/article/832394

附5:SLS 告警重磅更新——让你的告警通知一目了然

https://developer.aliyun.com/article/793786

附6:设置动态接收人

https://help.aliyun.com/document_detail/415360.html

附7:免登录查看告警详情

https://help.aliyun.com/document_detail/346631.html

附8:告警管理中心概述

https://help.aliyun.com/document_detail/393361.html

附9:使用 Terraform 玩转 SLS 告警

https://developer.aliyun.com/article/880380

附10:如何使用 SDK 管理告警

https://help.aliyun.com/document_detail/387421.html

SLS 智能告警平台最新技术总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/bjchenxu/article/details/125187292

智能推荐

安装oracle克隆数据库卡死,oracle数据库之克隆方法-程序员宅基地

文章浏览阅读729次。Oracle 数据库之克隆方法Oracle 8.1.7 for Linux系统,在安装上存在一切困难,尤其在Redhat7.2系统下安装的时候会出现很多意想不到的事情,譬如图形界面无法显示、xwin无法远程连接,在编译的过程中如果没有安装GCC,Glibc等等一些库文件,容易出现无法link的错误,而全部安装又会造成其他困难。因此在Oracle安装过程中总结出来了一些经验。介绍如下::Oracle..._fmw_home/oracle_common/bin/pasteconfig.sh 克隆 timeout

计算机考研408每日一题 day67_用足够容量的一维数组b对nxn阶-程序员宅基地

文章浏览阅读899次,点赞2次,收藏3次。将一个n×n的对称矩阵A的下三角部分按行存放在一个一维数组B中,A[0][0]存放在B[0]中,那么第i行的对角元素A[i][i]在B中的存放位置是___(中国科学院大学 2016)如果分时系统的时间片固定,那么___,则响应时间越长。(兰州大学 2005年)关于路由器说法正确的是___。(中国科学院大学 2015)通常所说的“溢出”,是指___(哈尔滨工程大学 2004年)_用足够容量的一维数组b对nxn阶

AgileEAS.NET SOA 平台5.1开发包介绍-程序员宅基地

文章浏览阅读101次。一、前言 AgileEAS.NET应用开发平台,简称EAS.NET,是基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本、缩短开发时间,快速适应市场变化的目的。 AgileEAS.NET应用开发平台包含基础类库、资源管理平台、运行容器、开发辅助工具等..._agile eas soa开发教程

友华光猫超级密码获取——PT622&PT632_pt622g超级密码-程序员宅基地

文章浏览阅读4.8w次,点赞5次,收藏14次。前言上上周家里宽带升级成了200M,原有的100M光猫不能用了,电信公司给换上了一个新的1000M光猫,同时也将网络连接方式给从原来的光猫桥接改成光猫路由了,这让我自己的小服务器顿时与外界失去联系了。于是想进入光猫管理界面把连接方式修改回来,哪曾想进去后根本没有发现修改页面,好吧,知道是电信公司搞得鬼,我需要扒掉电信公司给带的套,无套作业才爽嘛。_pt622g超级密码

解决idea 2020.2版本安装jclasslib无法使用_jclasslib-bytecode-viewer插件没用-程序员宅基地

文章浏览阅读2.1k次,点赞5次,收藏5次。使用jclasslib不光可以直观地查看某个类对应的字节码文件,还可以查看类的基本信息、常量池、接口、属性、函数等信息。使用idea自带插件下载的方式安装在这就不说啦……网络上一大堆啦……说说我遇到的问题:我的idea版本是2020.2的,使用插件市场下载jclasslib后,点击view只有show Bytecode,没有JClasslib我怀疑应该是我的idea版本和插件的版本不太兼容,或者是新版的插件有其他更改导致然后找到了插件官网https://plugins.je..._jclasslib-bytecode-viewer插件没用

深色地图_科技公司如何使用“深色图案”来欺骗您-程序员宅基地

文章浏览阅读108次。深色地图Websites like Amazon, Facebook, and Google don’t just appear: people make them. Everything about their design is intentional, is serving some kind of purpose—and sometimes those designs deliberate..._深色地图如何制作

随便推点

将oracle sql 创建的表注册为spatial,为Oraclespatial表添加记录和创建空间索引-程序员宅基地

文章浏览阅读92次。在手工录入Oraclespatial表时,需要将空间表和字段记录插入到记录表USER_SDO_GEOM_METADATA中,然后创建空间表的空间字段索引。-- 1. 删除索引(若全新创建可不执行):DROP INDEX 空间表索引名称;-- 2. 删除记录(若全新创建可不执行):DELETE FROM USER_SDO_GEOM_METADATA WHERE TABLE_NAME='空间表名';-..._什么意思select * from user_sdo_geom_metadata

RFC-程序员宅基地

文章浏览阅读94次。1、什么是RFCRFC(Request For Comment):记录协议标准化过程的文档。RFC不仅记录了协议规范内容,还包含了协议的实现和运用的相关信息以及实验方面的信息。编号越大内容越新。2、下载RFC可以从下面这个网址搜索RFC文档并下载:http://www.rfc-editor.org/search/rfc_search.php 3、常见协议的RF..._rfc 2228

图像显著性检测论文及代码汇总-程序员宅基地

文章浏览阅读1.4w次,点赞49次,收藏293次。近年来,图像显著性检测研究引起了大量的学者关注。为了方便学术研究,本博客汇总了近几年比较经典的图像显著性检测论文及代码,同时也收集了一些显著性检测相关的Toolbox、Benchmark和大牛的主页等,希望对研究显著性检测的同学和老师们有所帮助啦~本博客汇总代码有可能需要翻墙请自备梯子。特别声明: 本博客汇总的开源代码仅作学术研究之用,如需商用请联系论文作者。本博客不生产论文和代码,我们只是学术...

JSP SERVLET基础笔记_jsp+servlet笔记-程序员宅基地

文章浏览阅读606次。第一章 jsp开发基础[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MypxrDJs-1646450536079)(E:\QQ\错误代码.png)]什么是动态网页?​ 指的是能够通过不通的操作返回不同的功能及数据,具有交互功能常见的开发模式:​ B/S架构:浏览器和服务器​ C/S架构:客户端和服务器B/S架构的执行原理:​ 基于请求和响应的内容​ 客户端====》应用服务器====》数据库服务器​ 客户端《====应用服务器《==_jsp+servlet笔记

类模板的分离编译问题_seqlist后为什么加<datatype>-程序员宅基地

文章浏览阅读199次。类模板的分离编译类模板的分离编译,即模板类的定义和其模板成员函数(接口)的定义不在同一文件中。如模板类的定义在.h头文件中,同时在.h头文件中声明接口,而在模板类之外的.cpp文件中定义接口。此时在main函数中,如果只引用.h头文件,编译会报错。原因:大多数编译器,不支持类模板的分离编译!(1)实现分离编译其实也可以实现分离编译。解决办法:在main函数中引用定义接口的.cpp文件,这时..._seqlist后为什么加

利用JavaFx开发windows应用程序 —— 界面篇-程序员宅基地

文章浏览阅读3.1k次。为什么80%的码农都做不了架构师?>>> ..._javafx打印界面

推荐文章

热门文章

相关标签