基于自主计算的代理缓存集群异常检测系统的制作方法

文档序号:7771594阅读:298来源:国知局
基于自主计算的代理缓存集群异常检测系统的制作方法
【专利摘要】基于自主计算的代理缓存集群异常检测系统,属于光学领域,本发明为解决现有代理集群系统规模庞大责,产生异常时不能及时检测导致严重后果的问题。本发明包括:状态检测模块,用于对分布式代理集群进行状态监测,获取分布式代理集群运行时的详细数据;状态自感知模块,用于接收状态检测模块提供的状态数据,对状态数据进行分析,识别当前分布式代理集群的运行状态;状态自恢复模块,用于根据状态自感知模块获得的运行状态结果判断需要调整的参数以及调整的程度,并向算法执行模块发送参数调整命令;算法执行模块,用于执行自恢复模块发送的调整参数命令,动态改变运行参数。本发明用于代理集群系统中。
【专利说明】基于自主计算的代理缓存集群异常检测系统
【技术领域】
[0001]本发明涉及代理缓存集群异常检测系统。
【背景技术】
[0002]自主计算的核心是自我管理,正如人体的整个神经系统一样,感知自身内部和外界环境某些因素的变化情况,从而自主的来调节和改变状态以便适应新的变化。不同于以往的其他管理模式,自主计算的整个感知和修复的过程均不需要人的干预。目前对于自主计算相关的研究主要集中在IBM,它们分析了在设计自主计算系统和理解自主计算系统行为时所要面对的各种问题。Jann等人研究了自主计算的动态配置方法。Arizona大学的Hariri研制了一个自主计算环境AUT0N0MIA。在国内,中科院计算所研究了面向服务的主体自主协商和服务匹配。
[0003]为了满足用户的大量访问需求,代理集群系统规模一般较为庞大,内部的管理也变得越来越复杂,一旦不能及时检测出内部的异常并加以修复,后果将会很严重。传统的异常检测机制主要有:(1)基于统计的异常检测机制,但是该机制的缺点是未考虑时间的发生顺序,因此对利用事件顺序关系的攻击难以检测;当攻击者意识到被监控后,可能会利用统计轮廓的动态自适应性,通过缓慢改变其行为,来训练正常特征轮廓,最终使检测系统将其异常活动判为正常;难以确定评判正常和异常的阈值,阈值太低或太高易出现虚警或漏警;(2)预测模式的异常检测机制,但是该机制的确定是规则产生不充分,容易导致高的虚警率;计算量比较大;(3)基于系统调用的异常检测技术,但是该机制的缺点是不能检测出合作攻击者与盗用者的。

【发明内容】

[0004]本发明为了解决现有代理集群系统规模庞大责,产生异常时不能及时检测导致严重后果的问题,从而提供一种基于自主计算的代理缓存集群异常检测系统。
[0005]基于自主计算的代理缓存集群异常检测系统,它包括:
[0006]状态检测模块,用于对分布式代理集群进行状态监测,获取分布式代理集群运行时的详细数据;
[0007]状态自感知模块,用于接收状态检测模块提供的状态数据,对状态数据进行分析,识别当前分布式代理集群的运行状态;
[0008]状态自恢复模块,用于根据状态自感知模块获得的运行状态结果判断需要调整的参数以及调整的程度,并向算法执行模块发送参数调整命令;
[0009]算法执行模块,用于执行自恢复模块发送的调整参数命令,动态改变运行参数。
[0010]本发明实现了基于自主计算的代理缓存集群异常的检测,解决了现有代理集群系统规模庞大责,产生异常时不能及时检测导致严重后果的问题。
【专利附图】

【附图说明】[0011]图1为本发明基于自主计算的代理缓存集群异常检测系统的结构示意图;
[0012]图2为【具体实施方式】六没有使用1-Ketama算法的方案I实验结果示意图;
[0013]图3为【具体实施方式】六使用1-Ketama算法的方案I实验结果示意图;
[0014]图4为【具体实施方式】六没有使用1-Ketama算法的方案2实验结果示意图;
[0015]图5为【具体实施方式】六使用1-Ketama算法的方案2实验结果示意图;
[0016]图6为【具体实施方式】七的定时请求模块具体的请求数据包格式示意图;
[0017]图7为【具体实施方式】七的定时请求模块的响应数据包格式示意图
[0018]图8为【具体实施方式】七的收集检测项数据模块的位于后端缓存节点上的监测项米集流程不意图;
[0019]图9为【具体实施方式】七的感知监测项的处理模块的工作流程。
【具体实施方式】
[0020]【具体实施方式】一、结合图1说明本【具体实施方式】。基于自主计算的代理缓存集群异常检测系统,它包括:
[0021]状态检测模块,用于对分布式代理集群进行状态监测,获取分布式代理集群运行时的详细数据;
[0022]状态自感知模块,用于接收状态检测模块提供的状态数据,对状态数据进行分析,识别当前分布式代理集群的运行状态;
[0023]状态自恢复模块,用于根据状态自感知模块获得的运行状态结果判断需要调整的参数以及调整的程度,并向算法执行模块发送参数调整命令;
[0024]算法执行模块,用于执行自恢复模块发送的调整参数命令,动态改变运行参数。
[0025]状态监测模块:该模块通过设置在分布式代理集群上的状态监测程序,获取分布式代理集群运行时各方面的详细数据。这些数据包括了系统资源使用情况、日志信息等运行状态数据。状态监测模块并不是简单的把获取的所有原始数据发送给状态自感知模块,而是首先对这些原始数据进行归一化处理之后向状态自感知模块提供。
[0026]状态自感知模块:该模块接收状态监测模块提供的状态数据,对这些数据加以分析,从而识别出当前分布式代理集群的运行状态,以便于判断系统是否处于异常状态,决定是否对系统进行调整。一旦需要调整的时候,该模块将向自恢复模块发送当前的系统状态
S。状态自感知模块关键是要能准确的根据状态数据,判断当前系统是否处于异常状态。
[0027]状态自恢复模块:该模块核心是针对缓存服务器动态负载均衡的算法。该算法可以动态接收和调整执行参数,一遍试试解决代理系统的异常情况。当自恢复模块接收到系统的异常状态S时,根据异常状态S决定需要调整的参数用以及调整的程度,接下来将会向算法执行模块发送参数调整的命令,实现恢复系统异常状态的目的。
[0028]算法执行模块:该模块执行自恢复模块发送的调整参数的命令,接收到命令之后,被选定的算法将会动态改变运行的参数。此时系统在算法的作用下,将会逐步从异常状态中恢复过来。若是此次调整力度不够,系统将会继续检测状态数据,直到将系统恢复至正常的状态为止。
[0029]【具体实施方式】二、本【具体实施方式】与【具体实施方式】一不同的是所述状态检测模块的监测项为硬件资源监测项、网络资源监测项和服务资源监测项;[0030]硬件资源监测项,用于监测CPU使用率C、内存使用率M和磁盘I/O使用率D ;
[0031]网络资源监测项,用于监测连接数使用率P和网络带宽使用率B ;
[0032]服务资源监测项,用于监测缓存URL请求频率F。
[0033]状态监测模块是整个自决策框架的基础,它定时的收集HTTP缓存服务器的系统信息,获取监测数据值,并进行归一化处理。综合考虑,根据分布式代理缓存系统中HTTP缓存服务器使用的资源属性,将监测项划分为硬件资源、网络资源和服务资源三个部分。
[0034]理论上,全部监测这些信息可以较为准确的反应当前个缓存服务器的状态,但是如此多的监测数据有很多对于HTTP缓存服务器的状态影响不大。如果全部监测表中所列的所有数据项,不仅实现起来耗费很大的带宽和资源,而且数据处理起来很会耗费不少时间。这些因素都会导致监测模块的“过监测”,所以在本发明中,将选取几种对于系统状态变化影响最为重大的数据项加以监测。他们分别是=CPU使用率、内存使用率、连接数使用率、网络带宽使用率、磁盘I/O使用率以及缓存URL请求频率。
[0035]【具体实施方式】三、本【具体实施方式】与【具体实施方式】二不同的是所述硬件资源监测项用于监测CPU使用率C、内存使用率M和磁盘I/O使用率D的方法为:
[0036]1、CPU使用率C的计算方法为:
[0037]监测模块采集两次CPU使用情况的总和时间Ttrt和CPU空闲时间Tidle,两次采集数据的间隔t为5s,通过分别做差并除以间隔时间获得CPU使用率C:
[0038]C=1-(Tidle (ti+1) -Tidle (t,)) / ((Ttot (ti+1) -Ttot (t,)) *t)
[0039]t1表示上次采集信息的时刻;
[0040]在监测CPU利用率信息时,查看/proc/stat文件。HTTP缓存服务器的多个CPU使用信息都存储在这个文件中,而CPU运行情况的汇总信息位于CPU字段一行。该行记录了从开机到现在CPU在不同状态的时间使用情况。状态监测模块需要采集所有CPU使用情况的总和时间(total time) Ttot,以及CPU空闲时间(idle time) Tidle0采集两次Tttrt和Tidle之后,通过分别做差并除以间隔时间就可以得到这段时间内CPU空闲率(间隔时间即为两次采集数据的间隔时间5秒钟)。从而CPU的使用率可以得到
[0041]I1、内存使用率M的计算方法为:
[0042]获取/proc/meminfo文件中物理内存Mttrt和可用的物理内存Mfree信息,计算内存使用率M:
[0043]M= (Mtot-Mfree)/Mtot
[0044]在监测内存使用率信息时,查看/proc/meminfo文件。该文件中有MemTotal和MemFree字段,分别表示总的物理内存大小以及可用的物理内存大小。
[0045]II1、磁盘1/0使用率D的计算方法为:
[0046]监测模块根据各磁盘的最大读写1/0次数Dmax和每一次采集时刻主机的磁盘读写1/0次数D?,采集两次后计算得到这段时间内的磁盘1/0使用率D:
[0047]D= (Drw (ti+1) -Drw (t)) / (DniaJt)
[0048]在采集磁盘1/0使用率时,需要查看/proc/diskstats文件。此文件中统计了各磁盘的读写次数等信息。本文需要其中的读次数和写次数的总和。对于磁盘支持的最大读写1/0次数使用dd命令创建一个大的文件测试1/0次数来取得。本文测得的开发主机磁盘每秒最大1/0次数为330。同样此文件的统计信息也是从开机时开始累计的,所以采集两次后可以得到这段时间内的磁盘I/o次数利用率。
[0049]所述服务资源监测项用于监测连接数使用率P和网络带宽使用率B的方法为:
[0050]IV、连接数使用率P的计算方法为:
[0051 ] 监测模块获取当前系统中的连接总数Pnw和系统支持的最大连接数Pmax,这两个数据的比值为连接使用率P;
[0052]P=Pnow/Pmax
[0053]在监测网络连接数时候,查看/proc/sys/net/netfilter/nf_conntrack_count文件。该文件中只有一个数据,该数值就是当前系统中连接总数。系统支持的最大连接数在文件/proc/net/netfiter/nf_conntrack_max中,这两个数据的比值就是连接使用率。
[0054]V、网络带宽使用率B的计算方法为:
[0055]监测模块采集用户发送给客户输的发送字节数Bsmd和数据发送最大带宽Bmax,采集两次后计算这段时间带宽使用率B:
[0056]B= (Bsend (ti+1) -Bsend (ti)) / (Bmax*t)[0057]在采集网络带宽使用率时,需要查看/proc/net/dev文件。该文件中统计了主机各个网卡从启动到现在的所有收发包数目、收发字节数的信息。本文需要采集用户发送给客户数据的那块网卡的发送字节数信息。最大带宽以网卡接入时显示的带宽为准。同样需要采集两次才能得出这段时间带宽使用率。
[0058]所述网络资源监测项用于监测缓存URL请求频率F的方法为:
[0059]V1、缓存URL请求频率F的计算方法为:
[0060]监测模块采集URL被代理服务器请求的次数Fiefs,采集两次服务请求的次数,计算缓存URL请求频率F:
[0061]F=Frefs (ti+1) -Frefs (ti)
[0062]ti+1表示本次采集信息的时刻。
[0063]在缓存主机上,使用squidclient:mgr:object命令获得当前上所有URL在时刻的引用次数,对于每一条URL,均记录了上一时刻的引用次数。
[0064]【具体实施方式】四、本【具体实施方式】与【具体实施方式】三不同的是所述状态自感知模块用于接收状态检测模块提供的状态数据,对状态数据进行分析,识别当前分布式代理集群的运行状态的过程为:
[0065]状态自感知模块通过CPU使用率C、内存使用率M、磁盘I/O使用率D、连接数使用率P和网络带宽使用率B进行加权求累加和:
[0066]
【权利要求】
1.基于自主计算的代理缓存集群异常检测系统,其特征在于它包括: 状态检测模块,用于对分布式代理集群进行状态监测,获取分布式代理集群运行时的详细数据; 状态自感知模块,用于接收状态检测模块提供的状态数据,对状态数据进行分析,识别当前分布式代理集群的运行状态; 状态自恢复模块,用于根据状态自感知模块获得的运行状态结果判断需要调整的参数以及调整的程度,并向算法执行模块发送参数调整命令; 算法执行模块,用于执行自恢复模块发送的调整参数命令,动态改变运行参数。
2.根据权利要求1所述的基于自主计算的代理缓存集群异常检测系统,其特征在于所述状态检测模块的监测项为硬件资源监测项、网络资源监测项和服务资源监测项; 硬件资源监测项,用于监测CPU使用率C、内存使用率M和磁盘I/O使用率D ; 网络资源监测项,用于监测连接数使用率P和网络带宽使用率B ; 服务资源监测项,用于监测缓存URL请求频率F。
3.根据权利要求2所述的基于自主计算的代理缓存集群异常检测系统,其特征在于所述硬件资源监测项用于监测CPU使用率C、内存使用率M和磁盘I/O使用率D的方法为: ` 1、CPU使用率C的监测方法为: 监测模块采集两次CPU使用情况的总和时间Ttrt和CPU空闲时间Tidle,两次采集数据的间隔t为5s,通过分别做差并除以间隔时间获得CPU使用率C:
C=1- (Tidle (ti+1) -Tidle (ti)) / ((Ttot (ti+1) -Ttot (ti)) *t)
ti表示上次采集信息的时刻; ` I1、内存使用率M的监测方法为: 获取/proc/meminfo文件中物理内存Mttrt和可用的物理内存Mftee信息,计算内存使用率M:
M= (Mtot-Mfree) /Mtot II1、磁盘I/O使用率D的监测方法为: 监测模块根据各磁盘的最大读写I/O次数Dmax和每一次采集时刻主机的磁盘读写I/O次数D?,采集两次后计算得到这段时间内的磁盘I/O使用率D:
D= (Drw (ti+1) -Drw (tj)) / (Dmax*t); 所述服务资源监测项用于监测连接数使用率P和网络带宽使用率B的方法为: IV、连接数使用率P的计算方法为: 监测模块获取当前系统中的连接总数P_和系统支持的最大连接数Pmax,这两个数据的比值为连接使用率P ; V、网络带宽使用率B的计算方法为: 监测模块采集用户发送给客户输的发送字节数Bsmd和数据发送最大带宽Bmax,采集两次后计算这段时间带宽使用率B:
B= (Bsend (ti+1) -Bsend (tj)) / (B *t); 所述网络资源监测项用于监测缓存URL请求频率F的方法为: V1、缓存URL请求频率F的计算方法为:监测模块采集URL被代理服务器请求的次数Frefs,采集两次服务请求的次数,计算缓存URL请求频率F:
F=Frefs (ti+l) -Frefs (ti) ti+1表示本次采集信息的时刻。
4.根据权利要求3所述的基于自主计算的代理缓存集群异常检测系统,其特征在于所述状态自感知模块用于接收状态检测模块提供的状态数据,对状态数据进行分析,识别当前分布式代理集群的运行状态的过程为: 状态自感知模块通过CPU使用率C、内存使用率M、磁盘I/O使用率D、连接数使用率P和网络带宽使用率B进行加权求累加和:

5.根据权利要求1或4所述的基于自主计算的代理缓存集群异常检测系统,其特征在于所述状态自恢复模块用于根据状态自感知模块获得的运行状态结果判断需要调整的参数以及调整的程度,并向算法执行模块发送参数调整命令的过程为: 步骤一:根据状态自感知模块识别得到的当前分布式代理集群的运行状态中的异常状态,确定需要自恢复的缓存集合; 步骤二:计算处于异常状态缓存的每一条URL的周期引用次数,提取引用次数最多的100 条 URL ; 步骤三:状态自恢复模块将所述100条URL进行MD5哈希运算,得到100个哈希值;步骤四:利用Ketama算法将所述100个哈希值在哈希环IK对应的缓存服务器变更为互助缓存主机。
【文档编号】H04L29/08GK103441906SQ201310441398
【公开日】2013年12月11日 申请日期:2013年9月25日 优先权日:2013年9月25日
【发明者】何慧, 张伟哲, 李乔, 王冬, 王健, 范国涛, 秦泓洋 申请人:哈尔滨工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1