发生问题后,可以发出具有业务涵义的告警消息,将业务问题直接反馈给业务/运营人员;也能根据调用链快速定位到问题节点,从而帮到技术运维人员;此外,技术人员与运营人员也可通过业务ID反查系统链路来追溯问题。
3.11.2 业务链路监控与告警:业务告警示例这是一个业务告警的具体例子。
上方是发给业务同事的告警邮件,内容可以细化到X年X月X日X:X:X,在X个系统的X个业务环节,发生了X问题,影响了X类型的客户,客户姓名是X,手机号是X。帮助业务运营人员快速定位问题单据和受影响的客户。
下方是发给技术运维同事的邮件,在业务同事邮件的基础上,额外提供了IT调用链路,方便技术运维同事快速定位和诊断问题。
3.12 智能运维目前UAV在AIOps智能运维上的工程实践主要包括异常检测,根因分析,告警收敛和智能降噪,以及任务机器人HIT这4个方面。本次分享将重点介绍指标异常检测和根因分析两部分。
3.12.1 智能运维:异常检测框架上图是UAV工程实践中使用的较流行的时间序列异常检测框架。主要包括离线模型优化、在线模型预测、A/B TEST部分。其中,离线模型优化和在线模型预测形成了指标异常检测的智能监控闭环。具体流程如图所示,其中要点包括:
对无标记数据的分析,采用无监督的方法进行异常识别。比如,在进行连续数据的异常检测时,可选用孤立森林算法,通过多棵iTree树形成森林来判断是否异常。
对已标记的数据的分析,采用了监督学习的方法,学习异常和正常群体的历史表现。这样,进行新数据检测时,可以通过模型直接决策,输出异常情况。
但是采用人工标注样本,工作量比较大,一般难以满足监督学习方法对数据量级的要求,所以可采用半监督的方法扩充标注的样本库。
3.12.2 智能运维:全维度的数据可关联按照全维监控->全维关联->全维智能的技术路线,UAV采集到了多维度的监控数据后,需要建立起这些数据之前的关联。
这种关联关系:
可以是通过画像建立的强关联关系,比如宿主机与虚拟机、虚拟机与应用服务器、应用服务器和应用、应用和服务组件之间的关系;
也可以是通过调用链路或服务流图谱建立的强关联关系;
也可以是通过机器学习算法建立的关联关系,比如同一时间窗口同时变化的指标,可能存在某种关联。
需要说明的是,金融行业本身的业务特点决定了对第三方存在依赖性,因此告警的随机性较大,客观上导致学习样本的质量不高。因此,UAV目前使用强关联关系。
3.12.3 智能运维:根因分析,告警收敛与智能降噪有了关联关系,就可以做根因分析了。我们可以收集各个渠道的告警,先通过告警过滤将其中重复的告警和不重要的告警过滤掉,再根据关联分析建立同一时间窗口内不同类型告警之间的关联,可以按画像建立关联,也可以按调用链路建立关联。然后是权重计算,根据预先设置的各类告警的权重,计算成为根源告警的可能性。最后将权重最大的告警标记为根源告警。此外,还可以根据历史告警处理知识库,找到类似根源告警的推荐解决方案。
在根因分析和定位的过程中,顺带实现了告警收敛和智能降噪。比如我们对重复告警、非根源的一般告警、同一条链路的其它告警进行了压制。
四、总结上图为线上实际的宜信核心业务线调用关系的图谱。UAV作为宜信的公司级智能监控标准软件,已持续覆盖到宜信所有关键业务系统,支持公司超过300个业务线。越来越多的同事可以熟练地使用UAV,将UAV应用于日常运维、事前预警、事中问题诊断和事后复盘分析等各个方面。
使用UAV,可以获得随时随地的运维体验。目前UAVStack监控部分已在GitHub上开源,可以登录查看更多详细介绍。
官方网站:https://uavorg.github.io/main/
开源地址:https://github.com/uavorg