《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 利用jmx改进网络管理系统中指标实时监控

利用jmx改进网络管理系统中指标实时监控

2009-01-06
作者:张登先
一、 现有网管系统中实时监控存在的问题和解决方案
    随着网络的迅速发展,NMS(network management system网络管理系统)出现和发展起来。现有 NMS实现了连接各个专用的异构网络,对不同地理区域的网络运营中心实现集中管理、控制和监控。实时监控是网络管理系统中一个基础的功能。现有的网管系统中实时监控的实现是系统直接访问设备,设备将系统需要的各项指标一一上报。这就存在以下两个主要问题。问题一:如果有m个用户需要同时对同一个指标进行监控,系统就需要执行m次命令,这增加了网络流量和系统开销。问题二:对新加入系统的 设备,网络管理系统不能对它立即进行管理,增加完配置文件后,还要重启系统,相应的监控指标才能开始工作。
    如果在用户监控指令和设备之间增加一个中间层,将多用户需要监控的所有指标进行列表,然后后台根据列表实时的提供当前指标的最新值给每一个用户,那么第一个问题就可以很好的解决。对新加入的设备,采用JMX技术的m-let服务,能从远端或本地下载设备的管理程序,很好的对设备进行配置和管理,新加入的设备的指标就能立即上报,这样第二个问题就能很好的解决。而且,用JMX技术来实现中间层是非常好的,JMX就是SUN公司为Application Management提出的解决方案。
二、 JMX技术简介
    JMX(java management extension)是一个说明了远程或本地的java应用程序管理模式和接口的java标准。JMX 的目标只是定义构成 JMX 体系结构内系统的接口,而不在不必要时指定实现和策略。根据JMX规范,JMX分为四层结构:

     对上图的说明:JMX分为设备层,代理层,分布层和管理层。设备层是提供管理接口和JMX可管理资源的应用组件。设备层的组件有MBean,通知类,接口,宏数据类。
    代理层:通过管理接口直接访问资源,应用MBean服务器暴露资源,提供很多的一般服务。服务包括:m-let 或管理 Applet 服务、监视器服务、计时器服务、关系服务。
    分布层:提供接口给JMX管理应用程序来访问代理层和在代理层登记的MBean。分布层的关键组件有:代理层的协议适配器、RMI、CORBA接口。
    管理层:监视和管理被管理组件的应用程序。可以是特别设计的工具或者通常的应用接口。关键组件有:管理应用程序。
这里特别强调一下代理层提供的服务。m-let 或管理 Applet 服务:动态设备的管理文件用m-let的方式从远端或本地动态的装入,m-let放在XML文件里,XML文件动态更新。设备装入运行中的系统,系统不重启。监视器服务:将代价高昂的远程轮询操作转换成本地操作;监控 MBean 属性的特定更改并在观察到更改时发送事件。这个功能管理已装入系统的设备,当设备不可用,或发生任何故障,监视器服务就会把消息发出。计时器服务:经历了指定的时间量后发送事件,或以指定时间间隔定期发送事件。轮询、定时查看系统现有设备的运行状况等方面得到大量的运用。关系服务:支持 MBean 之间的关系定义,并强制关系的完整性。这样,整个MBean就是一个相互联系的整体,系统事先定义好这种联系,在运行中管理这些关系,在其他服务的支持下为动态管理提供基础。
    被管理资源将属性,对外能提供的服务以MBean(XMBean)接口的方式提供给MBean server,在MBean实现的类(X,即去掉MBean后缀)中必须要有一个没有任何参数的构造函数,这使得在MBean server端创建一个X类成为可能(如果有参数,参数的类型,参数的具体值都不得而知)。MBean Server通过调用getAttribute(ObjectName,属性名)返回一个对象,这个对象就是属性的当前值;MBean Server通过调用invoke(ObjectName,方法名,方法的参数值,参数值的类型)来实现被管理资源的方法调用。
三、 将JMX技术应用到网络管理系统的实时监控中
    实时监控的指标分为两类:一是设备指标,设备指标是通过向设备发出指令,设备向系统汇报的指标,比如某个设备的CPU利用率,二是业务指标,计算业务指标首先要确保业务范围内的每个设备都在正常工作,然后从每个设备上获得子指标,将这些指标运用相应的计算公式,从而得到业务指标,比如某个小区的网络流量。下图是系统的包结构:

    按照各自完成的职责,实时监控模块划分成了三个包:gui,PNP,performance。图中用虚线隔成上下两个部分,下部分列举当前支持的指标,上部分得到需要监控的指标值。gui是前台应用程序,它与用户直接交互,负责把当前支持的设备指标和业务指标提交给用户,用户在其中选择自己感兴趣的指标,gui再把这些指标反馈给PNP。PNP是中间组织者,它担负着把后台的信息反应给前台和得到前台的需求,侦听后台结果的组织者角色。Performance是后台的性能轮巡应用程序。它负责对被管理设备轮询,和为前台提供的服务指标轮巡和计算。 

 

    ListChoices、DeviceParameterList、serviceMBeanList三个类在PNP包中。上图说明了PNP向前台提供的选择服务。ListChoices是一个抽象接口,定义了三个函数:listChoices(),listParameterByTarget(),listTargetByParameter()。DeviceParameterList和serviceMBeanList是实现listChoices的两个函数,这两个具体实现是提供给用户初选的。当用户选定指标名(parameter)和目的地址(target)后,再加上该项监控的监控周期(interval),前台将这三项通过RealTimeManagerSLSB传到PNP。
    RealTimeManagerSLSB在前台的包中。SLSB是stateless session bean的意思,它是一个无状态的事务bean,一个bean响应一个用户调用。RealTimeManager是PNP的组件,

   它负责与前台的RealTimeManagerSLSB打交道。它实现RealTimeManagerMBean接口,对外提供两个方法getPollID(String

parameter,String target,int interval)其中,parameter是指标名称,target是目的地址,interval是该项指标轮巡周期。前台将当前支持的设备指标和业务指标进行选择,把需要看到的指标信息交到PNP的RealTimeManager,RealTimeManager将根据每个target-parameter组合对生成一个RealTimeAdaptor,并返回一个pollID给前台,前台就根据这个ID号向PNP询问当前这个target-parameter的轮巡值。

    RealTimeAdaptor对servicePM和RealTimePoll进行侦听,servicePM和RealTimePoll都是后台应用程序组件,一个是对设备指标的轮询,一个是对业务指标的轮询、计算。

    ServicePM和RealTimePoll的实现可以有多种方式,SNMP,CLI等等都行。上面提到的类都是继承ServiceMBeanSupport类,这个类提供了比较完善的MBean功能支持。


 
四、 结束语
    现有网络管理系统中网络设备的实时监控存在的网络流量、系统开销、对新设备的监控等方面存在的问题利用JMX技术能很好的解决。在这个实时监控模块中,realtimeadaptor很好的拦截了相同任务的指标轮询,从而使系统中对同一个监控任务只执行一次。M-let服务使得新加入设备可以立即提供对系统的服务,为动态网络管理和监控提供了基础。目前,JMX规范只定义了设备层和代理层,在JMX规范完善后,JMX将在application management中发挥更大的作用。
参考文献
1.Sing Li http://www-900.ibm.com/developerworks/cn/   From black boxes to enterprises       2003.4
2.Sunhttp://java.sun.com/products/JavaManagement/ Java Management Extension specification     1999.10
3.Benjamin G.Sullins   Mark Whipple   Ben G.Sullins   JMX IN ACTION     2002.10

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。