APP下载

SNMP数据异常检测系统设计与开发

2015-04-16王超

计算机与网络 2015年18期
关键词:库中中心点平均值

SNMP数据异常检测系统设计与开发

SNMP工作在TCP/IP的无连接的数据报上,由SMI(Structure of Management Information,管理信息结构)、MIB(Management Information Base,管理信息库)和协议组成。MIB是一个树形结构的数据库,数据库中的每一个被管理的项目都有相应的对象所对应,这些对象结构化集合起来就是MIB。管理站通过读取信息库里的数据来获得数据,从而起到监视作用,同时管理站还能够修改信息库里的数据来时实现对资源的控制。

基于SNMP数据异常检测系统分为数据获取模块、数据处理模块和数据分析模块。其检测流程是从MIB库中获取信息,再将信息存入到数据库中。由数据处理模块对数据进行处理,最后由数据分析模块,运用K-means算法,对数据进行分析,最后将分析结果存入到数据库中,并能够在界面显示。

模块设计

1 信息获取模块

信息获取处理模块是SNMP数据异常检测系统开发设计的基础。信息获取模块实现的是获取整个系统所需的数据,数据获取模块采集本地pc机的数据,还能够获取路由中的相关数据。数据获取模块,负责采集数据,即从MIB库中获取数值信息,将其存入到数据库中,供分析使用。本文所要获取的数据,在MIB库中都是直接存在的,因此只需要根据其OID进行获取即可。其获取过程包括以下几个步骤。

由Get-Request读对象值,管理站未获得网络设备的才输或设备在网络中的运行数据,向Agent发起的读操作。

Get-Next-Request读取当前对象的下一个可读取对象的值。

Set-Request:NMS更新Agent中的对象值。

Get-Response:Agent对Get-Request、Get-Next-Request和Set-Request三种操作的应答。

Trap:Agent向NMS发送对象值。

2 数据处理模块

采集的数据是一个时间段的数据。对此本文要对获取的初始数据进行初步的统计分析。统计分析过后的数据,对分析网络状态更具有参考性。本文用来表示单位时间内的差值,T来表示周期。

处理模块实现的过程:从数据库中取出所需要的数据,取出相应的数据后,将队形行的上下两条数据做差,从而算出变量,并将其复制给新的变量,以便于后期进行进一步的计算。做差后按照公式进行计算,最后将计算出来的数值存入数据库供分析使用。获取的数据经过数据的预处理存入MySql数据库中。由于MIB库中的信息过于繁琐,本文只选取其中一部分信息进行获取,数据库主要表结构包括所属的IP的CPU利用率、发出的字节总数,包括组帧字符、收到的字节总数,包括组帧字符、收到的被丢弃的分组数等。

当本文获取到初始数据后,要将其进行处理,处理后的数据本文成为预处理数据,本文将其存到SNMP_final表中,如下所示:

3 数据分析模块

分析模块是整个系统的核心。作用是分析数据库中获取的数据,同时,对于数据分析采用聚类数据挖掘算法。数据挖掘是通过算法对大量数据进行知识再发现的过程。常见的是聚类算法和分类算法。由于互联网数据中的很大一部分是超文本数据,这些数据可以看成是半文本数据。也就是说,在互联网的数据挖掘中本文所要做的是在传统的数据挖掘下增加对半结构数据的挖掘。聚类算法具有处理不同字段类型、可伸缩性、处理高位数据、发现任意簇的形状的聚类、处理异常数据、对数据顺序的不敏感性等特点。

系统的数据分析模块采用的K-means算法。该算法是质心聚类算法,其算法特点是收敛速度较快、复杂度不高、数据处理效率高,广泛应用于多个领域。核心思想是:先把对象样本分成k个类,然后随机的从样本中选出k个点作为假设中心点。将这些数据向离其最近的中心点归类,直至每组内的相似度最高而组与组之间的相似度最低。本文通常采用欧几里得距离来衡量其相似性,评级划分质量的目标函数J。

J就是各簇内点到该簇中心的距离和。因此,当J的值越小,聚类越密集,效果就越好。本文就是通过K-means算法进行不断地优化,使J的值变得越来越小,当达到最小值时就是本文要的结果。

K-means算法一共有4个步骤:第一步,选取初始点为聚类的假定中心点;第二步,将要被聚类样本点进行分类;第三步,根据分类调整第一步所假定的中心点;第四步,输出结果。

算法K-means基于簇中对象平均值输入簇的数目K和N个对象的数据库输出K个簇,满足均方误差函数值最小步骤如下:

任意选择K个对象作为初始簇中心(初始平均值);

标准化K个对象数据度量值;

Repeat;

计算分配后每个簇中对象的平均值(第一次按初始状态平均值);

根据簇中对象平均值,重新将每个对象赋给最类似的簇;

Until对象的重新分配不再变化。

通过迭代的方法把数据对象划分到不同的簇中,以求得最小化的目标函数,从而使得生成的簇尽可能紧凑和独立。新的聚类生成和确定算法的K值是聚类算法的关键,通过多次迭代计算实现类间相似度距离越小,类内相似度聚类越大,从而获得最优结果。

(广州华立科技职业学院王超)

猜你喜欢

库中中心点平均值
平均值的一组新不等式
街头的人
Scratch 3.9更新了什么?
如何设置造型中心点?
从今天开始
智能盘库在自动化立体库中的探索和应用
汉字艺术结构解析(二)中心点处笔画应紧奏
寻找视觉中心点
平面图形中构造调和平均值几例
基于电流平均值的改进无功检测法