本文主要讲述了过去一年的可观测平台 SLS 的改进和迭代。
SLS 作为一站式可观测平台,它提供了正确的 Log、Metric、Trace 完整的数据支持,包括数据存储、查询和分析ETL、可视化、监控报警等能力。随着企业业务的不断发展,在线服务及其可观测数据将越来越复杂。如何从这些大量的异构数据中快速找到有价值的信息,然后赋予运维和运营商权力是一个巨大的挑战。
在这个过程中,可能面临的挑战有:
- 多套系统重复建设,维护成本高,难度大
- 数据孤岛化,异构数据协同监控困难,必须进行各种数据处理
- 大量重复报警无法收敛,用户心态瘫痪
- 通知渠道和通知内容形式相对较薄,需要进一步调查和发现问题,影响处理效率
- 动态分配和人员值班能力弱,导致工作负荷不平衡,影响工作效率 ……
我们正在解决这些问题 SLS 在原有监控报警能力的基础上,进一步升级了许多重大功能和经验,致力于升级 SLS 构建一站式智能运维平台,帮助企业和用户解决上述诸多痛点。之前有很多文章对此做了比较完整的介绍,可以参考附1和附2。
在过去的一年里,我们在功能进和优化了功能、易用性和集成性,致力于满足不同需求层次的客户需求,使智能报警触手可及。
架构大图

整体上,SLS 智能报警系统主要分为以下几个部分:
- 报警监控:依赖 SLS 我们可以支持大量数据的实时查询分析、异构数据的协同分析、跨账户、跨区域的协同监控等能力;
- 报警管理:提供重量、合并、抑制、沉默等多种报警降噪能力;
- 行动管理:连接十多个通知渠道,可快速配置使用,提供非常灵活强大的动态分配能力;
- 开放告警:对于数据并未接入 SLS 自建系统或其他云产品的报警可接自建系统或其他云产品的报警 SLS 报警管理系统可以快速使用 SLS 报警管理和行动管理能力。
功能进化概述
在过去的一年里,功能演变主要从以下两个维度进行:
- 从点到线:每个独立模块都进行了功能增强和优化,例如,报警监控继承了独家 SQL,丰富内置规则库等。;算法降噪等。用于报警管理;通知管理部分增加了多个通知渠道,实现了与外部的联系 CMDB 系统的对接增强了移动终端的通知和检查体验;开放式报警还丰富了多个数据源(参考下图标记部分);
- 从线到面:根据业务实现报警的统一管理。通过在报警管理中心的应用中进行逻辑业务划分,可以实现从数据到监控到报警管理的完整过程。
最新功能演变细节
当需要监控大量数据时,由于查询资源的限制,可能会导致查询不完整、查询加班等问题,导致监控失效。为了解决这个问题,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。
SLS 在报警管理中,行动策略自然支持动态分配的能力,如向接收人发送测试环境的报警,生产环境的报警通过短信发送给另一个接收人:
但这对某些特定场景来说仍然不方便,例如:
- 未导入用户信息 SLS 在企业自建的用户管理系统中(如 LDAP、AD 等)进行维护
- 动态分配的条件比较复杂,可能有很多条件判断,比如几十个条件分支,配置复杂,维护不方便
在这种情况下,SLS 报警为动态接收者提供了一种方式,用户只需个 Webhook 服务用于处理用户信息的对接和报警通知的分配,无需导入大量用户信息 SLS 或配置大量条件分支。
通过这种方式,我们可以灵活地与各种企业合作 CMDB 对接系统,包括现有的用户信息管理、通知分配、值班等逻辑,可以与 SLS 报警系统无缝对接。详见附6。
通常,在收到报警通知后,我们可能需要登录控制台,查看详细的日志和报警信息,然后处理报警事务。这带来了一些不便,特别是在路上或晚上,不仅需要打开电脑,还需要登录才能操作。为了增强移动体验,我们提供了免登录查看报警细节的功能。接到报警后,通过免登录链接直接点击手机,无需登录即可查看报警细节,查看触发日志,处理事务。更多介绍可参考附7。
在默认情况下,报警是在某情况下 Project 也就是说,报警与数据有关。但在一些实际使用场景中,我们可能希望根据业务单位的粒度进行报警管理和情况统计分析。因此,我们提供了报警管理中心 APP,统一管理以业务为中心的报警,每个业务都包括从资源层到事务管理的完整链接。
在告警管理中心 APP 在此基础上,我们可以实现统一管理报警通知、基于业务的报警情况检查和管理事务的功能。详见附8。
为了让其他云产品或云产品或其他云产品 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 智能告警平台最新技术总结