首页 > 范文大全 > 正文

浅析应用服务器异常节点检测问题

开篇:润墨网以专业的文秘视角,为您筛选了一篇浅析应用服务器异常节点检测问题范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:网络异常检测是发现网络故障和安全问题,及时诊断排除网络运行中产生的故障,准确预测可能发生潜在问题的有效手段,如何快速有效地检测网络异常并提高检测可靠性已成为一大研究热点。本文利用特征空间方法分析的思路,研究了应用服务器异常节点检测问题

关键词:网络管理;特征空间方法;异常节点计算;节点检测

中图分类号:TP368.5文献标识码:A文章编号:1007-9599 (2010) 06-0000-02

Research on Anomaly Detection Application Server Node

Cui Chao

(Hebei Branch Information Department of China Unicom,Shijiazhuang050011,China)

Abstract:Network anomaly detection is discover network failure and security issues and timely diagnosis of exclusion of the network anomaly.How to detect network anomaly and locate anomaly quickly and efficiently has become a major research focus.In this paper,we can find network anomaly quickly and efficiently for application server nodes,which are the main types of nodes in the large-scale network.

Keywords:Network management;Eigen space method;Network anomaly computation;Network anomaly detection

一、引言

在当今越来越复杂的网络环境中,经常存在成百或上千个网络节点。应用服务器是大规模网络中的另一类主要节点。为保证大规模系统的健壮性也带来了新的挑战。例如,当一个异常发生在集群拓扑网络的一立的应用服务器上时,将会导致这台应用服务器的服务功能丧失。这台服务器的负荷将会通过路由器转移到集群中的其他应用服务器上。传统的应用服务器异常检测系统通常会将那些原本健康的服务器及发生异常的应用服务器同时报告为异常节点,系统管理员因此不得不重新检查所有相关的应用服务器来判断真正的异常节点。这给异常定位及差错排查造成了很大的阻碍,无法尽快使系统恢复正常,给整个网络系统带来更大的损失[1,2]。本文主要就应用服务器异常节点检测问题展开探讨。

二、特征空间方法分析

在大规模网络系统中,见图1,一台应用服务器的异常将会影响到集群中其他健康的节点。而在这种复杂的环境中,服务负载也不是平均分布在各个节点上的,所以当一台应用服务器出现异常时,负载在其他节点中的转移也是不同的。因此如果采用普通的集群算法对节点的不同指标进行检测,那么很难将异常节点与健康节点区分开来,这里提出了一种基于特征空间的方法来检测及定位异常节点。

图1.大规模企业网络系统组织结构

(一)数据指标集选取及分析

由于本方法是在假设性能指标满足线性相关性的条件下才成立,因此我们需要选取合适的应用服务器指标,使其满足线性相关性条件。我们通过压力测试程序不断增加服务请求数量,并用服务请求到达速率来表示网络的负载情况,实时地从MIB中采集应用服务器网络接口的入向总流量、CPU利用率及内存利用率。这些应用服务器的性能指标随着服务请求数量增多的变化情况可以看出,见图2,在网络负载变化范围较小的区域内,从MIB中采集到的性能指标都是线性相关的,即在整个网络变化范围内,性能指标分段线性相关。因此,即使一台应用服务器的负载很大,但只要负载波动较小时,它的性能指标仍然保持线性相关性,只是线性相关系数有所不同。如果应用服务器在短时间内负载波动剧烈而导致检测指标无法满足分段线性相关,本文提出的检测方法将会发出警报,认为这台应用服务器有异常发生。虽然此时并不满足本文提出的检测方法的前提条件,但是这个告警并不能认为是误警,因为此现象确实值得引起系统管理员的注意,来确认发生如此剧烈波动的原因,及早地排除异常。

图2.性能指标与网络负载的相关变化图

(二)协方差矩阵

假设一台应用服务器中存在一条服务队列,在这里服务请求将会来被处理。服务器接口流量、服务器CPU利用率、内存利用率等等都是互相相关的而且取决于这个队列的服务请求到达速率。在下面的方法中我们利用这些性能指标来决定一个大规模网络集群环境中一台应用服务器的健康状况。首先我们计算这些指标的一个协方差矩阵。

假如我们通过系统中的N个性能指标来监控一台应用服务器的健康状况,那么就会产生 个协方差值。

在一个没有异常发生的稳定运行的大规模网络系统中,各项性能指标的波动也会比较稳定,度量值在最近的n个采样平均值附近波动较小,得到的协方差值也较小。如果系统中有异常发生,至少有一个指标的会较大地偏离最近采样的平均值,相反,如果系统中没有异常发生,任何一个描述网络系统健康状况的指标值都不会有重大的改变。假设一个或多个指标大范围地偏离了平均值,则这些指标与其它指标的协方差值将会发生突变,此时我们认为这台应用服务器有异常产生。

(三)异常节点计算方法

一个简单的方法去理解系统的动态性就是理解特征值的行为和一个被监控节点的协方差矩阵的特征向量。

在本文提出的方法中,只考虑主特征向量,即最大的特征值所对应的特征向量,因为变化最大的数据主要沿着主特征向量的方向分布,并将其标准化。当网络系统处于正常状态时,数据按照矩阵中不同指标的相互关系而分布。当系统出现异常状况时,这些不同指标之间的相互关系就会发生相应改变,且某些指标会出现剧烈的波动。在这样的情况下,数据的传播将会偏离正常的状态,主特征向量的方向即坐标值也会改变。假如观察标准化主特征向量的坐标,那么最高的坐标值与变化率最大的指标相对应。本文通过应用服务器的这些特征向量来识别异常节点。

三、应用服务器异常节点检测方法

(一)异常检测触发方法

当系统中的几台应用服务器发生异常状况时,检测的指标值会偏离了他们正常的状态。当异常发生时,不同指标变量之间的协方差值会突增。因此协方差矩阵A特征值也会相应增加。当发现集群中某一台应用服务器的主特征值在某时刻发生突变,便查看其它所有节点的情况。当系统中发生一个异常,主特征值会产生一个突变,远远偏离了正常情况下的均值。因此一旦上述的触发事件发生,我们就开始分析集群中每个节点的特征向量。

(二)异常节点差错定位

如果两台应用服务器因为同样的异常而被影响,发生突变的指标应该相同,而指标变化量的不同很可能是因为这两个节点本身的工作负荷量或服务类型不同而产生。本文按照下述方法将不同的应用服务器节点进行分组。我们从每个应用服务器节点上选其主特征向量。假设检测指标的数量是N,则每个主特征向量都有N个元素。将每个节点的主特征向量映射到一个N维的空间,假如某些节点因为同样的错误而受到影响,那么它们在这个空间中将会很接近,以此将所有的应用服务器节点进行分组。

假设系统中发生一个异常,那么所有的应用服务器节点将会被分成两组,那些具有最高的特征向量偏差的节点称为异常节点。我们需要某种聚类方法来实现节点的分组。在本文的实现中,采用了k-means聚类算法。

(三)异常节点多重差错定位

本文提出的方法也能够检测出大规模网络系统中同时发生的多重异常。假如系统中存在多重差错,应用服务器节点上的指标对于每个异常都会受到不同的影响,因此可以通过他们的特征向量来将它们归入不同的组别。

当系统中出现多重异常时,为了区分指标变化方式相同的节点集(虽然指标的变化量可能有所不同),我们将每个应用服务器节点的主特征向量映射入N维的空间,与单个异常定位方式类似。当有k个异常发生,我们通过聚类算法将所有的应用服务器节点分组,则整个N维空间将被分成k组,受相同异常影响的节点将被定位到相同的组别中。每个组的节点将会对应着属于这个组的异常。

本文使用k-means聚类算法来分组系统中所有的应用服务器节点,这个方法需要输入k的值,即系统中节点分组的个数。因此它存在着一个缺点,如果在系统中有多重异常发生,而我们却无法预先得知具体存在多少个异常,然而可以通过一种技术能够根据一些已知的数据集合来自动测定分组的数量。

四、结果分析与讨论

(一)实验环境

本文的测试平台由11台应用服务器和1台路由器组成。应用服务器分别为:一台负荷发生器、九台后端应用服务器和一台数据库服务器。这些后端服务器形成了一个大规模网络集群,到达路由器的负载分布于这些服务器上,而负载量的分布取决于每台服务器的权重。在本文的实验中,每一个后端节点运行一个基于WEB的应用服务。它提供了servlets、JavaServer、企业Beans、信息驱动Beans、JDBC和JMS数据接入等多种应用。它主要实现了一个典型的销售流程的管理系统,包括账目生成,浏览库存订单和购买及销售库存等功能。模拟器把所有的请求都发送给路由器,路由器根据集群中应用服务器的不同权重来给分配服务请求。

(二)试验运行结果

为了进一步分析上文提出的方法,我们通过一些参数来进行性能评估。共进行了40次实验,每次持续30分钟,每个实验的前20分钟包含了一些系统正常的操作,之后人为地分别插入了以下四种异常情况进行实验,每种类型的实验各进行10次。这四种异常情况分别指:1.一台应用服务器的CPU完全被占用;2.数据库性能问题(数据库服务器CPU占用率达100%);3.一台应用服务器中断服务;4.数据库关闭。这四个网络系统中的异常主要分为两类:两个中间层的错误和两个后台数据库错误。

本实验始终维持负载在25至300个客户端之间,采样窗口大小为20,在每个应用服务器节点的检测指标为:接口总流量、CPU利用率和内存利用率。这些指标能够很好的反映这些应用服务器节点的健康程度。这些被监控的指标并不是固定不变的,在不同的应用环境中可以替换成其他的指标,只要满足前提条件。本文主要通过以下两个参数来评估该方法的性能表现,即检测的准确率及精确率。准确率是指将正确检测为异常的节点数除以总的异常节点数的比率,即如果所有异常的节点都被检测出来,那么准确率就为100%;精确率是用来衡量被误检为异常节点的概率,也就是说,如果一个异常的节点被认为是正常节点,或某个正常的节点被检测为异常,则精确率就会降低。因此精确率的计算公式为:

其中x是被误检为异常节点的数目,N是在集群中的节点总数。

本文对引入4种不同的异常实验进行准确率和精确率的统计分析,表1给出了统计结果。表1的第一列描述了异常实验的类型,第二列表示某种类型异常实验中的异常节点个数,第三列表示正常节点个数,第四列为多次实验的准确率均值,第五列为精确率均值。从表1中可以发现,该检测方法的准确率及精确率都是相当高的,实验结果令人满意。

五、结语

通过采集MIB中与应用服务器相关的性能指标,提出了基于特征空间方法的应用服务器异常节点检测方法。对各个指标之间的协方差进行深入研究,构建协方差矩阵,通过检测该矩阵主特征值及主特征向量的突变情况进行判断异常情况的发生。经过实验检测,该方法可以以极高的准确率及精确率对单个和多个异常节点的情况进行检测,并且经过算法复杂度分析,该方法只需要很少量的历史数据信息,实时检测系统不会给系统自身造成很大的负担。

参考文献:

[1]王骐,王殊,孟中楼.无线传感器网络中一种基于接收功率异常的入侵检测算法[J].计算机科学,2009,36:3

[2]曹晓梅,韩志杰,陈贵海.基于流量预测的传感器网络拒绝服务攻击检测方案[J].计算机学报,2007,30:10