利用大数据分析技术的智能化网络故障诊断系统

2018-10-24 02:27朱永庆1黄新宇宏1陈江山包德伟
电讯技术 2018年10期
关键词:日志故障诊断故障

朱永庆1,黄新宇,唐 宏1,陈江山,程 康,包德伟

(1.中国电信股份有限公司广东研究院,广州 510630;2.华为技术有限公司南京研究所,南京 210012)

1 引 言

随着网络连接数和网络数据的快速增长,网络中的异常和非受控性变化不可避免地会越来越多。网络设备或子网的一个短暂的异常或故障(如路由协议心跳丢失、硬件电压下降)在引起网络的大规模故障之前可能不会被察觉到,因为从大量的网络监视数据中很难发现这些微小的异常行为记录。因此,网络的管理如基础设施保障、服务分配、性能监视也越来越困难。由于这些问题的存在,自动化和智能化的网络故障诊断技术也因此得到了广大研究者的关注。这些技术致力于提供快速的网络故障诊断和故障恢复方法,而这些技术也往往依赖于大量的网络系统数据。通常情况下,系统信息记录了网络运行的各种状态,这些信息由事件数据(如系统log文件、配置文件)和度量数据(如关键性能指标数据和网络性能数据)两类数据组成。近年来,大数据分析和机器学习技术被广泛应用到网络管理领域来解决故障诊断问题。文献[1-2]基于系统log和配置文件,利用数据挖掘算法来检测网络和设备的异常。文献[3]利用统计学习算法来分析关键性能指标(Key Performance Index,KPI)数据和性能数据以检测网络的异常。文献[4]则讨论了数据关联分析技术,这种方法可以分析事件数据和度量数据在故障发生时间上的关系。然而,这些技术或是商业的网络管理软件都只能针对一部分的故障问题,而不能提供全面的分析和管理的解决方案(即从故障发现到故障定界定位到故障恢复),因此整合了不同故障诊断和恢复技术的综合网络管理平台对于工业界和运营商来说便具有很高的价值。

针对这一问题,本文设计了一种灵活而智能化的故障诊断系统框架,并命名为智能网络故障分析与定位系统(Network Intelligent Maintenance System,NIMS),从而实现了大型网络下的自动化和智能化故障诊断。NIMS是一种全面的网络运维辅助系统。它的主要特性不仅有数据采集、数据可视化、数据分析、故障诊断功能,而且,基于开源软件的设计还具备横向扩展能力。NIMS系统为电信运营商提供了网络健康状态显示,并且能以在线和离线的方式准确地检测异常和故障的发生。在实际应用中,该系统显示出了如下的特性:

(1)适应性。NIMS支持从不同的数据源采集不同格式的数据,包括系统log、配置文件、指标数据(csv文件[5]),以及包含了log消息和指标数据的混合数据文件。

(2)功能性。NIMS针对网络级和网元级的故障诊断场景,提供了多种故障诊断技术,包括事件型异常和数值型异常检测,而且,NIMS也可以分析网络异常的根因,并提供故障恢复的参考方案。

(3)准确性。NIMS中提供多种针对性算法可以检测不同类型的故障问题,而且,用户也可以通过配置算法库的方式来定制算法。

2 系统架构

图1描述了整个系统的架构,整个系统由下至上分为数据采集层、数据分析层和数据应用层。数据采集层主要从底层网络设备收集各种类型的数据并进行预处理,处理之后的数据以结构化的方式进行存储以方便上层功能进行调用。数据分析层中集成了多种故障诊断算法,可以对数据进行针对性分析来对不同的故障问题进行检测,并提出故障恢复的建议。数据应用层提供了不同的应用程序,可以使用户通过基础图形界面来配置不同的应用从而达到自定义网络管理能力的目的,同时系统也可以使用户自定义数据分析层中的算法,以及自行开发数据应用层中的应用。

图1 智能网络故障分析与定位系统Fig.1 Architecture of the intelligent network fault analysis and location system

2.1 数据采集层

数据采集层从网络设备收集网络监视数据,包括系统数据(如系统log数据、通知消息数据等)、监测数据(如处理器、内存占用率、接口利用率等)和设备配置信息等。这些监视数据分为在线数据和离线数据,在线数据通过Kafka、Flume等集群对接设备或者第三方数据服务器,实时采集设备的运行数据并分析;而离线数据分析不直接对接设备,通过各种间接的手段将数据批量导入到分析系统中分析。数据采集层起到了承上启下的作用:对下层设备进行接口适配,可以通过插件方式,扩展各种采集协议,支持与多厂商设备对接;对上进行格式适配,同样可以通过插件方式扩展,实现对数据的格式化,将数据按照标准化格式存储,屏蔽异厂商数据格式差异。图2中,假设A、B两厂商的日志记录的日志格式都有差异,经过协议适配和格式适配的转化后,异厂商的日志被格式化为标准格式存储,上层应用(算法)直接获取标准格式库中的数据进行分析、呈现。

图2 采集层对上层屏蔽设备差异Fig.2 Collection layer isolates the difference of the devices

2.2 数据分析层

这一层提供了网络故障分析、诊断和预测预防能力,主要包括分析与异常检测和故障预防与确认两大功能集。

故障分析与异常检测主要包括日志分析、告警分析、配置分析以及针对特殊问题的增强分析能力(协议分析、性能指标分析分析等)。这部分的功能不依赖于人工经验和规则,而是基于大数据的分析方法,基于数据的时间、空间维度的对比分析,发现设备和网络的异常。时间维度的异常检测是指通过与历史数据进行对比,空间维度的异常检测可以通过设备之间横向对比。其主要理念是要从各种数据中提取数据的特性来构造设备或网络行为的特性矩阵(见2.2.2节)。其中,对于监测数据来说,特性矩阵通常涉及到设备或网络的KPI的时间序列数据。而系统数据的特性通常是指设备的事件类型或路由协议的类型,特性矩阵的内容是指网络或设备行为的统计内容,如均值、关联系数等。

2.2.1日志异常诊断

日志是网络运维中最重要的信息之一,日志中记录了设备运行中包括硬件、软件的各种状态信息。通过分析日志,可以了解设备运行的健康状态并对设备进行排错、优化。我们从日志信息中提取多种特征信息,并提供相似性检测、回归分析[6]、神经网络、随机森林等多种机器学习算法包来建立检测模型,从而实现异常检测。

图3 日志异常检测模型Fig.3 Anomaly detection model for system log

根据网络运维日志的特点,我们定义了衡量日志异常的统计特性指标:

(1)日志的时间特征

日志的时间戳不仅仅记录了设备事件发生的时间,通过检测日志时间特征变化模式,可以检测设备的异常。日志时间特征变化至少可以包含两种场景:一是已发生事件的时间间隔变化,通过分析事件发生的时间间隔,可以获取事件的变化模式。例如,假设报文入发送队列的事件记录时间戳为A,报文出发送队列的事件记录时间戳为B,当B-A的值在一个稳定的范围内,可以认为设备处于正常状态。通过分析,如果B-A的值远远超出正常范围,设备可能出现了异常。二是不同的新事件发生总会存在先后关系,但是在正常情况下,新事件与老事件之间的间隔会分布在一个正常范围内,在设备异常情况下,新事件的发生与旧事件发生的间隔可能会出现极大的变化。

(2)日志的密度特征

通常情况下,设备在正常状态也可能不定期的产生少量的日志记录。当设备异常时,设备可能会打破纪录的模式,通常会产生大量的日志记录。

(3)日志的严重等级

本质上,日志是由程序员记录的,程序员在写代码时,会根据事件的严重性在日志中记录日志的严重等级。在标准上,Syslog中也有PRI字段描述日志的严重等级。

(4)日志的种类(类型)

设备发生异常时,很可能是设备的硬件或者软件进入了一个不该进入的故障状态,此时就有可能会记录一种新类型的日志,即记录了一种新事件。

(5)日志的模式

这里的模式是指不同事件的关联关系。如,在网络设备上运行着某个网络协议,假设此网络协议的状态机在各个状态都会记录一条日志,分别为A、B、C三种类型的日志,假设监控设备正常状态时日志的模式是A→B→C,如果监控发现日志的模式变成B→A→C,那么设备可能出现了异常(这里→表示了A、B、C三种类型事件在时间上的承接性)。

(6)关键日志

为设备日志定义一些所谓的“黑名单”,当这些关键日志出现时设备一定出现了异常。

(7)日志的相似性

通过监控前后两段日志的相似性,可以发现设备的异常。如前所述,在正常情况下设备也可能记录日志,并且是稳定记录一些特定的日志的。如果按适当的时间窗划分并分析这些时间窗内的日志,此时各个时间窗内的日志是有一定的相似性的。而设备异常情况下,由于前述一些日志特征的变化,异常时间窗内的日志与正常时间窗内的日志相似性会出现很大的差异。

2.2.2KPI异常诊断

通常,关键性能指标数据的特性矩阵由不同设备或端口的同一类型指标的时间序列组成。通过将多个时间序列组成特性矩阵的方式,我们利用多变量分析方法来对KPI的异常时间点和端口进行检测。KPI特性矩阵的每一列由某一设备上的某一KPI的时间序列组成,也可能是某一设备或端口与其他各设备或端口关于某个KPI的频率、密度或其他统计特性。一般来说,由于设备、端口数量巨大,因此面对的特性矩阵是一种高维矩阵,难以直接对矩阵进行直接的分析,因此,利用子空间的方法来解决这一问题。

以X来表示维度为t×r的特性矩阵,其中t为第t个时间点的KPI指标值,r为设备或端口的数量。对于矩阵的每一个元素xij表示了第j个设备/端口在第i个时间点的值,矩阵的每一列则是第j个设备/端口的KPI指标时间序列,而整个矩阵则可以认为是一个多变量时间序列。子空间方法的核心是将多变量时间序列分割成正常模态空间和异常模态空间,这种分割通过主成分分析(Primary Component Analysis,PCA)[7]来完成。

PCA方法目标是寻找一个单位投影矩阵U,并以使X中的数据在投影子空间中具有最大方差为优化目标。基于这个优化目标,可以将问题描述为

maxCyst.UUT=I。

(1)

式中:

2.2.3配置异常检测

配置异常是引起网络异常的主要原因之一,为检测配置异常,我们通过将配置文件中的所有命令组提取,根据命令关键字进行分类统计,然后将出现频率最高的命令组设定为配置模板,可以用来与新的配置命令组进行比较来判断异常。但是很多时候,命令组具有不同的命令行而实现的配置目的是类似的,这样容易生成额外的模板,降低统计的准确率并造成多余的计算。

针对这一问题,我们首先定义了n维的关键词空间,在将命令组经过参数过滤、非关键词过滤之后,通过tf-idf方法将命令组映射成n维关键词空间的数值坐标表示。关键词w的tf-idf值定义为

W=tftd·lgm/dft+tftd·aft/m。

(2)

式中:ftd为关键词w在所有配置文件中出现的频率,m为文件总数,dft为包含了关键词n的文件数量,aft为包含了关键词w的配置命令组出现次数。在完成空间坐标转换之后,利用PCA方法对坐标集进行降维处理,然后利用AP算法[9]进行聚类,最后得到的聚类中心则设定为参考配置模板。得到模板之后,将新的配置命令组经过空间坐标转换之后与每个模板进行相似度计算,如果相似度低于阈值则判断该配置为异常配置。

确定疑似故障后,可以利用故障树、决策树、贝叶斯网络等方法的故障专家知识确定故障根因。故障专家知识是专业人员总结出来的故障与根因之间关系的经验,以各种事件以及逻辑门的形式表述。通过在规则引擎上运行故障专家知识,可以主动查询网元的配置、状态、性能等数据,进而对异常事件进行确认并定位故障根因。规则引擎模块用于事件的判断,以及事件之间的逻辑推理。

2.3 数据应用层

在这一层中,我们提供了基于网页的接口来使用户方便地管理NIMS系统。在应用层中提供了包括故障数据可视化、不同的故障诊断和系统管理等应用。通过友好的用户接口,用户可以很方便地对各种功能进行配置,定义其需要呈现的网络信息。同时,针对不同的诊断目的,用户可以选择并配置采用相应的诊断算法及参数,并构建端到端的诊断流程,实现监控→诊断→恢复的自动化网络保障流程。

3 系统评估

本文设计的故障诊断系统提供了端到端的网络故障诊断和恢复方案。它首先通过分析原始数据来定位网络层的故障;然后利用设备层的故障检测算法来定位网元故障的时间和类型,并进行根因分析;最后,NIMS通过故障树(专家经验)来提供故障恢复方案。

本文采用了实际网络中采集的数据来对NIMS的故障诊断能力进行了评估。在评估中,从不同运营商采集了多种不同类型的数据。为了评估数据处理的能力,构建了一个具有32台服务器的集群,并输入了总计1.4亿条log数据。NIMS处理这些数据仅花费了40 min,平均处理一台设备的数据仅花费2 min,而且,随着集群规模的扩大,数据处理能力会更加强大。在故障诊断能力方面,构建了一个模拟网络环境,并进行故障注入,注入故障包括协议异常、KPI异常以及端口配置异常。测试结果如图4所示。

(a)日志密度

(b)异常时间检测图4 日志异常检测Fig.4 Anomaly detection for system log

从基于密度的日志异常检测结果可以看出,单一维度的异常检测在故障时间点的异常度变化不明显(图4(a),不容易检测到,而基于多维度的检测方法在故障时间点的异常度明显大于其他设备(图4(b)),从而可以有效定位异常设备。对于KPI检测,我们注入了芯片丢包故障,基于26个丢包事件的丢包数量时间序列数据,KPI异常检测能够准确定位到异常时间和异常的丢包ID,如图5所示。

(a)ID8

(b)ID10

(c)ID11

(d)ID12图5 异常ID统计量Fig.5 Statistics of abnormal IDs

总体来看,系统的检测结果检测准确率超过了90%,相比于其他商业软件的通用性检测,NIMS针对性设计的算法其准确率更加具备优势。

4 结束语

NIMS是一个新颖的大数据分析网络故障诊断系统,并且显示出了一定的优势。NIMS可以采集不同类型的监测数据并利用不同的诊断算法来检测故障并分析根因。但是,随着网络结构的变化发展,还有更多不同类型的异常和故障问题出现,而且对于大规模网络的故障诊断和智能化诊断技术也在不断发展。甚至,在网络异常和故障以及确定的情况下,查找故障之间的关联和根因也依然是一个困难的问题。在后续的研究中,故障恢复技术和更强大的故障诊断技术也依然是研究的重点。随着网络技术的不断发展和更新,网络会不断进化并且进一步复杂化,因此先进的网络故障诊断技术对于网络服务的保障是非常有价值的。

猜你喜欢
日志故障诊断故障
一名老党员的工作日志
扶贫日志
故障一点通
游学日志
奔驰R320车ABS、ESP故障灯异常点亮
因果图定性分析法及其在故障诊断中的应用
故障一点通
江淮车故障3例
基于LCD和排列熵的滚动轴承故障诊断
基于WPD-HHT的滚动轴承故障诊断