直播回顾 | 告警全生命周期管理的思路与落地实践

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了直播回顾 | 告警全生命周期管理的思路与落地实践相关的知识,希望对你有一定的参考价值。

在上一次的直播中,我们介绍了监控体系:可观测指标管理体系建设落地及插件功能设计和生态打造。本次主要和大家分享可观测领域内,告警事件管理系统的设计思路与落地实践。


扫码查看直播回放

(关注公众号获取PTT免费下载链接)

直播回顾


企业告警管理面临的挑战


在数字化转型过程中,很多企业已经建设了多套的监控系统,覆盖服务器、网络、存储、日志等等。但有了监控却并不能高枕无忧,在我们服务的多个企业中,监控系统检测并触发告警后,在告警事件管理过程中,各人员角色普遍存在一些亟待解决的痛点问题。


如下表是比较典型的中各角色的痛点和期望:

直播回顾

通过广泛地调研收集客户的告警管理现状和诉求,我们归纳总结了在企业在达成高效的告警管理的目标时,所面临的通用问题:


告警散落不标准。各类告警散落在相互隔离的多个监控系统中,没有统一的内容格式规范,信息不全面,可读性很低,无法直观进行告警判断;


告警噪音多。各类监控系统设置的固定阈值标准不一,或者同一故障引发不同系统同时告警,造成大量的误报、漏报和重复告警;


没有全局视图。出现告警后,无法直观了解应用系统和对象模型的告警整体情况和关联影响范围;


缺乏工具联动。告警处理人工干预过多,自动处理少,告警流转效率低;过程缺少追踪,处理经验难沉淀。


基于这些挑战诉求,我们去设计打造了优秀的告警管理系统,落地企业管理实践中,切实解决问题。



产品设计:贯穿告警事件全生命周期管理


告警管理系统,应以事件为中心,从将各监控系统的告警集中接入开始,通过插件清洗和告警丰富完成接入告警的标准化、再通过去重、防抖、关联聚合、屏蔽等多种降噪方式分析、处理四个层面进行建设,外部联动CMDB进行告警信息的丰富;联动工单系统,实现告警驱动工单推进事件管理;联动自动化工具,实现告警自愈处理降低业务损失。


实现从告警产生-接入-丰富-降噪-自动处理(分派+转工单/自愈)全生命周期闭环管理,快速对故障进行有效处置,保障业务稳定运行。

直播回顾



建设落地实践


明确了以事件为中心进行告警的全生命周期管理这一思路后,我们将具体落地实施分为了规划设计、告警接入和标准化、告警压缩降噪、告警通知和处理、告警管理运营改进,一共5个步骤。以最终实现“快速响应和解决故障,提升无故障间隔时间,减少故障发生率和业务影响范围”这一告警管理的根本目标。

直播回顾



1、规划设计

规划设计以“事件”和“数据”双核驱动,规划设计告警管理体系;整合现有监控工具,统一告警策略标准和统一告警接入。


一般来说,大约有如下几点需要考虑:


● 告警全量汇聚:归总企业所用的各类监控系统,制定统一结构、高可读性的告警信息格式,让各系统中内容格式各异的告警全量集中,解放运维人员追踪维护多个系统的麻烦,统一通过一个告警管理系统来查看和管理告警事件。


● 告警压缩降噪:梳理各运维工程师常见的“无效告警”如重复告警、维护期告警、相同负责人的关联告警、抖动指标告警(毛刺告警)等,对应制定合理的告警降噪策略,帮助运维人员在有限的时间范围内快速、精准地筛选出所有的,真正需要关注或人工处理的告警。


● 精准有序分派:通过收敛策略、分派规则,将降噪后的有效告警事件,通过各类通知渠道,精准通知给指定运维人员,通过重复通知或升级通知保障通知不遗漏、并记录每个用户的MTTA、MTTR,进行人员考核,持续运营改进。


● 告警驱动工单:与工单系统集成,按需实现告警自动/手动转工单,如关键业务、致命监控告警等处理过程复杂、或恢复操作风险较高的告警全开单。


● 告警自愈处理:联动自动化运维系统,通过自动化处理设置,实现告警触发自愈任务执行,迅速处理故障,降低业务影响。主要用于有固定恢复操作、且恢复操作风险低的告警,如清理磁盘空间、服务异常自动重启等。

直播回顾

(告警管理效果蓝图)



2、告警接入和标准化

由于不同监控系统的告警,内容格式、告警等级、唯一性标识等各有特色,不利于后续设置统一的降噪策略和分析处理。所以在将多套监控系统的告警进行统一接入时,可以基于告警信息标准化的要求和场景消费,通过插件开发、多层级的清洗和丰富,统一接入各监控系统告警数据,并得到标准化格式的告警信息,为后续统一管理、数据消费打好基础。


插件式告警接入

嘉为鲸眼告警中心,在持续积累对常见监控系统开箱即用对接能力的同时,开放了以python脚本形式的开发独立插件的能力,用户可以在不影响线上系统稳定的情况下,便捷的对接更多的第三方告警源(即监控系统),企业运维人员可逐步转型运维开发,只需具备简单的脚本开发基础,即可具备持续拓展能力,以应对未来的业务发展引入新的监控系统后的对接需求。


常规接入格式示例:


告警结构标准定义:告警信息、对象信息、其他扩展信息

  • 告警信息:告警内置的字段,包括告警事件ID、告警等级、告警时间等;
  • 对象信息:用于标识告警对象本身,包括告警对象、业务信息等;
  • 其他信息:告警扩展的一些字段,支撑一些特殊场景的数据消费。


告警等级定义:致命、警告、提醒

  • 致命:一般代表服务已经异常,需要马上进行处理;
  • 警告:一般代表如果不进行及时处理,服务即将异常;
  • 提醒:一般代表一些潜在问题,需要开始关注或提前采取行动,避免异常产生。


告警事件ID的定义:去重字段,用于识别是否同一告警事件

  • 部分告警源可提供原生的告警事件ID;
  • 部分告警源采用告警源ID+原始告警ID拼接组合方式;
  • 部分告警源采用告警对象+告警指标+告警级别组合方式,自动加密生成唯一的告警事件ID。

直播回顾

直播回顾

(企业告警标准化格式参考示例)


告警信息丰富

汇聚不同监控系统的告警后,运维人员通常会发现不同监控系统、不同类型的告警信息差别很大。有些告警信息比较简陋,只有诸如:ip地址、某指标过高等信息。


而告警丰富功能,可以通过界面化配置,通过和CMDB(配置管理数据库)的关联,高效消费用户维护在CMDB中的实例配置信息,关联关系等;还可以对告警信息完成轻量化的二次清洗,免除频繁修改插件文件的工作量,便捷地实现告警事件内容、格式的统一。


告警丰富在提升告警可读性的同时,能够提供告警治理的抓手,便于完成后续更灵活的告警筛选和更简便的策略配置,有效提升分析和处理故障的效率。


以下是告警丰富功能的落地实践分享:


CMDB丰富

通过联动CMDB配置数据,可视化更新和扩展告警字段,比如某些监控系统在告警对象中只有IP地址,没有主机名,可以通过CMDB丰富把主机名等告警对应的主体,各项配置信息(实例的属性信息)自动添加到告警中,让用户一目了然的看到所有需要的信息。

下图为典型示例,当主机发生告警时,将主机的各项配置信息显示在告警内。

直播回顾

当然,配置告警字段和CMDB实例属性信息的映射规则,生效的前提是告警可以找到唯一的实例。对于没有和CMDB关联的第三方监控系统,可以通过配置CMDB关联规则来实现:例如根据告警字段和CMDB则能够根据告警内容中正则提取的IP地址和CMDB中的内网IP属性值进行比对,以准确找到唯一对应的实例,从而实现后续的字段信息丰富。


实际效果如下所示:

直播回顾

(丰富前的告警事件)

直播回顾

(丰富后的告警事件)


常规丰富

通过字符替换、字符提取、字段调整等方式,以页面配置的方式,对告警信息进行标准化清洗,同时运维人员可以自定义上述方案的生效规则和应用范围,从而快速实现对需要处理的部分告警信息的丰富。


字符替换:当相同事务在不同系统间名称不同时,如有些系统是中文:主机、数据库,有些是英文:host、DB、database;还有些是名称不规范,如mysql、MYSQL等。可以通过字符替换功能,对每个告警源的告警配置翻译替换规则,便于运维人员理解。

直播回顾

字符提取:有些系统的告警将指标当前的具体值写入一个独立的拓展字段内,而另一些系统的告警,只能从告警内容字段中找到指标具体值,如zabbix的告警,告警内容的尾部the value is 之后就是监控指标的当前值。


通过字符提取功能,灵活运用正则表达式,将指标的当前值从告警内容中拆分出来,进一步实现指标规范,让所有系统的告警,都将指标具体值单独显示为一个字段。

直播回顾

字段调整:对于一些监控系统定义了很多拓展字段,而用户使用过程中,想要将这些字段合并为一个,更便于去查看,也可以通过字段的调整功能实现。


例如某系统的告警,将主机所在位置,分城市、机房、机柜三个字段显示,通过字段调整,将三个字段合并为机器位置这一个字段。

直播回顾

3、告警压缩降噪


随着业务发展,IT架构的复杂化,运维工作难度攀升,一大亟待解决的问题是:告警噪音过多。

一线团队可能每天都会收到几千封告警通知风暴,但精力范围内可处理的数量却远远不及。疲于应对的同时,无法从汪洋大海一般的告警中甄别出真正重要的内容,不能及时发现故障前兆,而当致命故障发生时,处理难度会更大,也对业务服务和终端用户造成更大范围的影响。


我们需要通过合理高效的告警降噪方式,帮助运维人员在有限的时间范围内快速、智能地筛选、定位出真正需要关注或人工处理的告警,以点带面,大幅降低故障影响范围,更好的感知到当前需要处理的告警全貌,维护业务的稳定。


嘉为鲸眼告警中心,提供时间屏蔽、自动去重、关联聚合、防抖机制、依赖屏蔽5种告警压缩降噪能力:


时间屏蔽

在系统变更、跑批等维护期间,因系统、设备的异常态而必然引发的告警,可以通过告警屏蔽,实现对指定时间窗口内可预知的无效告警进行收敛——不会分派通知,也不出现在需要处理的活动告警列表中。

直播回顾

自动去重

当一条告警还处于处理中未结束的状态(下文中称此类告警为“活动告警”),后续接入的重复告警,会被内置自动去重方案,自动收敛掉。此处的重复告警的定义,取决于在接入告警环节告警事件的唯一性方案。相同告警事件ID的告警,被视为重复告警。


收敛同时累加活动告警的“告警计数”,并将被收敛的告警和对应的活动告警进行关联。

直播回顾

(在活动告警详情查看关联的被抑制告警)


关联聚合

将某个时间窗口内,指定的一个或多个告警字段完全相同的多条告警聚合,让这些相同维度或者相同负责人的告警,只分派通知一次,减少对运维人员的打扰,又可以便捷的查看所有聚合的告警。


例如配置将主机产生的告警,在设定的10分钟时间窗口内,有着相同的“告警指标、CMDB业务、主要维护人”的多条告警收敛为一条。


这也可以视为一种更灵活的去重策略,能有效解决内置自动去重策略所未涉及的一些场景,如:来自同一个监控系统的不同类型/不同负责人告警,告警事件唯一性方案有区别,需要灵活的设定;用户希望超过一定时间段后,再此生成一条新的活动告警,而非全部抑制等。


告警防抖

某些监控系统不具备防抖检测机制,经常出现一些指标值突升突降,引发很多迅速恢复的告警,这使得运维人员收到大量告警后来不及查看又恢复了。


在实际的业务场景中,虽然这些指标设定的阈值是合理的,超过阈值需要告警,但用户希望仅当指标值连续几个检测周期,持续高于阈值再发出告警通知。


那么对于这些抖动类指标(如CPU使用率、网卡流量、内存使用率、磁盘IO等)产生的告警,可以设定一些防抖的规则。如5分钟内产生3次告警,第3次才会成为有效告警进行分派通知,未达标的偶发告警即被抑制。


依赖告警收敛

对于有依赖关系影响而导致的关联告警事件,如组件安装/运行于主机、各设备通过交换机连通网络、主机磁盘挂载了存储提供的存储盘、虚拟机运行于宿主机或宿主机集群上等,通过配置依赖关联规则,按照告警之间的依赖关系,将依赖告警进行收敛。


根据目前的落地实践,通过以上五种降噪方案的配置,企业一般能够有效收敛60%~80%的告警量。



4、告警通知和处理


产生有效告警后,就需要尽快分派给负责的运维人员进行处理。我们通过集成多种通知渠道,实现随时随地响应和处理告警;通过集成ITSM事件管理流程、自动化运维系统,实现告警转工单、告警自愈。


告警通知

多渠道适配:需要适配多种通知渠道,方便运维人员随时响应,除了常规的邮件、短信、电话等,还需要包括企微、钉钉等现在常用即时通讯工具。


移动端集成:集成移动端,提升运维服务响应速度,随时随地查看和处理告警。


告警分派:与CMDB的配置负责人联动,动态分派,通过较少的配置即可实现告警责任到人。


告警升级:重要告警未相应处理时,重复通知和分派升级到上级经理。


告警处理

联动ITSM,实现告警转工单

对于关键业务、致命监控告警需要二线专家介入的复杂告警处理,可以通过工单系统流转给对应的专家小组进行处理,并留下完整的处理记录。当告警无法匹配分派给到对应的专家小组时,会流转到服务台进行手动分派给对应人员处理。

直播回顾

(告警关联ITSM实现自动派单)

直播回顾

(告警事件管理流程)

联动自动化运维,实现告警自愈

对于常见的告警,有固化处理流程的场景,可配置告警自愈策略,比如进程端口异常、僵尸进程数过多等。通过配置规则、时间段的方式,在非工作时间(尤其凌晨),针对部分场景实现故障自愈,无须人工干预。


示例:

2020-08-27 00:12:37 10.10.10.xx xx服务器进程端口down,触发故障自愈

直播回顾

2022-11-14 00:00:02 10.10.10.xx xx系统僵尸进程数超过阈值,触发故障自愈

直播回顾

告警分析辅助问题定位

告警详情:从基础信息、拓扑分析、关联告警、指标信息、流转记录五个层面,全面完整的展示一条告警,供用户分析。

直播回顾

关联分析:与蓝鲸CMDB联动,支持从告警视角、对象视角、业务视角查看关联关系,快速定位问题和影响范围。

直播回顾

故障现场:与自动化运维联动,根据规则自动抓取故障现场的关键信息,比如服务器性能快照、堆栈信息、dump信息等,协助开发和运维人员事后快速定位故障根本原因。

直播回顾



5、告警管理与改进运营


常见的告警管理问题、原因分析和对应策略如下图:

直播回顾

经过系统的数据沉淀,我们可以统计告警分布情况、告警处理的MTTA和MTTR、告警转工单数、告警关单率等运营度量指标,进行告警运营分析,持续优化告警策略和管理流程。

直播回顾

告警治理是一个持续治理和优化的过程,应对架构调整或者运行事件暴露出的问题项,需要不断优化配置监控项和告警策略,提高告警的及时性、有效性,减少误告漏告,实现告警全生命周期的统一闭环管理,释放人力提升效率,更好地保障业务稳定性!

直播回顾

(告警治理过程)



以上是关于直播回顾 | 告警全生命周期管理的思路与落地实践的主要内容,如果未能解决你的问题,请参考以下文章

直播预告 | 云函数 Web Function 落地实践大咖分享

Nacos 1.2.0 权限控制初探,保障微服务安全及 Nacos 在颜铺科技的落地与实践

Devops下的接口全生命周期管理与测试

如何在 DevOps 中进行 API 全生命周期管理?

DevOps建立全生命周期管理

华泰证券:中间件全生命周期管理的实践