网络功能虚拟化(NFV)体系结构的最新部署得到了极大的关注。虚拟化虽然带来了诸如下降成本和简化网络功能部署之类的好处,但它增长了附加层,从而下降了较低层故障的透明度。为了改善虚拟网络功能(VNF)的故障分析和预测,咱们构想了一个运行时预测分析系统,该系统与现有的反应式监视系统并行运行,以向网络运营商提供针对故障状况的及时警告。在本文中,咱们提出了一种基于深度学习的方法,可从NFV系统日志中可靠地识别异常事件,并使用2016-2018年连续18个月的虚拟化提供商边缘路由器上的实际部署数据进行实证研究。咱们的深度学习模型与定制和适应机制相结合,能够成功地识别与网络故障单相关的异常状况。分析这些异常能够帮助操做员优化故障单的生成和处理规则,以便针对故障状况采起快速甚至主动的措施。后端
网络功能虚拟化(NFV)体系结构的最新部署[1]得到了极大的关注。 NFV容许将之前由硬件处理的网络功能实现为在商品服务器上运行的软件。其优点包括简化新功能的部署,简化管理
经过托管的虚拟机,并下降了使用商品硬件的成本。不利之处在于:1)与专用硬件相比,当今新实施的虚拟化网络功能(VNF)及其主机商用服务器更容易出现故障[十一、十二、23],以及2)虚拟化为下层事件引入了更多的层次和更少的可见性,例如故障。这些缺点可能会对NFV部署产生负面影响。例如,对于NFV系统来讲,一个关键问题是它们是否能够提供与传统运营商级系统类似的可用性,最多可达9s(正常运行时间的99.999%)[5]。在本文中,咱们描述了在美国最大的ISP的IP主干网络边缘部署的,迄今为止已知的最大NFV部署之一中,预测网络故障并减小停机时间的过程。咱们专一于重要的VNF类型之一-vPE(虚拟化提供商边缘路由器)。咱们探索了一种系统的设计和性能,该系统将深度学习模型(LSTM),模型定制和经过转移学习共享到syslog的组合相结合,从而使咱们可以识别潜在故障特征,从而近乎实时地预测故障单。尽管将机器学习(包括深度学习模型)应用于故障预测自己并不新鲜[2二、2八、37],但咱们的工做面临着三个挑战的独特组合。首先,因为故障相对较少,所以咱们的数据极不平衡,所以很难训练监督学习模型来进行故障单预测。其次,因为每一个VNF都有其本身的规格和流量特性,所以可能没有单个模型能够在VNF中很好地工做。第三,按期软件更新会不断更改数据平面上的系统功能和流量特性。所以,咱们没有足够的精力来收集大量的培训资料来创建长期使用的模型。相反,必须使用短数据窗口快速构建模型,并在下一次软件更新或配置更改使它们过期以前将其部署。服务器
咱们的解决方案包括如下几种技术:网络
•为了解决数据不平衡问题,咱们使用了无监督的异常检测方法来训练带有“正常”日志的长短时间记忆(LSTM)网络[14]模型。 异常日志模式会触发对网络故障状况的预测。架构
•为了解决VNF多样性,咱们使用聚类来识别具备类似配置和日志行为的VNF,并对其进行汇总(将它们做为合并后的系统日志做为一个单元进行处理)。dom
•为了解决基础架构更改的时间动态变化,咱们使用相似于迁移学习的增量培训。 这有助于咱们在软件更新后快速引导模型,而不会致使收集训练数据的时间延迟。机器学习
咱们使用在生产环境中部署的vPE路由器上18个月内收集的网络故障单来评估咱们的方法。 咱们的评估结果代表,系统日志异常一般发生在生成网络故障单以前。 咱们能够找出这些异常状况,以识别任何潜在的预警信号或预测性信号。分布式
[9,30]解决了NFV中可靠性,弹性和故障管理的必要性和挑战,代表关键挑战之一是层之间的协做和延迟。 [18]研究了网络资源警报之间的相关性,并为根本缘由分析制定了规则。 [21,24]利用基于自组织映射(SOM)的群集来基于SNMP测量来识别不一样类型的网络故障,可是须要事先对每种故障类型进行充分的采样。 [31]从虚拟机管理程序和VM层收集指标,并应用随机森林对VNF行为进行分类。全部这些都评估了小型的,自定义的网络故障。模块化
现有的文献[16,20]基于关键性能指标(KPI)来实现故障检测,例如CPU利用率和数据包丢失,而咱们的工做集中在VNF系统日志上。现有的大多数工做都经过创建通过正常和异常事件训练的二进制分类器来应用监督的故障预测/检测。 [10,19,29]根据故障事件的特征应用了简单的故障预测方法,并开发了隐马尔可夫模型(HMM)和浅层机器学习方法进行网络故障预测。为了捕获监视数据中的顺序模式,[37]设计了顺序功能,并应用了Random Forest来学习数据中心交换机硬件故障的预兆和非预兆模式。 [36]应用LSTM来检测服务器群集关闭的单一类型的故障。上述监督方法面临的主要挑战是,它们须要足够的异常数据来训练模型,这须要花费大量时间来收集,例如根据以上研究的多年。性能
为了减小数据收集的延迟,一些工做采用了无监督的方法。 [35]提取状态变量和标识符的特征,并应用PCA进行异常检测。 [8,17]将LSTM应用于Linux系统调用的网络入侵检测和CloudLab上的OpenStack实验。尽管咱们也采用无监督的学习方法,但咱们的工做与现有工做有所不一样,其重点是对NFV系统故障的预测分析。学习
使用来自实际NFV部署的数据,咱们研究了网络故障的不一样类型及其时空模式。 咱们还检查了VNF层上syslog的模式,这些模式将用于预测网络故障。
咱们的数据集包括网络故障单和从38层vPE(虚拟化的提供商边缘路由器)收集的,由一级ISP的骨干网络在18个月内部署的VNF系统日志。 vPE降级会致使客户网络上的服务受损。 预测这些故障事件可使操做员或闭环自动化在每次事件发生以前触发缓解措施,并最大程度地下降其影响。
故障单捕获可操做的网络事件。每一个故障单都包含发生时间,根本缘由和故障单持续时间。咱们的数据集包括这38个vPE上的所有故障单,并包含如下六类根本缘由:
•维护:预期或计划的网络操做或更改;
•电路:两个设备之间(特定接口上)的链接断开。
•电缆:因为环境或人为因素形成的电缆断开链接。
•硬件:构成机箱系统的卡和构成卡的组件出现故障。
•软件:因为软件问题而致使的故障。
•重复:原始问题未解决时,后续操做失败。
对于每一个故障单,咱们同时跟踪故障单报告时间和维修结束时间。故障票证是由来自各类网络监视系统的信号经过一系列票证处理逻辑(例如模式匹配和事件相关性)与已知问题签名进行匹配而触发的。所以,票证报告时间一般在第一次出现网络故障症状时或以后。因为票证生成过程不完善,所以可能会遗漏早期症状,并在症状的首次出现和票证的实际生成之间引入明显的延迟。
系统日志是系统生成的用于描述各类事件的复杂,无结构,自由格式的文本[26,35]。一部vPE每一年可能有数百万条syslog消息。关键字和日志消息的不一样类型之间的关系[八、1七、2六、37]定义了系统日志的关键结构模式。咱们使用著名的签名树[26]方法将原始syslog转换为结构化表示形式,以方便进行关系建模。咱们还将vPE系统日志与具备相似网络票证的pPE(物理提供商边缘路由器)的系统日志进行比较。咱们观察到,vPE syslog的容量比pPE syslog少77%,而且在物理层上包含的日志消息少得多。这证明了咱们的直觉,即NFV下降了每一个vPE对较低层事件的可见性。
为了帮助理解故障凭单的可预测性,咱们将分析重点放在(1)故障凭单的时间分布/频率和(2)vPE之间的凭单模式类似性。
图1(a)显示了随时间推移具备不一样根本缘由的故障单。 咱们发现维护是主要因素,但它们是可预测的(由于它们是预约事件)。 接下来的两个主要贡献者是重复票和巡回票。 整体而言,票证数据高度不对称。 图1(b)绘制了每一个vPE的非重复故障单到达间隔时间的分布。 咱们发现非重复的票证相隔40分钟以上到达。 连续票证之间的时间间隔的80%超过10小时,而且连续票证之间的25%的间隔时间超过1000小时(42天)。 最后,咱们观察到重复的票证常常会忽然到达。
图2显示了跨vPE的非维护故障凭单(按每一个vPE的凭单数量排序)。 每一个点表示对应的vPE(y)在给定的时间间隔(x)上具备票证。 显然,票证模式是非周期性的,而且与vPE有关-某些vPE具备比其余票证更多的票证。 时间或任何特定vPE都没有明显的误差。 另外一个观察结果是,有时,多个vPE在相同的时间间隔(竖线标记)中遇到网络故障状况。 对数据的更深刻研究代表,这些票证是由致使全部链接的vPE中断的核心路由器问题触发的。 可是,这种状况不多见,只会形成不多的故障单.
咱们对在vPE处收集的VNF系统日志进行时空分析。为了分析与网络故障事件无关的“正常”系统日志条目,咱们会修剪日志以删除故障单有效期(故障单到达时间到标记为已解决之间的时间)以内三天内的全部条目。跨vPE的相关性。咱们首先问一个问题:vPE的系统日志在正常运行期间是否显示相似的行为(即无端障)?咱们计算每一个vPEv的syslog分布的余弦类似度[32],以及全部vPEs V上聚合的syslog的余弦类似度[32],即
其中s(·)表示系统日志分布。咱们在整个系统日志中使用一个月的滑动时间窗口,并计算归一化的频率分布。图3显示了整个时间的余弦类似度的分位数(0%,25%,50%,75%,100%)。只有三分之一的vPE具备类似的syslog分布(余弦类似度> 0.8),而且有5个vPE的余弦类似度<0.5。这多是因为服务器角色,配置和流量的差别所致。所以,咱们将须要针对每一个vPE定制的模型来检测vPE syslog上的异常
另外一个关键发现是,某些vPE的系统日志在2017年末至2018年初之间忽然发生了变化,这是因为系统更新改变了系统日志的分布而触发的。 咱们计算连续两个月之间syslog分布的余弦类似度。 咱们发现,在系统更新以前,余弦类似度始终高于0.8,但在系统更新后降至低于0.4。 这意味着咱们须要快速更新vPE syslog的模型(使用短数据窗口),以使它们不会过期
ANOMALIES
在本节中,咱们将介绍肯定vPE syslog中特定(或异常)模式的方法,这些模式可能用做(故障)tickets 情况的早期检测或警告签名.
咱们在§3中的经验分析肯定了经过vPE syslog预测故障单的三个主要挑战。首先,在咱们的vPE系统日志中,故障单相对较少。在这种不平衡的数据的状况下,很难训练用于故障预测的监督学习模型。其次,系统日志数据的数量和复杂性使得很难手动选择对日志行为进行ML模型训练所必需的功能集。第三,因为Syslog分布随vPE的不一样而变化,所以随着时间的流逝,咱们须要为每一个vPE自定义机器学习模型,并在系统更新后对其进行从新培训。二者都会致使数据收集延迟方面的大量开销。为了解决前两个挑战,咱们创建了一个长期短时间记忆(LSTM)网络[14],该网络在正常运行期间自动学习系统日志模式(第4.2节)。代替有监督的训练,咱们采用使用“正常” syslog数据训练的基线模型采起异常检测方法。所以,故障票事件的稀有性不会影响咱们。每一个检测到的异常均可能充当网络故障情况的指示器。为了解决数据收集延迟的第三个挑战,咱们同时应用了群集和在线学习技术,以减小为单个vPE定制模型所需的训练数据量(第4.3节)。检测到异常后,咱们将它们与相关故障单之间的映射关联起来。咱们将票证生成以前的时间窗定义为预测期,并将票证报告与维修结束之间的时间做为预期期。如图4所示,若是在票证的预测或预期时间段内检测到异常,咱们会将其与票证相关联。特别是,在机票的预测期内检测到的异常被视为“预警信号”,而在机票的预期时间内检测到的异常被视为“过后症状”。尽管有不少缘由,在出票时间以前可能会发生异常,某些早期预警信号可能会转换为其余触发票的签名。与票证无关的异常将被视为错误警报。咱们会更改预测期的长度,以查看第5节中的效果变化。
做为用户/程序与系统之间通讯的一种语言,vPE syslog显示顺序模式。准确的系统日志模型必须可以捕获那些顺序模式。所以,咱们考虑了长期短时间记忆(LSTM)网络,该网络以其捕获嵌入在顺序数据中的全面而复杂的模式1的能力而闻名。借助足够的培训数据,LSTM能够自动学习系统日志的正常模式,而且能够将异常状况做为正常状况进行偏离。实际上,LSTM在检测各类异常方面已显示出巨大的成功,例如分布式系统中的服务器故障或情感分析中的异常[8,17,33]。与传统的线性分类器不一样,咱们的方法不依赖特征工程。对于LSTM的输入,咱们使用每一个单独的logmi,它捕获特定时间间隔([ti,ti-1))的系统事件(mi出如今ti)。不只使用原始日志条目,咱们还使用上述签名树方法[26]从原始数据中提取特定的模板(或签名)并对其进行分类,并以(mi,ti -ti-1)元组标记,mi∈S,其中S是模板集合。给定k个syslog元组,咱们训练LSTM模型来预测mk + 1。这是一个多类分类问题,其中输出是模板集S上的几率分布。
咱们使用在“免票”网络操做期间产生的系统日志来训练LSTM网络。如第3.3节所述,咱们修剪在实际工单的活动窗口周围3天时间内发生的syslog条目。咱们还尝试了更大的窗口大小,但没有观察到明显的差别。
使用训练有素的LSTM模型,咱们能够以下检测异常。为了肯定传入的系统日志mk + 1是正常仍是异常,咱们将先前观察到的k个系统日志插入模型中,并得出第(k + 1)个对数的预测几率分布。若是mk + 1正常,则相应的对数似然值应较高(高于阈值),不然为异常。经过更改阈值,咱们能够得出精确召回曲线(PRC),这是用于评估异常检测系统的最普遍的方法[6]。
尽管LSTM旨在自动学习正常syslog条目的模式,但因为少数群体模式在训练数据中不多出现,所以一般很难学习。结果是较高的误报率。咱们经过对少数(正常)模式进行过采样来解决此问题[4]。具体来讲,咱们使用第i个月的系统日志来训练LSTM模型,该模型将用于检测第i个月(i +1)内的异常状况。咱们使用第i个月的正常syslog做为训练数据,对LSTM模型进行屡次训练。在每轮训练以后,咱们使用原始训练数据测试模型,并识别被误分类为异常的正常syslog模式。而后,咱们对这些模式进行过分采样,并对全部其余模式进行随机采样,并使用所得数据调整模型权重。当假阳性率不能进一步提升时,该过程退出。
因为syslog的分布在vPE之间有所不一样,所以通常的LSTM模型可能会达到次优的精度。理想的解决方案是为每一个vPE构建自定义模型,可是由此产生的训练开销和数据收集延迟是不可接受的。咱们使用vPE分组解决了模型准确性和数据收集延迟之间的折衷[16]。咱们将K-均值[13]应用于vPE组,并根据模块化选择K组的数量。同一群集中的vPE在syslog分布中显示类似的模式,而且它们的训练数据将汇总在一块儿觉得该组创建统一模型。对于咱们的数据集,咱们产生了4个vPE簇,这致使了4个LSTM模型。
咱们还使用在线(或增量)学习来减小训练数据收集的延迟。具体来讲,每月咱们都会使用新到达的syslog条目更新模型权重,以进行一轮增量培训。因为系统日志分布相对稳定,所以咱们没有观察到模型权重的显着变化。
惟一的例外是,在2017年末至2018年初之间,vPE网络进行了系统升级,而且对某些vPE的系统日志分发进行了重大修改。结果,错误警报的数量增长了14倍,代表该模型已过期且须要更新。天真的解决方案是从新训练整个模型,可是重建合理的训练数据集须要3个月以上的时间。咱们须要一种能够在更短的时间范围内从新训练模型的解决方案。
为了解决这一挑战,咱们考虑转移学习[27],其中使用有限的训练数据将预训练的神经网络模型(即在系统更新以前训练的“教师模型”)调整为能够响应新系统日志的学生模型。行为。具体而言,咱们首先经过复制教师模型来构建学生模型,而后使用新的syslog数据训练学生模型以调整模型的顶层。对于咱们的案例,在主要软件更新后,有足够的一周新的训练数据来快速更新模型。
在本节中,咱们评估基于LSTM的异常检测系统,以及将vPE syslog异经常使用做网络故障单的(早期)警告签名的可行性
咱们使用Keras [2]和Tensor ow [3]做为后端实现了异常检测系统。对于模型优化,咱们改变了模型参数以最小化分类交叉熵[15],但发现模型性能一般对参数选择不敏感。咱们的最终LSTM模型由2个LSTM层和1个致密层组成。
估计系统日志异常的地面真相。评估咱们的异常检测系统须要系统日志异常的地面真实性,咱们可使用故障单进行近似。对于每一个故障单,咱们将其生成时间以前的时间窗口定义为预测周期,并将其生成后直至报告的故障单修复时间(机票持续时间)的时间窗口定义为预期时间段。如图4所示,若是任何系统日志异常属于故障单的预测期或预期期,咱们将其视为真正的异常。所以一张票可能具备多个(早期)签名。另外一方面,在这些时间段以外的任何异常都被视为误报。咱们尝试了从1小时到2天的多个预测周期值,发现检测性能在1天时收敛。另外一个有趣的观察结果是,在将syslog异常与非重复故障单匹配以后,每一个故障单都与至少两个异常相关联(在预测期内)。这些异常彼此接近,平均间隔不到1分钟。所以,咱们配置了检测系统,以在检测到两个或多个异常的小簇时报告网络故障单的警告签名。
咱们使用18个月数据中第一个月的syslog数据进行初始模型训练。 在每月末,咱们使用上个月的最新数据更新LSTM模型,并使用下个月的数据测试更新后的模型。 初始模型训练和每个月模型更新都在不到一小时的时间内完成。
咱们从异常检测的三个标准指标开始[25]。 精度显示全部检测到的异常中真实异常的百分比; 召回率用于测量所检测到的数据集中异常的百分比(门票为地面)。 F-measure是二者的谐波均值。 图5绘制了经过调整LSTM对数几率(第4.2节)中的上述阈值而产生的精确召回曲线(PRC)。 咱们的最终工做点是最大化Fmeasure的工做点,精度为0.8,召回率为0.81。 在这种状况下,咱们的系统能够有效地识别异常,同时为全部vPE天天实现0.6%的低误报率。
咱们考虑了两种用于异常检测的现有方法:•自动编码器[7]是前馈多层神经网络,其中所需的输出是输入自己。用正常数据训练自动编码器后,重建错误能够用做异常指示。咱们使用TF-IDF(项频,文档逆频)功能[36]做为自动编码器的输入。 •一类SVM [34]使用浅层学习来构建正常syslog训练数据的模型,这须要特征工程(经过内核将数据映射到高维特征空间中)。若是新的系统日志条目明显偏离模型,则将其标记为异常。为了公平地比较,咱们在全部三种方法上都应用了相同的自定义和适应机制(第4.3节)。图6显示了这三种方法的性能。两种深度学习方法(LSTM,自动编码器)在很大程度上优于传统的分类方法(一类SVM),由于鉴于vPE syslog的数量和复杂性,功能工程很是具备挑战性。经过捕获syslog的顺序模式,LSTM略胜于Autoencoder(精度为0.82 vs. 0.77)。
咱们使用微基准来了解模型自定义(全部vPE的单个模型与每一个vPE的自定义模型)和快速模型适应(在系统更新以后)的做用。图7绘制了18个月期间的模型F量度。模型定制能够显着改善模型F度量和精度(因为空间限制,结果未显示)。咱们的模型自适应组件容许系统仅用1周的训练数据便可从软件更新形成的破坏中快速恢复。使用超过1周的训练数据不会产生明显的改善。
减小培训费用。咱们的设计同时使用vPE群集和转移学习来减小syslog训练数据量(用于构建和调整LSTM模型)。咱们经过将它们与相应的基准进行比较来评估其有效性。使用vPE群集,咱们能够将(初始)培训数据的数量从3个月减小到1个月。使用转移学习,咱们将恢复时间(从软件更新)从3个月减小到1周。这意味着咱们能够创建和维护高质量的预测模型,而不会因收集训练数据而形成昂贵的延迟。
咱们使用故障单做为近似的地面真实性来评估咱们的方法如何有效地发现异常的系统日志条件。图8显示了针对每一个人(非票证)(至少在票证到达前15分钟,在票证以前至少5分钟,在票证以前0分钟,在票证以后5分钟以及在票证以后15分钟)检测到任何异常的可能性。 (重复)票证类型,以及全部票证。
咱们寻求回答如下问题:
Q1:哪些类型的网络故障单在VNF Syslog中显示早期迹象?答:咱们发现VNF系统日志出如今多种故障单类型(例如,电路,软件,电缆和硬件)以前。与电路故障故障单相关的系统日志在故障单生成以前发生的可能性最高(74%),其次是软件(55%),电缆(40%)和硬件(28%)。这代表尽管对由虚拟化致使的较低故障的可见性下降了,但VNF syslog确实捕获了与网络故障单相关的异常状况。
问题2:对于在故障单生成以前未显示syslog异常的故障,它们的任何异常会很快出如今syslog上吗?答:是的,对于大多数票证(80%),vPE syslog将在票证生成后的15分钟内显示异常模式。这意味着故障模式在短暂的延迟后就能够在NFV层上看到,NFV能够利用它来进行故障单分析,诊断和管理。
Q3:与故障单代相比,咱们多早观察到系统日志异常状况?答:大多数检测到的系统日志异常都在故障单生成以前5分钟。对于Circuit,系统日志异常的36%提早15分钟出现,对于电缆(39%)和硬件(38%)类别,该比率甚至更高。尽管须要进行更深刻的调查,但这些结果代表,运营商可能可以利用这些系统日志异常来改善其票务流程,或者识别出指示网络故障的预测性或早期情况。
问题4:单个或一组异常是否能够做为一组近期故障单的警告信号?答案:这与是否能够将单个系统日志异常(或系统日志异常集群)与多个故障单关联的问题有关。根据咱们当前的数据集,这从未发生过,这主要是由于票证稀少且分隔良好。咱们计划未来使用更大规模的研究来证明这一发现。
咱们的模型识别出的异常能够分为四种状况。首先,检测到的状况多是近期网络问题的真实预测信号。例如,咱们肯定了一个条件,该条件涉及与特定控制器的某些对等会话链接失败有关的管理守护程序错误消息(“来自对等机箱控制的无效响应”)。当观察到这种状况的异常时,一般会在一段时间后发出故障单。咱们须要进一步研究这种明显的预测性特征,以了解潜在的vPE行为。其次,能够分析检测到的情况,并在出现故障情况时将其转变为早期检测特征。例如,咱们发现,在短期间隔内跨多个对等方的协议会话aps(“ BGP UNUSABLE ASPATH:bgp拒绝路径”)风暴能够转变为快速检测签名(误报最少)。这种异常检测的性能优于现有的服务水平监视器,后者一般具备更长的检测延迟。第三,检测到的状况多是触发故障单的事件的一部分。这多是因为现有票务流程中的事件响应过程所致,例如为抑制瞬态问题而添加的故意延迟。咱们的发现可能有助于运营进一步优化票务流程。第四,检测到的条件与故障单是巧合的(即,涉及无关的系统日志异常)。这种状况是相对罕见的,应谨慎管理,例如,经过在票证处理流中添加抑制规则。在之后的工做中,咱们将检测到的状况进一步分为这四种状况。
咱们在实际部署中使用系统日志和网络故障单来研究NFV网络中的故障预测问题。 咱们提出了一种从NFV系统日志中检测异常的新方法,该方法有可能用做网络问题的早期指示器,这些问题一般会致使故障单。 咱们使用在生产NFV环境中在虚拟化提供商边缘(vPE)路由器上收集了18个月以上的样本数据集来验证咱们的方法。 咱们观察到,基于LSTM的异常检测系统发现了一般在故障单以前发生的系统日志异常状况。 咱们相信,咱们的方法能够帮助网络运营团队(a)识别预测性或早期预警信号,或(b)改进当前的票务流程,从而可以及时响应NFV故障。