网管告警标准化方法的研究
2011-06-09刘昆佑王齐
刘昆佑, 王齐
(中国移动通信集团广东有限公司珠海分公司,珠海 519015)
随着移动网络的不断发展,规模日渐庞大和复杂,移动网络网管系统数量越来越多,告警的信息量也日渐增加,而这大量的告警信息数据中只有不到2%的告警是重要告警,且发生机率很低。从网络维护的角度来看,网管系统给出的告警级别反映不出一个告警在网络中的真实重要性,需进行多方面核查,才能判断该告警的严重性,需要有相关的告警标准化判断方法支撑,保障和提高网络监控的效率。
1 建设目标
本课题对一种告警标准化方法进行了3方面的研究。第一部分通过打通多样化网管接口,实现标准化的告警集中采集。第二部分将集中采集后的告警数据进行分发,实现终端告警信息的获取标准化流程。第三部分对告警的类型、影响情况等多方面因素进行告警级别标准化研究。通过以上3方面的研究,可实现可靠的告警标准化机制,高效的监控方法。
2 告警采集标准化
网管系统间建设的大量“点对点”接口在满足了部分数据共享需求的同时,也带来了许多问题,特别是随着网管架构转型的开展,这些问题也将日益突出。为解决系统间集成的问题指明了方向:引入企业服务总线(ESB),通过标准的接口连接各网管系统,实现系统间轻量级松耦合集成和无缝地数据共享。
ESB平台主要用于各平台及子系统,如综合监控、综合资源、EOMS、综合分析等系统间的数据共享,如图1所示,主要定位如下:
(1)ESB平台作为网管系统之间集成枢纽,采用集中式总线型结构,实现OSS各系统互联互通。
(2)应用通过各个用户的IS组件接入ESB平台,与多个网管系统共享数据。
图1 ESB集成框架图
共享数据模式(Share Data Pattern)主要是为解决OSS系统间数据共享的问题, 将数据共享需求按照数据量、单向/双向、实时/定时、同步/异步几个维度归类,并基于ESB平台对每类需求分别构建通用的实现模式。ESB平台提供的共享数据模式固化了系统间各类数据共享需求的通用解决方案,力求通过配置和少量标准化的开发即可实现具体的数据共享需求,并可做到集中管理和监控。
3 告警获取标准化
通过ESB平台提供的接口,按照以下7个标准化步骤,可实现告警信息获取和提醒。
3.1 令牌设定
由于ESB平台提供的是Socket通信是比特流的通信,截听比特流就要求通信过程具备实时性、有效性和截获数据的完整性。实时截获到的数据流具有连续性及容量较大的特点。根据需求,有必要对数据流进行有效的拆分和整合。在数据的截获测试过程中,为了保证比特流的获取,故采用了基于令牌漏斗算法改进的实时数据截获模型。如图3所示,设定一个缓冲池作为漏斗,持续的比特流进入漏斗缓存中,设定漏斗容量B和允许产生的速率为Rbit/s。一个分组通过漏斗需要有等分长度的容量,容量以Rbit/s速率积累到漏斗中,通过定时关闭漏斗得到大小一致的数据块,根据网络情况通过设定缓冲池的大小和定时触发的条件来保证分组会以恒定的速率进而网络。
缓冲池大小的设定,关于这个指标,需要在系统资源利用率和突发情况两者之间寻求平衡点。经过30次测试,系统资源利用率均值为30kbit/s,突发情况为58kbit/s。设B为漏斗容量,T为系统触发时长,根据以下公式:
根据以上结果,系统触发时长定为1s,缓冲池大小定为30kB,经过30次程序测试,缓冲池没有发现溢出的情况,缓冲池的平均利用率为50%,30kB大小的缓冲池保证资源利用率的同时也能够处理突发情况数据流,实现1s就可以把截获的告警消息进行及时地存储,可有效解决网络拥塞的问题。
3.2 编码选取
基于这个模型,选用VC编程可实现告警信息的截听过程及拆分过程。而由于UTF-8编码可以通过屏蔽位及移位操作快速读写。字符串比较时strcmp()和wcscmp()的返回结果相同,使排序变得容易实现,故采用UTF8编码。
图2 令牌漏斗算法原理图
3.3 心跳检测
要保证客户端和服务端Socket连接的稳定性。需要通过Socket心跳检测来检测客户端的服务器是否发生断链,可以在应用层上通过编写程序实现,让服务器在timer事件中定时向客户端发送一个心跳分组,设定时长为30s一次,一旦发现连接中断,系统可在30s之内就可以实现重新连接。
为下游程序提供固定大小的数据块,之前测试数据流的速率在10kbit/s左右,设定每隔1s对漏斗内的消息堆进行判定,然后生成临时文件,可以保证生成的文件大小是在设计值左右,也就是15kB上下,经过30次测试验证,提供给下游程序的临时文件均控制在15kB,并按照当前时间对文件进行命名方便下面的排序操作。
3.4 文件读取
取到的文件数量大,由于文件会按时间顺序命名,首先通过xml异步处理程序对文件名进行监测,对文件名时间最早的一个文件进行解析处理,出于对节省空间和方便下次排序的考虑,会将处理完的文件进行删除,删除完成后再等待下一次监测、排序和处理。
3.5 告警信息的解析
每个文件包都包含了多条告警,每条告警都有固定开头字符“
3.6 告警筛选和实时提醒
通过告警标签定义,对当前告警进行标签识别,根据告警级别重定义的方法得到二次定义的告警级别,对比定义的告警级别门限值,当告警级别大于这个定义值的时候触发自动弹出告警提示界面,并启用短信提醒功能,通过引用webservice调用短信端口,将当前重要告警以短信方式发送给相关人员。
3.7 本地告警库选择和搭建
解析并提取符合条件的重要告警信息之后需要将其存入数据库中 ,需要选择一种与C#兼容性好并且易于配置的数据库。 而SQL Server数据库本身就与C#良好的兼容性,非常适合Windows后台数据库的开发,并具备高效的数据插入与查找算法,且管理与应用的简便性但同时能够符合项目需求。
在本地终端上使用SQL Server中新建立一个新的数据库,命名为important alarms,并设定用户名和密码。
在C#中则基于TCP/IP的sqlconnection实现与SQL实时建立连接并且插入数据。通过创建一个sqlconnection对象,指明数据库所在终端的IP地址、数据库名、连接方式使用SSPI方式登录。再相应的设置数据库的用户名和密码,完成创建。
使用已经创建好的sqlconnection,通过将sqlconnection实例化,接着打开连接,传递连接给command对象,即可使用连接对数据库内容进行操作,即将解析好的告警的66个字段里的信息写入到数据库中进行保存。
4 告警级别标准化
为能从获取到的告警信息中筛选出真实的重要告警,通过对告警信息和网络设备特性的研究构建了告警级别的重新定义的标准化模型。
4.1 告警级别标准化模型
对应不同的告警,根据不同的网络情况,不易准确判断告警影响的情况,级别高的告警不一定有真实影响,而级别相对较低的告警,也有可能引起重大事故。通过对告警和告警网元制定多个标签,不同的标签反映了告警和网元不同的特性,通过判断标签对告警级别进行二次定义,起到通过告警级别可以真实反映告警重要性的目的。
根据图4的算法模型,分别对不同专业网元针对性定制不同的多个标签,每个标签针对不同的条件判断结果,设定不同的分值,根据各个标签的分值进行加成,得到最终分值反映了的网元重要;同时对告警定义针对性条件判断签,由标签的参数对应判断告警是否为非隐性告警。由告警级别和网元级别得到最终告警二次定义的告警级别。
4.2 算法模型使用方法
网元标签定义和业务类网元标签的分类如下:
4.2.1 BSC/RNC/HLR分为三级标签
第一级为业务状态,包括有业务和无业务,对无业务状态的标签分值设定为0,对有业务状态的设定为1。
第二级为区域分级,根据BSC/RNC/HLR根据前3个月平均CP负荷的情况分为5个等级,分值分别为1、2、3、4、5,负荷越高对应分值越高。
第三级为历史时段分级,根据前3个月平均每天24h的CP负荷值分为5个等级,分值分别为1、2、3、4、5,负荷越高对应分值越高。
4.2.2 基站分为三级标签
第一级为业务状态,包括有业务和无业务,对无业务状态的标签分值设定为0,对有业务状态的设定为1。
第二级为站点级别,根据基站的重要性分为普通、VIP、VVIP 3种,对应分值为1、2、3。
第三级为历史时段分级,根据前3个月平均每天24h的话务量分为3个等级,分值分别为1、2、3,话务量越高对应分值越高。
动力分为二级标签:第一级为告警点,分为机房和基站两种,对应分值分别为3、1。第二级为电池续航能力,根据电池续航能力时间分为4个等级,对应分值为1、2、3、4,续航能力越低分值越高。
表1 负荷分值表
图3 告警标签算法模型
承载类网元标签的分类包括传输、MGW、IP承载网。
承载类网元分为一级:针对网元间链路是否有倒换保护机制分为有保护和无保护,有保护分值为1,无保护分值为4。
告警标签分4种:
第一种为闪断次数判断,为某一时间段内该告警出现次数超门限值时,判断出现该告警;
表2 话务量分值表
第二种为出现时长判断,告警出现时间超过门限时段时,判断出现该告警;
第三种为伴随告警判断,在该告警出现的情况下需伴随其他告警,才判断出现该告警;
第四种为即时告警判断,告警一出现,立刻判断出现该告警。
当告警满足告警标签的四种判断时,告警生效。
二次定义告警级别如下:
当告警为BSC/RNC/HLR告警时:告警级别=告警网元的业务状态分值×告警网元区域分值×告警当前时段网元对应的历史时段分值;
当告警为基站告警时:告警级别=告警基站的业务状态分值×告警站点级别分值×告警当前时段基站对应的历史时段分值;
当告警为动力告警时:告警级别=告警点分值×电池续航能力分值;
当告警为外部告警时:告警级别=告警点分值×[(门禁告警分值8)∨(火警告警分值8)∨(温度告警分值2)∨(水浸告警分值5)];
当告警为承载类传输告警时:告警级别=保护倒换机制分值×[(传输承载基站数×基站退服告警二次定义告警级别)+(传输承载网元数×网元二次定义告警级别)];
当告警为承载类MGW、IP承载网网元告警时:告警级别=保护倒换机制分值×(网元下带BSC/RNC数×网元二次定义告警级别)。
5 结束语
在设计中,通过ESB平台有效实现了多网管的告警信息统一标准化采集,通过令牌漏斗算法实现告警信息的获取,也保证了告警信息获取的实时性和可靠性,对告警进行标签标示的标准化定制,对从庞大的告警信息数据中筛选出不到2%的真实影响层面大,需及时处理的告警,该方法的实时性,准确性很高,可以很好的保障监控的效率和质量。
该方法的告警获取合理性较高,可以实现性较强,实时性和稳定性方面经过测试,完全可以满足网络监控的需要。在告警的筛选方面,告警标签的方法容易配置和实现。可作为一种网管告警标准化的方法,有较强的实用性和可拓展性。
[1] 朱辉生. VC中基于Socket的网络编程[J]. 计算机应用与软件,2004,(4)
[2] 马桂婷, 武洪萍, 袁淑玲主编. 数据库原理及应用[M]. 北京:北京大学出版社.
[3] 李建东. 信息网络基础[M]. 西安:西安电子科技大学出版社.
[4] 边小凡, 代艳红, 马兵会. 基于ESB的企业内部构件与Web服务[J]. 计算机工程与设计, 2009,(04)