时间:2024-08-31
田国良 王鑫 陈劼 蒋强 杨淑
摘要:随着互联网与信息技术高速发展,基于Docker(应用容器引擎)技术的云平台正在被快速广泛应用。依托实时监测的海量数据,利用Apriori[1]、NLP(Natural Language Processing,自然语言处理)、SBD智能等算法进行实时告警收敛与根因定位,以及结合容器资源编排能力、自动化能力,提出了一套基于智能检测的方案,打造云原生智能故障处理能力,提高容器云平台的稳定性与安全性。
关键词:云平台、容器、算法
1概述
移动业务支撑系统容器化、微服务化改造持续深入,各类新型基础设施引入和国产化进程推进,为支撑物联网、“任我用”、电商等新业务形态持续发展发挥了重要作用。随着微服务的大量应用,其大流量时代产品体系的需求不断的变化、业务的增长,月结高并发的业务,以及分布式应用架构在运维,监控,发布上都面临着更加复杂的挑战。
兴起的AIOps( Algorithmic IT Operations,基于算法的IT运维)相关研究致力于从海量监测数据发现并定位异常指标和根因,利用大数据分析、机器学习等人工智能技术来挖掘与总结大量数据背后的规律,以实现云平台中全量指标的异常检测与根因定位。
本文设计并实现了一个智能检测方案系统。在故障感知、决策基础上,拉通基础设施、应用框架和运维工具能力,实现了业务系统的智能检测、决策和故障自愈的全自动闭环运维。
2系统总体架构
本文设计的系统总体架构主要分四个子模块:资源管理模块、指标采集与异常检测模块、根因定位模块、故障恢复和弹性调度模块。
资源管理模块通过K8s的API(Application Programming Interface,应用程序接口)自动发现采集容器资源对象。使用标签自动分组功能将对象建立关联关系。
指标采集与异常检测模块在Pod对象里部署采集探针来收集系统的拓扑、性能指标以及调用链等数据,将收集到的指标数据经过异常检测模块产生指标告警数据传输至根因定位模块,为根因分析提供海量数据依托。
根因定位模块利用指标采集与异常检测模块对收集到的数据进行实时检测与分析,针对不同类型数据产生的异常生成不同的告警,并将这些告警传入根因定位子系统,以进行后续根因指标的定位。根因定位子系统以Apriori算法与告警收敛算法为核心,提出了一个性能高、速度快的根因定位方案,可以在保证运行效率的同时准确地定位到根因指标。
故障恢复和弹性调度模块以应用维度配置故障自愈场景和自愈策略,根据决策指令对容器进行作业编排。
3设计与实现
3.1资源管理模块
本模块主要功能利用K8s的API对容器云环境中的资源对象进行自动收集与管理。标签自动分组功能实现对应用、应用实例、容器对象间的关系按标签分组自动绑定关联关系。
通过配置K8s API连接信息,定时自动扫描并收集K8s集群中的Cluster、Node、Deployment、Service、Pod等容器对象信息并进行统一模型管理。
3.2指标采集与异常检测模块
本模块主要功能是实现容器云平台中稳定性信息的采集与异常指标的及时检测从而产生异常告警信息。结合了传统的监控数据指标与K8s的节点健康状态数据。
信息采集和异常检测系统可以实时检测指标数据中的异常,并针对不同类型的异常生成不同的告警。告警产生是基于静态阈值判定的即时性告警。告警类型有预警和严重级别。每个指标的每种告警级别有不同的静态阈值,支持自定义设置。基于告警收敛功能,实现在告警上报间隔时间内将不会再次发送相同警告。告警信息包含告警级别、告警时间、告警对应的主机/实例信息(ID、IP)以及告警指标名称、当前值、阈值等内容。
3.3根因定位模块
本子模块的主要功能是根据告警中的异常指标精确定位出根因指标。根因定位子系统可以根据告警信息准确定位根因指标。该子系统有两个核心算法,分别是Apriori算法与告警收敛算法。
3.3.1、Apriori算法
利用Apriori算法來挖掘告警事件之间的关联规则,利用支持度、置信度、提升度来筛选其中的强规则,生成根因规则图谱,帮助分析与定位异常的根因。
3.3.2、告警收敛算法
告警收敛算法可以对发现的根因指标进行进一步的定位与合并。当故障发生时可能会有大量的指标发生异常并产生告警,Apriori算法生成的根因规则图谱可以从全部的异常指标中筛选出一部分关联性较强的指标作为根因指标候选集,然后告警收敛利用NLP和SBD算法从以下三个方面来对根因指标候选集进行进一步筛选与合并。
3.4故障恢复和弹性调度模块
本模块主要功能包括基于应用维度的检测配置、根据根因指标进行容器编排,以实现容器云平台的快速故障恢复和弹性调度引流。为不同的根因指标配置了不同的调度引流或故障自愈策略,并为每个策略编写相应的编排作业脚本,将作业脚本配置到脚本作业执行模块,调用K8s提供的API对容器进行编排与操作,以实现弹性扩缩容与故障恢复。
4总结
通过实验数据和结果发现,基于智能检测的方案可更好地解决云化环境下依赖硬性规则实现弹性扩缩容、故障处理、负载均衡场景的弊端,减低运维人员监控和处理成本,提高运维速度和质量,真正实现智能调度、故障自愈的能力。
该方案的创新点主要有以下几点:
(1)容器云+AI+调度:通过AI智能感知服务状态和健康状况,智能调度达到服务隔离、摘流、弹性扩缩容。
(2)容器云+AI+引流:通过AI分析自动修改云环境下微服务网关配置,达到智能引流和防止服务雪崩的问题。
(3)容器云+AI+故障处理:提供全链路云化环境下的指标采集->故障发现->故障定位->故障自愈->服务感知的全链路处理解决方案。
(4)对Apriori关联分析算法进行简化,只分析两两告警事件之间的关联规则(二频繁项集),通过基于大量的两两告警事件的关联规则合成根因图谱,替代单纯使用Apriori算法进行多频繁项集的关联规则的计算,大大降低了该算法的时间复杂度,最终使根因定位具有较高的准确率和较快的性能。
参考文献
[1]杨秋翔,孙涵.基于权值向量矩阵约简的Apriori算法[J].计算机工程与设计,2018,39(03):690-693+762。
[2]金海,吴松,王行军.容器云环境中流数据处理系统的弹性资源调度方法及系统:中国.CN201710288587.4[P].2017-09-22
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!