在可观测性系统中,告警能力是保障业务系统稳定性和可靠性的重要支柱。通过及时发现业务系统中的异常或潜在风险,告警系统能够迅速通知管理员及运维人员,帮助其快速响应并采取修复或优化措施,从而有效防止问题升级,降低MTTR。本文将重点介绍360智汇云云舟观测产品中统一告警服务的架构设计与核心功能。
一、背景
1.1 告警服务的重要性
业务系统通常会重点确保系统的稳定运行,通过业务埋点、主动推送等方式采集监控数据,并以可视化形式展示。当用户发现监控数据出现异常时,会及时介入系统,定位问题并采取措施恢复,从而实现从“数据->人->行为”的完整闭环。然而,需要注意的是,要求高达 99% 的业务系统用户全天候 24 小时持续关注监控数据并不现实。在用户因工作、用餐、休息、下班或休假等原因未在线时,用户与监控数据之间难免会出现脱节。而告警服务能够在系统发生故障时及时通知用户,唤醒其对系统的干预能力,因此在监控体系中扮演着不可或缺的角色。
1.2 告警服务的痛点
在现代信息系统中,随着业务系统复杂性提升,告警系统以及系统用户经常会面临以下的问题和痛点。系统管理员和运维人员需要花费大量精力去处理告警,如果告警信息过多,运维人员可能无法及时响应关键告警,甚至被大量无效告警淹没,不仅影响工作效率和服务质量,还可能导致重要告警被忽视,导致严重故障。用一句话来概括,就是: 太多的告警就相当于没有告警。
因此,在可观测性体系中,设计一个高效的告警系统显得尤为重要。云舟观测产品基于海量业务数据的全方位业务场景设计研发了一套高效统一的告警系统。我们认为一个高效的告警系统应该是:及时通用、不漏报,不多报,报对人。
二、告警服务架构
数据采集:
数据是观测告警系统的基石,我们的监控数据来自于数万服务器、数十种云服务、各种业务埋点数据、以及用户上云服务等海量数据。采用自研的Arkit探针+开源Prometheus生态进行数据采集,并内置十几种开箱即用的采集器(如Exporters、Telegraf、Jmx、Prometheus、OpenTelemetry、脚本、日志、拨测、自定义等)。
数据存储:
云舟观测指标数据存储 Metric Store 基于开源时序存储进行二次研发,实现数据双写,定期老化删除历史数据,具备高可用性,并优化了读写性能。在 Metric Store 基础上,提供查询和分析功能(支持 WebUI、PromQL 语法)。
云舟观测针对日志、Trace 等日志类型数据,采用了360自研的Log Store数仓存储,实现存算分离,支持海量数据存储、实时数据入仓、实时数据分析、联邦查询等。在 Log Store 基础上,提供查询和分析功能(支持 SQL 语法)。
告警模块:
告警作为运维监控最后一公里,其产品功能和稳定性至关重要。虽然告警事件是监控系统产生的,但是监控系统通常不会着力解决告警事件的后续处理需求,因为监控系统的主要职责是收集、存储、展示监控数据。云舟观测开放用户在WEB端统一进行告警规则配置、告警策略配置、通知对象配置、告警屏蔽、告警回调、告警收敛、告警沉默、告警确认等。
事件中心:
告警事件中心是一个能够集中接收、处理和分析来自不同监控系统或应用的历史告警信息模块。具备历史告警明细检索、告警数统计、指标趋势分析、AI告警根因分析等。
三、告警核心能力
3.1 告警收敛
云舟观测告警平台每天会产生数以万计的告警,这些告警需要运维或开发人员进行分析、甄别优先级并处理故障。如果对这些告警不加收敛,每条异常都发送告警,势必会增大运维人员的工作压力,而且并非所有告警都需要且有必要发送给运维人员处理。因此,我们需要通过多种手段对告警进行收敛,以下从三个方面介绍如何进行告警收敛。
告警持续时长判定
为了减少偶发性、单次性波动或误报的告警,云舟观测支持用户配置告警持续时间,只有多次检测持续告警且持续时长大于等于配置的持续时间才会发送告警。持续时长的设置也能确保告警的准确性和可靠性。
需要特别说明的是,告警持续时长设置与告警检测周期、数据采集周期密切相关,共同影响告警的触发和发送时机,因此需要进行综合考虑和配置。
例如,假设 1 分钟采集一次主机 A 的 CPU 使用率指标,用户配置了告警规则:每 2 分钟检测一次 CPU 使用率,大于 90% 并且持续 3 分钟进行告警,09:00 开始检测。
(1)09:00 检测 CPU使用率 小于 90 %,不满足阈值,告警 状态 inactive
(2)09:02 检测 CPU使用率 大于 90 %,满足阈值,判断持续时长为 0(首次检测出告警,持续时长都是0),告警 状态由 inactive 置为 pending,并记录首次告警触发时间点(09:02)
(3)09:04 检测 CPU使用率 继续大于 90 %,满足阈值,判断持续时长为 2min(09:04 - 首次告警时间点 09:02),小于3min 持续时长条件,告警 状态继续为 pending
(4)09:06 检测 CPU使用率 继续大于 90 %,满足阈值,判断持续时长为 4min(09:06 - 首次告警时间点 09:02),大于3min 持续时长条件,告警 状态置为 firing,发出告警。
首次告警等待
当一个异常产生之后,我们不会立即发送告警,而是等待一段时间后再发送。这个等待时间一般可由系统自定义,若该值太大,会影响告警延迟;若太小,则不能有效提升告警合并效果。例如,首次告警等待时间为 5s,当一个服务下节点 1 出现 A 指标异常,5s 内节点 2 也出现了 A 指标异常,那么发送告警时节点 1 和节点 2 会被合并到一起发送告警通知。
告警间隔(沉默)
在告警没有恢复前,系统会根据告警间隔的配置每隔一段时间发送一条告警信息,防止用户未及时关注到重要的告警。告警间隔用于控制告警发送的频率。
3.2 告警确认
当出现告警后,如果有人确认认领了该告警,那么后续相同告警将不再进行通知。告警认领主要是为了解决告警有人跟进后,减少告警的重复发送,在一定程度上避免告警被重复处理的问题。
3.3 告警升级
当告警发生一定时间后没人认领确认,并且没有恢复,系统就会根据配置自动进行告警升级处理,然后将告警升级信息通过配置发送给对应的人员。告警升级意味着故障没有得到及时响应,此时需要更高级别的人员介入处理。
3.4 告警屏蔽
对于同一个问题,可以设置告警屏蔽,后续如果有该问题对应的告警产生,将不会被发送出去。告警屏蔽能减少故障在定位解决过程中,或者服务在发版变更过程中产生的告警,有效减少无效告警对运维人员造成的困扰。屏蔽可以设置为周期性的,也可以设置为屏蔽某一时段,当然也可以取消屏蔽。
3.5 告警回调
当告警规则配置了回调,那么当产生告警时,就会调用回调接口,使服务或业务恢复正常。告警回调的目的是当某个服务产生告警时,希望系统能够通过一些自动化配置,使服务恢复到正常状态,缩短故障恢复时间,在紧急情况下第一时间快速恢复服务。
四、告警产品功能
4.1 配置告警规则
云舟观测提供统一告警配置入口,提供灵活的配置数据过滤方式,方便用户进行告警配置和管理,同时也内置了开箱即用的默认规则,只需要开启并配置通知对象。在告警配置中支持配置回调接口来接收实时告警数据。对于可用性拨测监控,云舟观测默认创建对应可用性异常告警规则,无需用户手动配置。
4.2 告警策略
云舟观测支持在告警规则配置界面或告警策略管理菜单中进行告警策略的配置。当告警规则检测满足触发条件后,会立即发送告警消息给指定的通知对象。告警策略中包含需要通知的事件等级、通知对象、告警通知时间及告警沉默(设置重复告警通知间隔)。
4.3 告警屏蔽
告警屏蔽支持指定主机、指定告警规则、指定观测应用 进行屏蔽,并且支持配置屏蔽的时间周期。
4.4 事件中心
在事件中心支持查询分析历史告警详情,并对告警内容进行AI分析。
4.5 告警服务自监控
告警服务的监控不能依赖自身监控、告警流程,防止告警本身服务异常或宕机无法感知。我们将告警服务自身的监控指标存入特定双数据中心Metric Stroe,基于外部其他监控系统对告警服务进行监控告警,另外对于告警规则执行情况,进行实时监控。
五、未来规划
随着观测数据完整链路的构建,我们会基于大模型和机器学习, 对“告警服务” 进行持续进行优化迭代,主要围绕以下 3 个方面:
更简单的配置:通过采取态势感知、智能化的带状阈值区间将逐步取代人工设定的阈值,能极大降低用户使用 “告警服务” 的成本。
更具体的对象:目前的告警策略针对的还是零散的告警对象,未来将会围绕 “场景” 概念为用户提供更加具体的业务告警对象,价值更高。
更精准的决策:目前的告警服务仅仅限于将现场数据告知用户,未来将会提供给用户更精准的辅助决策,以达到智能化运维的目标。
六、关于云舟观测
云舟观测是由360智汇云推出的一款一站式数据采集与监控观测产品,可以对基础设施、应用性能,以及云原生下业务指标和日志进行全面的监控和观测,构建全链路的可观测性服务,帮助用户及时发现和解决系统及应用性能问题,提高系统的稳定性和可靠性。
产品地址:https://zyun.360.cn/guance/intro(复制后在浏览器中打开)
END
360智汇云是以"汇聚数据价值,助力智能未来"为目标的企业应用开放服务平台,融合360丰富的产品、技术力量,为客户提供平台服务。
目前,智汇云提供数据库、中间件、存储、大数据、人工智能、计算、网络、视联物联与通信等多种产品服务以及一站式解决方案,助力客户降本增效,累计服务业务1000+。
智汇云致力于为各行各业的业务及应用提供强有力的产品、技术服务,帮助企业和业务实现更大的商业价值。
官网:https://zyun.360.cn 或搜索“360智汇云”
客服电话:4000052360
欢迎使用我们的产品!😊
关注公众号,干货满满的前沿技术文章等你来。想看哪方面内容,也欢迎留言和我们交流!