空管自动化系统智能运维技术研究综述
2022-03-17林国峰詹伶俐沈德仁
林国峰,詹伶俐,沈德仁
(南京莱斯信息技术股份有限公司,江苏南京 210000)
航空是我国的战略性产业,是建设独立自主国防的重要基础,也是带动国民经济发展的重要力量。航空在我国的可持续发展道路上正扮演着不可或缺的重要角色,为各地区协同发展带来了源源不断的动力。面对航线数量以及航班数量的不断增长,空管自动化系统在实现平稳有序的空中交通管制中发挥了重要的作用。经过多年的技术推进,国内已经实现了航班信息与航空雷达自动化系统、电子进程单的关联,实现了空中交通管理的数字化和集成化。即使如此,空管自动化系统还是面临着很大的技术变革需求,下一代空管自动化系统的研究与应用迫在眉睫,因此针对下一代空管自动化系统运行保障体系建设的研究具有重大的战略意义。
1 空管自动化系统的发展
1.1 传统空管自动化系统
20 世纪60 年代末70 年代初,美国联邦航空局(Federal Aviation Administration,FAA)开始建设全国空中交通管理系统,自此对航空管理的研究引起了关注。到了20 世纪80 年代中后期,随着通信网和互联网技术的进步,全球主要国家的空管自动化系统逐步形成了完善的地基导航技术,并且开始采用数字通信技术和计算机技术。目前,中国、美国、法国等国家已经构建出了完善的空管自动化系统。这些系统普遍由通信、导航和监视3 部分组成。通信方面包括空地数据链网络、航空移动卫星通信网以及空地一体化航空通信网;导航方面包括以卫星技术为基础的导航、定位和自动着陆系统;监视方面包括自动相关监视以及超视距监视。
1.2 下一代空管自动化系统
经过多年的发展,空管自动化系统虽然已能较好地满足空中交通管理的各项需求,但空管自动化系统仍然存在很大的技术发展空间。一方面,随着通用航空、无人机航空等领域研究的兴起,目前正在积极开展基于航迹运行相关技术的研究,而现有的空管自动化系统将不再适用;另一方面,随着虚拟化、容器、弹性计算以及人工智能等先进计算技术的发展及其性能优势的体现,各方已经将以上技术作为下一代空管自动化系统研制的基础技术支撑。这种技术架构、软硬件设施的巨大变革,以及业务复杂度、系统规模的全面提升,对下一代空管自动化系统的可靠性保障提出了全新的、严峻的挑战,尤其在资源管理、数据管理等方面,系统的性能异常将更加难以捕捉和追踪。由此可见,下一代空管自动化系统亟需一套与之匹配的运行保障体系,能够对系统中的性能异常进行智能检测和预警,从而保证空管自动化系统的可靠运行。
2 空管自动化系统智能运维体系
智能运维(algorithmic IT operations,AIOps)的出现为空管自动化系统的运行保障体系建设提供了可行的解决方案。AIOps 并不是一种具体的算法,而是集成了许多算法(包括数据挖掘、统计分析、机器学习等算法)形成一套完善的、自动化的运维体系,进而辅助人工团队完成大量的、重复性的运维任务,甚至为复杂的故障排查提供可信的数据分析结果。
面向空管自动化系统的智能运维体系如图1所示。该体系通过前端可视化展示空管自动化系统的监控服务模块,包括网络监控、服务器监控、存储监控、虚拟化监控、数据库监控以及中间件监控。计算平台是本体系中的核心,它对接了空管自动化系统的服务器和数据库,为AIOps 构建异常检测、异常诊断以及异常预断三大主要算法模型,进而提供了智能告警、系统管理、配置管理以及权限管理等核心功能。
图1 空管自动化系统智能运维体系示意图
根据计算平台中算法模型的技术原理划分,目前针对智能运维的主要研究大致分为基于时间序列分析的方法、基于文本挖掘的方法、基于深度学习的方法以及最近提出的基于溯因推理(abductive learning)的方法。
2.1 时间序列分析的智能运维方法
时间序列分析起始于20 世纪90 年代,时间序列的研究涵盖了相似性查询、时序模式挖掘、时间序列分类和聚类、时间序列异常检测等领域,是各行各业尤其是复杂系统研究中密切关注的内容。目前,空管自动化系统的许多监控项都是时间序列数据,因此时间序列分析是其智能运维研究中非常重要的一环。
时间序列分析的基础是统计分析,国内外早已开展了众多研究。时间序列分析的代表算法是差分整合移动平均自回归模型(auto-regressive integrated moving average model,ARIMA)[1],最初用于气象数据以及传染病数据等具有明显季节性或周期性的单维时间序列的异常检测。早在2003 年,文献[2]提出了使用计算建模技术实现对计算机异常的诊断。文献[3]提出了一种将ARIMA模型应用于网络流量趋势分析的方法,该方法从网络流量的原始数据中提取出相关特征并对各个特征分别建立ARIMA 模型,将实际值与模型预测值的差值作为偏离度向量,通过不断更新偏离度并结合支持向量机(support vector machine,SVM)对网络流量进行分类实现实时在线分析。文献[4]提出了基于L1 正则化逻辑回归算法,并借助统计学上的分位点,通过某个时间跨度上的服务器性能指标构造了状态“指纹”,通过“指纹”的相似度比较来确定异常事件的具体类型,从而协助运维人员实施对应的解决方案。文献[5]介绍了一个名为DBSherlock的性能异常诊断工具,用于大型线上交易系统数据库性能异常诊断。DBShelock 集成了异常检测和因果分析功能,其中异常检测功能基于DBSCAN算法实现,因果分析功能则是一种基于断言的解释机制,类似决策树算法。不过该解释机制的可靠性在很大程度上取决于反馈信息的精确程度,即使非常小的输入噪声都会对精度造成较大的影响,从而不得不修改原有的树形结构。Jeyakumar 等[6]构造了一种基于因果概率图模型的根因分析框架,在框架内整合了异常查询、异常分类以及指标关联等功能。由于运行过程依赖于大量的人为操作,随着系统规模的扩展以及指标数据量的增加,框架整体的可行性会有所下降。
指数平滑(exponential smoothing,ES)是在经典的移动平均法基础上发展起来的一种时间序列分析方法,其优势在于模型简洁、参数少易于训练、计算开销少等,早期主要应用于中短期经济发展的趋势预测。Holt-Winters 算法[7]又称为三次指数平滑(triple-exponential smoothing,TES)。作者所在课题组根据自动化系统监控数据的特点对Holt-Winters 模型进行了优化,设计了监控项的动态异常检测和趋势预测方法,效果如图2 所示。
图2 基于Holt-Winters 模型的空管自动化系统监控项预测和异常检测效果图
我们利用采集到的监控项历史数据去训练Holt-Winters 模型的参数。根据监控项的实时数据,基于3σ 准则自适应生成监控项的告警上界和告警下界,上下界共同组成了监控项的动态基线,不再使用简单的阈值去判断监控项的正常或异常,例如图2 中的红色曲线低于下界,因此判定为异常。这种方法的优势在于克服了当前自动化系统频繁出现告警误报、漏报和告警不及时的问题。同时,该方法可根据监控项的实时数据生成未来一段时间(未来10min、1h 等)的数值预测结果,在关键监控项的监控上给予技保人员充分的时间提前量,提升告警应对能力。
以上方法的技术基础均为时间序列分析,其优势在于:1)时间序列数据在所有可监测数据中的总量占比相当大,相关应用非常广泛;2)时间序列分析模型结构简单,模型训练与部署的计算负载较小。其劣势在于:现有的时间序列分析技术缺乏对长期的、具有复杂关联关系的数据(例如文本)进行分析的能力。
2.2 基于文本挖掘的智能运维方法
在空管自动化系统运行过程中,很多复杂关联关系的信息都包含在消息以及日志等文本数据当中。基于文本挖掘开展智能运维技术研究,可以弥补时间序列分析在这方面的缺陷。
朱丽娜等[8]定义了单步相似度和模式相似度来分析日志文件,引入拓扑排序合并相似单步来计算模式相似度,通过模式相似度的度量提前预判性能异常信息,实现告警的预警。文献[9]提出了一种基于SD 结构的处理频繁路径基算法实现日志文本的关联,使得COFI 算法在时间性能和空间性能上有所提升。杨杨等[10]基于模糊推理策略为规则前件赋予不同的权重,对于权重不高的失败join 操作给予一定的容忍度,克服了Rete 算法的精确匹配问题,在告警消息缺失、中断等情景下提升了关联模型的容错性。鲁显光等[11]采用数组查询的方式在稀疏项中查找频繁项集,而使用Top-Down 遍历查找密集项中的频繁项集,避免了FPgrowth 算法针对稀疏数据集中的单个项需要构建多个分支条件模式树的问题。
以上方法对传统的文本挖掘方法进行了改进,提升了文本语义、关联等复杂信息的分析能力。如果将这一类方法应用于自动化系统监控消息和日志的挖掘,将显著提升自动化系统的智能运维水平。但是现有的文本挖掘方法的不足在于:1)文本的非结构化以及文本模板的多样性对文本挖掘模型的构建造成了一定的困扰,需要设计相匹配的结构化和特征提取方法;2)现有的文本挖掘方法缺乏对长文本数据的语法和语义进行分析的能力。
2.3 基于深度学习的智能运维方法
不难看出,前述的智能运维方法总体上需要经过故障机理分析、数据预处理、提取特征数据、建立模型等一系列流程,既需要花费大量时间又需要运维人员具备极强的专业知识。随着空管自动化系统的复杂化和规模化,对端到端的智能运维方法的应用需求日益迫切,而深度学习的发展和普及恰好提供了新的思路和途径。
作为深度学习的前身,经典机器学习在智能运维领域也诞生过一些应用。Lin 等[12]考虑到日志文件标注的困难性,尝试利用日志相似性对系统日志进行聚类实现无监督的日志异常检测,但聚类算法不能有效地利用日志文件在时间维度上的序列特征。Qiu 等[13]提出的SyslogDigest 模型将非结构化的日志消息映射到消息模板上以解析日志消息,然后基于消息模板的序列生成高层次的事件记录。
后来基于学习开展智能运维研究吸引了许多学者的关注。文献[14]基于去噪自编码器对多种故障进行了诊断,实验结果表明其诊断准确率高于单隐含层的BPNN、多隐含层的BPNN 以及SVM。Brown 等[15]将具备注意力机制的循环神经网络(recurrent neural network,RNN)用于分析日志数据,分析结果可协助运维人员进行系统的入侵检测。文献[16]介绍了一种基于LSTM 的DeepLog模型,避免了RNN 的梯度消失/爆炸问题,在离线阶段判断新产生日志序列与模型学习到的特征是否相符,如果不相符就认为该日志序列是异常的。张林栋等[17]基于双向长短期记忆(Bi-directional long short-term memory,Bi-LSTM)网络实现了HDFS 和OpenStack 数据集上的异常检测,有效地结合了前序事件以及后续事件对当前异常事件的影响。Meng 等[18]对DeepLog 进行改进并设计了LogAnomaly 模型,实现了跨日志类型的迁移。文献[19]提出利用CNN 来检测大规模系统日志中的异常情况,基于不同大小的卷积核提取出日志之间的内部关联。文献[20−21]借助专家经验从日志序列中提取典型特征,然后在随机森林等传统机器学习方法学习日志异常模式,避免了对海量训练数据的过度依赖。张圣林等[22]基于GloVe 框架提取日志中的语义信息并构造了日志的模板向量,在一定程度上克服了不同语法造成的跨类型日志融合困难的问题。陈兴蜀等[23]在ptrace 监控进程基础上利用滑动窗口切割生成进程的系统调用短序列,同时设计了一种数据结构Map 实现短序列去重,在有限的训练开销下基于LSTM 网络实现了进程资源调用异常检测功能。随着生成对抗网络(generative adversarial network,GAN)相关研究的深入,文献[24]提出利用InfoGAN[25]和推理神经网络生成数据的平衡样本以及对应的标注,再利用第二个GAN 进行标签优化,最后通过随机森林做分类,结合Hyperband 算法实现参数的快速优化。
目前,应用于智能运维的深度学习模型主要包括自动编码器、深度置信网络、卷积神经网络、循环神经网络以及生成对抗网络。相比传统的时间序列分析方法以及文本挖掘方法,深度学习方法的优势在于:1)支持端到端的模型构建,不需要过多地考虑数据结构化以及数据的特征提取;2)具备对长期的、具有复杂关联关系的数据(包括文本数据和数值数据)进行挖掘的能力。然而,目前深度学习方法还存在一些不足,主要包括:1)模型结构复杂,是否收敛具有一定的不确定性,需要开展大量的调试工作;2)对训练数据的规模和质量有着非常高的要求;3)尽管在蕴含关系推理上具备较强的能力,但在预设关系推理上存在明显的不足,具体表现为分析、解释和推理上远远达不到human level。
2.4 基于溯因推理的智能运维方法
深度学习方法虽然性能强大,但仍然存在许多不足。现有的深度学习技术基础主要基于统计分析实现自动的归纳和演绎,其技术核心对数据的规模和质量有着非常高的要求且方法的泛用性不好,同时在叙事[26]、阅读[27]、反事实推理[28]等任务上的表现远远达不到Human Level 级别的水平。其根本原因在于,当前基于统计分析的深度学习技术表现出了优秀的蕴含关系推理(entailment inference)能力[29−30],但并不具备预设关系推理(presupposition inference)能力,这种逻辑能力上的缺陷导致其无法胜任有关过程推理、模式解释的任务[31]。空管自动化系统要达到一种更高级别的智能运维水平,就必须突破经典的归纳和演绎思维逻辑,实现一种称为溯因推理(abductive reasoning)的高阶思维能力。
所谓溯因推理是指从其他案例环境中借鉴观测结果、结论及相关知识,同时深入考察具体事件[32],研究过程经过循环往复“多次迭代”,在经验观察和抽象理论之间灵活移动,开展更具扩展性的事件追踪[33]。性能异常的溯因推理是通过一定手段来寻找处于异常状态下的系统故障点,进而为系统修复或改进提供参考的过程[34]。相比深度学习方法,溯因推理学习将着重强化模型模拟预设关系推理的能力,使模型在分析、解释推理上的能力达到甚至超越human level。然而,溯因推理仅仅在学术界显现出一小部分的成果,其中有部分成果称之为反绎学习(abductive learning),可见相关研究尚处于起步阶段。
基于溯因推理技术,空管自动化系统的智能运维有望达到自动化根因诊断的水平,即不需要人为干预,模型自动收集监控项以及文本数据来判断系统出现告警甚至是故障的原因。如图3 所示,模型对DCP1 服务磁盘I/O 性能陡降的告警进行诊断,首先收集告警前相关日志文本建立日志序列,其次输出根因猜测,再次收集告警后相关日志建立日志序列,然后通过告警后的日志序列去验证猜测的合理性,最后推断出造成DCP1 服务器磁盘I/O 陡降的根因在于DCP1 服务器的CPU 负载过高。
图3 基于溯因推理的自动化系统告警根因诊断模型
3 结束语
本文围绕下一代空管自动化系统建设,分析了基于智能运维的保障体系关键技术,包括基于时间序列分析的方法、基于文本挖掘的方法、基于深度学习的方法,以及最近提出的基于溯因推理学习的方法,总结了各个技术领域的研究现状。
通过本文系统性的阐述可知,溯因推理是当今机器学习领域的热点问题和关键突破口。现阶段溯因推理还有许多问题有待解决,包括但不限于以下方面:1)突破现有机器学习方法依赖的IID 假设,实现稳定的推理。2)克服干扰变量、样本偏差导致的虚假相关性对模型稳定性的干扰。3)建立具备可解释性的新学习范式。总而言之,溯因推理研究将在下一代空管自动化系统智能运维体系建设中发挥重要的推动作用,即以多元统计分析为基础,融合因果推理、深度学习以及自然语言处理技术,不依赖于对系统模型的准确理解,依靠系统运行过程中产生的性能指标以及日志文本挖掘出有用的潜在信息,并对空管自动化系统运行过程中出现的性能异常事件做出合理的检测、根因诊断以及预警。相关的研究将对航空水平的提升具有重要的参考价值,将在民航运输业具有广泛的应用前景。