一种监控服务器及监控方法

文档序号:7700646阅读:275来源:国知局
专利名称:一种监控服务器及监控方法
技术领域
本发明涉及网络监控技术,尤其涉及一种监控服务器及监控方法。
背景技术
在信息技术(IT)运营管理过程中,需要服务器对主机、主机上应用和网 络设备进行监控。目前,对于网络设备的监控,普遍釆用简单网络管理协议 (SNMP, Simple Network Management Protocol),而对于主机及主机上应用的 监控,各个厂商在软件的实现上却出现了分歧,有些厂商釆用代理(Agent)监 控方式,有些厂商釆用非代理(Agentless)监控方式。
Agent监控方式,就是在被监控主机或被监控应用所在的主机上面,安装 小的Agent软件,通过代理软件实现对数据的釆集和管理,从而实现对主机及 主机上应用的监控。目前采用Agent监控方式的监控软件主要有Hyperic、 IBM Tivoli、 BMC Patrol 、 Nagios等。
Agent监控方式具有以下优点首先,由于大部分工作通过监控资源端, 即被监控主机或被监控应用所在的主机上的Agent软件完成,Agent监控方式 对监控服务器的影响相对较小;其次,在监控资源端釆集的数据可以经过压缩 处理后,再传输给监控服务器,所以Agent监控方式对网络带宽的占用较少, 适用于有限带宽的网络环境;再次,Agent监控方式支持二次开发。但是,Agent 监控方式需要占用 一定的CPU和内存来运行Agent软件本身;并且,每个Agent 软件独立运行,扫描、配置较为繁瑣,且每台主机都需要部署安装,部署起来 相对很麻烦。
Agentless监控方式,不需要在被监控主机或被监控应用所在的主机上面安 装代理软件来釆集相应的数据,而是由监控服务器通过一些标准的协议,如主机使用的SNMP、远程登录协议(Telnet)、安全外壳协议(SSH)、 Windows管 理规范(WMI)等,以及应用使用的Java管理扩展(JMX)、 Java数据库连接 (JDBC)、开放数据库互连(ODBC)等,釆集监控资源端的数据。目前,采 用Agentless方式的监控软件主要有Cacti、网络链路流量负载(Multi Router Traffic Grapher, MRTG)、 Zenoss、 AdventNet、 OpenNMS等,其中,Zenoss和 OpenNMS支持分布式操作。
Agentless监控方式具有以下优点监控服务器负责所有的扫描、配置,只 需要向被监控主机或被监控应用所在的主机开通相应的协议和端口,就可以实 现监控,所以,Agentless监控方式对CPU和内存的影响相比Agent方式小很多, 且不需要对监控资源端进行部署。但是,由于所有工作通过监控服务器远程连 接监控资源端实现,Agentless监控方式对监控服务器的影响相对较大;并且, 监控资源端釆集的数据直接传输给监控服务器,数据传输量较大,需要占用较 多的网络带宽;另外,在Agentless监控方式中,监控指标相对固定,不支持二 次开发。
从上述描述可以看出,釆用Agent监控方式和Agentless监控方式的监控软 件各有优缺点,随着用户对监控业务的要求越来越高,单纯的釆用某一种监控 软件已不能很好地满足用户监控的需求,而通过多种监控软件釆集的数据进行 监控,往往会因为数据格式不同、分布不同等原因,无法进行综合分析,从而 无法满足监控需求;另外,同样的功能,在不同的监控软件中必须对应独立的 功能模块,所以,现有监控软件中模块的重用性较差。

发明内容
有鉴于此,本发明的主要目的在于提供一种监控服务器及监控方法,能够 灵活集成多种监控软件进行更有效地监控,且能提高模块的重用性,节省代码 及系统资源。
为达到上述目的,本发明的技术方案是这样实现的 一种监控服务器,包括应用层、服务层、组件层和数据层;其中,所述应用层,用于与用户进行交互,根据用户的操作指令,将监控请求传
递至服务层;还用于对来自服务层的监控数据进行展示;
所述服务层,用于存储各种服务;根据应用层的监控请求,通过自身存储 的服务对数据层中的数据和/或自身釆集的数据进行运算,获取监控数据,并将 获取的监控数据返回应用层;
所述数据层,用于存储关于监控资源端的数据。
所述系统还包括组件层,用于存储能够协调服务、实现监控的组件;
所述服务层,还用于通过自身存储的服务及组件层中相应的组件,对数据 层中的数据和/或自身采集的数据进行运算,获取监控数据,并将获取的监控数 据返回应用层。
所述服务层还用于对监控资源端的数据进行采集,并将釆集的数据存储至 数据层;
所述数据层还用于存储来自服务层的、关于监控资源端的数据。 所述组件层还用于存储能够实现映射功能的组件,对数据层中存储的数据 进行映射;
所述服务层还用于对经过组件层映射的数据进行运算,获取监控数据。 所述应用层还用于根据用户搡作,将控制命令传递至服务层;以及对来自 服务层的操作结果进行展示;
所述服务层还用于根据所述控制命令执行操作,并将搡作结果返回应用层。 一种监控方法,包括
用户通过应用层确定监控需求,应用层根据用户的监控需求,发送监控请 求至服务层;
服务层收到监控请求后,根据所述监控请求,通过自身存储的服务对数据 层中的数据和/或自身采集的数据进行运算,获取监控数据; 服务层将所述监控数据返回应用层进行展示。
服务层收到监控请求后,还包括步骤判断是否需要结合组件进行数据处 理,如果需要,通过自身存储的服务及组件层中相应的组件,对数据层中的数据和/或自身釆集的数据进行运算,获取监控数据,并将获取的监控数据返回应 用层;如果不需要,通过自身存储的服务对数据层中的数据和/或自身釆集的数 据进行运算,获取监控数据,并将获取的监控数据返回应用层。
该方法还包括步骤服务层对监控资源端的数据进行釆集,并将釆集的数 据存储至数据层。
所述服务层对数据层中的数据和/或自身采集的数据进行运算为 通过组件对数据层中存储的数据进行映射;
服务层对经过组件映射的数据进行运算,获取监控数据。
用户通过应用层确定监控需求之前,包含步骤用户通过单点登陆方式接 入应用层。
该方法还包括
用户通过应用层向服务层发送控制命令;
服务层收到所述控制命令后,根据所述控制命令执行操作,并将搡作结果 返回应用层进行展示。
本发明监控服务器及监控方法,在监控服务器上设置应用层、数据层、服 务层和组件层,其中,数据层对监控资源端的数据进行统一存储,通过应用层 实现与用户的交互,并根据用户的操作,由服务层中的服务、或由组件层中的 组件协调服务层中的服务,对数据层中的数据和/或服务层采集的数据进行运 算,最后,再将处理后的数据返回应用层,由应用层展示给用户。由于对监控 资源端的数据进行统一存储,所以,本发明能够灵活集成多种监控软件进行更 有效的监控。
另外,服务层中的服务之间可以通过调用,来实现现有监控软件的各种功 能,所以,本发明能够提高模块的重用性,节省代码及系统资源。


图l为本发明监控服务器的组成结构示意图; 图2为本发明监控方法的实现流程示意图;图3为本发明实施例1监控方法的实现流程示意图; 图4为本发明实施例l主从分布式结构示意图5为本发明实施例2服务层收到操作命令时的处理方法实现流程示意图。
具体实施例方式
本发明的基本思想是在监控服务器上设置应用层、数据层、服务层和组 件层,通过数据层对监控资源端的数据进行统一存储,通过应用层实现与用户 的交互,并根据用户的操作,由服务层中的服务、或由组件层中的组件协调服 务层中的服务,对数据层中的数据和/或服务层采集的数据进行运算,最后,再 将处理后的数据返回应用层,由应用层展示给用户。
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照 附图,对本发明进一步详细说明。
图1为本发明监控服务器的组成结构示意图,如图l所示,本发明监控服 务器包括应用层ll、服务层12、数据层13和组件层14;其中,
应用层ll,用于与用户进行交互,根据用户的操作指令,将监控请求传递 至服务层12;以及对服务层12返回的监控数据进行展示;
一般,用户通过单点登录方式接入应用层11,以屏蔽不同监控软件页面的 差异性,提供统一的监控门户平台。
实际应用中,应用层11可以通过监控门户的方式,提供统一的监控交互界 面,以支持与用户之间的交互。
服务层12,用于存储各种服务;还用于根据应用层11的监控请求,通过 自身存储的服务对数据层13中的数据和/或自身釆集的数据进行运算,以获取 监控数据,并将获取的监控数据返回应用层11;
这里,将通过集成可以满足各种监控业务功能的功能模块称为服务,服务 通过提供定义良好并且与实现无关的接口,在满足不同监控业务功能时,均可 以被其他服务调用。具体实现过程中,可以把现有的监控软件作为一种满足业 务需要的服务,也可以将现有的监控软件区分为若干个功能模块,每个功能模
8块对应一种服务。
通过对服务的区分,可以尽可能地发挥各监控软件的优势功能,又可以对 各监控软件的重复功能进行整合,即统一由一个服务实现,减少多余的资源 消耗。
另外,服务器自身采集的数据为服务层12从监控资源端和/或其他数据 存储单元采集的数据。
在实际应用中,为了实现监控,可以采用主从分布式结构,即由一个主 监控服务器和多个从监控服务器共同实现监控,主监控服务器负责与用户交互、 数据采集及数据运算等功能,主监控服务器的服务层12进行数据处理时,可以 从从监控服务器的服务层12采集需要的数据。从监控服务器主要用于按照现有 的数据釆集方式采集监控资源端的数据并存储;在主监控服务器向其采集数据 时,返回相应的数据。
为了实现主从分布式结构的数据通信,可以釆用前台由异步JavaScript和 XML ( AJAX, Asynchronous JavaScript and XML )、 JSON ( JavaScript Object Notation, —种轻量级的数据交换语言)、JavaScript及Servlet等组合和后台由 Python、 Urllib、 XML-RPC、 RSET及Servlet等组合两种方式来实现。针对不 同的业务数据或用户的需求,可选择其中之一,比如从多个从监控服务器获 取数据,如果想达到一个从监控服务器的数据来了就进行展示,可以采用前台 AJAX方式实现;如果想把每个从监控服务器的数据生成完后,统一处理后统 一展示,可以采用后台Python方式实现,而对于向从监控服务器做数据同步时, 一定得采用后台Python方式处理,这样可以保证事物操作的一致性。
数据层13,用于存储关于监控资源端的数据。
这里,数据层13对监控资源端的数据按统一的数据结构进行存储;或者, 按照现有不同监控软件对数据的采集方式对应的数据结构进行存储。
按统一的数据结构进行存储时,所述数据结构可以包括设备信息、设备 对应的各种服务信息、事件告警信息、性能数据、对设备及服务等的配置管理 数据等。组件层14,用于存储能够协调服务、实现监控的组件。
本发明通过开发一些特定的组件来协调不同的服务一起工作,通过组件层 14的控制,服务之间可以通过彼此相互调用, 一起协调完成某个监控功能,尽 量减少重新开发,提高服务的重用性。具体实现时,可以通过暴露服务的应用
程序接口 (API),以供其它服务调用,从而一起协调完成用户需要的监控功能。 这里,所述开发特定组件协调不同服务是指通过设置能完成用户所需功 能的一个或多个组件来对服务进行处理、或提供给服务使用,例如,通过某个 组件可以管理对应的服务、或是调用某个服务,或扩展某个服务的服务功能; 通过组件可以屏蔽多个服务之间采集数据格式的不一致性,实现监控业务数据 展示的一致等等。总之,所有额外所需的功能都可以通过设置不同的组件来实 现管理。
服务层12,还用于通过自身存储的服务及组件层14中相应的组件,对数 据层13中的数据和/或自身采集的数据进行运算,以获取监控数据,并将获取 的监控数据返回应用层11。
服务层12,还用于对监控资源端的数据进行采集,并将采集的数据存储至 数据层13;数据层13还用于存储来自服务层12的、关于监控资源端的数据。
另外,通过开发特定的组件,还可以对数据层13中以不同存储结构存储的 数据实现映射管理,从而实现对不同格式数据的运算及搡作,即
组件层14,还用于存储能够实现映射功能的组件,对数据层13中存储的 数据进行映射;服务层12,还用于对经过组件层14映射的数据进行运算,以 获取监控数据。
应用层11,还用于根据用户操作,将控制命令传递至服务层12;以及对来 自服务层12的操作结果进行展示;服务层12,还用于根据所述控制命令执行 搡作,并将搡作结果返回应用层11。
数据层13按照现有不同监控软件对数据的采集方式,按照对应的数据结构 进行存储,这是因为,建立统一的数据模型是一件重要而且需要时间的工作。 为了使本发明的监控方法较快地应用于实际,服务层12对监控资源端的数据进行采集,可以按照现有不同监控软件对数据的采集方式,同时进行数据采集, 并将釆集的数据发送至数据层13,由数据层13按照相应的数据结构进行存储。 相应的,对于数据层13存储的不同数据结构的数据,要对其进行运算以获 取监控数据时,可以通过开发支持数据映射及运算的服务,实现对以不同数据 结构存储的数据的映射及运算,也可以开发支持数据映射的组件,实现以不同 数据结构存储的数据的映射,服务直接对通过组件映射后的数据进行运算。
图2为本发明监控方法的实现流程示意图,如图2所示,本发明监控方法 包括以下步骤
步骤21:用户通过应用层确定监控需求,并将用户的监控请求发给服务层。 一般,用户通过单点登陆方式接入应用层。
这里,应用层可以以交互界面的形式与用户进行交互,用户通过交互界面 选择需要监控的内容,即确定监控需求,例如,用户通过交互界面选择告警监 控、性能监控等一种监控或多种监控的组合。用户确定监控需求后,应用层通 过向服务层发送监控请求,将用户的监控请求传递至服务层。
步骤22:服务层根据用户确定的监控需求,判断是否需要结合组件进行数 据运算,如果是,则执行步骤23;否则,执行步骤24。
这里,所述判断可以是判断服务层中的服务是否能够独立进行数据处理, 如果服务层中某个服务独立进行数据处理,便可以满足用户的监控需求,则不 需要结合组件进行数据处理;如果需要服务层中多个服务通过互相调用共同进 行数据,才能满足用户的监控需求,则需要结合组件进行数据处理。
步骤23:服务层通过自身存储的服务及组件层中相应的组件,对数据层中 的数据和/或自身采集的数据进行运算,以获取监控数据,之后执行步骤25。
这里,服务层自身采集的数据可以是服务层从监控资源端采集的数据,也 可以是服务层从从监控服务器的服务层采集的数据。
步骤24:服务层通过自身存储的服务对数据层中的数据和/或自身采集的数 据进行运算,以获取监控数据。
步骤25:服务层向应用层返回监控数据。
ii步骤26:应用层向用户展示监控数据。
需要说明的是,用户还可以通过应用层向服务层发送控制命令,服务层收 到所述控制命令后,根据所述控制命令执行操作,并将搡作结果返回应用层进
行展示。
实施例1:
本实施例中,采用Zenoss和Hyperic组合进行监控,且采用主从分布式结构。
图3为本发明实施例l监控方法的实现流程示意图,如图3所示,本发明 实施例1的监控方法包括以下步骤
步骤31:用户通过应用层确定需要进行报表(Report)展示、事件告警、 性能监控及安全管理配置这里,用户通过单点登陆方式接入应用层。
步骤32:应用层将用户的监控需求传递至服务层。
步骤33:服务层根据用户的监控需求,确定需要同时进行Zenoss监控和 Hyperic监控,并需要结合组件进行运算。
Zenoss是基于Agentless方式的监控软件,它支持分布式管理功能,具有很 强大的网络自动发现功能。另外,Zenoss软件中有非常好的告警事件管理功能, 它本身是一个非常好的事件平台,事件升级、报警、过滤等功能都有。Hypeirc 的报警事件能传递到Zenoss中,这就意味着Zenoss可以作为一个统一集成的 事件管理平台,在这里对集中管理所有类型的告警事件。
Hyperic是一种基于Agent方式的监控软件,能支持目前流行的所有基础架 构软件包括各种商业的操作系统、数据库、中间件,Hyperic通过在一台服务器 上部署一次代理程序后,其他的工作就都转到控制台(Web console )上了 ,在 那里,可以配置代理对各种资源的管理。
从Zenoss和Hyperic的各种图形上,可以很好的评价和监控各种IT服务的 质量。根据上述内容可以看出,由于Zenoss监控和Hyperic监控完全能够支持当 前用户的监控需求,因此,同时进行Zenoss监控和Hyperic监控,便可满足用 户的监控需求,即可实现Reports展示、事件告警、性能监控及安全管理配 置。
步骤34:服务层通过自身存储的服务及组件层中相应的组件,基于Zenoss 监控和Hyperic监控的监控原理,对数据层中存储的数据和/或自身采集的数据 进行运算,获取监控数据。
在本实施例中,主从分布式结构如图4所示,主监控服务器为Zenoss主监 控服务器,从监控服务器具体为Zenoss从监控服务器和Hyperk从监控服务器, 其中,Zenoss从监控服务器主要负责对网络系统及网络设备的数据采集,采用 SNMP技术;Hyperic从监控服务器负责采集应用系统的数据,采用的技术主要 有Java管理扩展(JMX, Java Management Extensions)、 SNMP、 Java数据库连 接(JDBC, Java Data Base Connectivity )和自身自带的系统信息的获取与上传 (System Information Gather & Report, SIGAR)标准。
Zenoss主监控服务器的服务层需要采集数据进行运算时,可以从监控资源 端采集,也可以从从监控服务器的服务层进行采集。
步骤35:服务层将监控数据返回应用层,从而展示给用户。
实施例2:
本实施例中,服务层根据用户的搡作命令,执行相应操作,并向应用层返 回操作结果进行展示。
图5为本发明实施例2服务层收到操作命令时的处理方法实现流程示意图, 如图5所示,本发明实施例2服务层收到操作命令时,包括以下步骤
步骤51:用户在应用层进行操作,应用层根据用户搡作产生控制命令。
控制命令是指一些操作,比如开始监控、暂停监控、结束监控等控制命令。
步骤52:应用层将控制命令发送至服务层。
步骤53:服务层根据操作命令执行相应的操作。这里,如果控制命令为停止某个从监控服务器监控的主机的数据库,主监 控服务器的服务层根据来自应用层的控制命令,向指定的从监控服务器发送停 止命令,从监控服务器接收到停止命令后,停止指定主机的数据库,并向主监 控服务器返回已停止信息。
步骤54:服务层将操作结果返回应用层进行展示。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1、一种监控服务器,其特征在于,该系统包括应用层、服务层、组件层和数据层;其中,所述应用层,用于与用户进行交互,根据用户的操作指令,将监控请求传递至服务层;还用于对来自服务层的监控数据进行展示;所述服务层,用于存储各种服务;根据应用层的监控请求,通过自身存储的服务对数据层中的数据和/或自身采集的数据进行运算,获取监控数据,并将获取的监控数据返回应用层;所述数据层,用于存储关于监控资源端的数据。
2、 根据权利要求l所述的监控服务器,其特征在于,所述系统还包括组件 层,用于存储能够协调服务、实现监控的组件;所述服务层,还用于通过自身存储的服务及组件层中相应的组件,对数据 层中的数据和/或自身采集的数据进行运算,获取监控数据,并将获取的监控数 据返回应用层。
3、 根据权利要求l所述的监控服务器,其特征在于,所述服务层还用于对 监控资源端的数据进行釆集,并将釆集的数据存储至数据层;所述数据层还用于存储来自服务层的、关于监控资源端的数据。
4、 根据权利要求2所述的监控服务器,其特征在于,所述组件层还用于存 储能够实现映射功能的组件,对数据层中存储的数据进行映射;所述服务层还用于对经过组件层映射的数据进行运算,获取监控数据。
5、 根据权利要求l所述的监控服务器,其特征在于,所述应用层还用于根 据用户操作,将控制命令传递至服务层;以及对来自服务层的操作结果进行展 示;所述服务层还用于根据所述控制命令执行操作,并将操作结果返回应用层。
6、 一种监控方法,其特征在于,该方法包括用户通过应用层确定监控需求,应用层根据用户的监控需求,发送监控请求至服务层;服务层收到监控请求后,根据所述监控请求,通过自身存储的服务对数据层中的数据和/或自身釆集的数据进行运算,获取监控数据;服务层将所述监控数据返回应用层进行展示。
7、 根据权利要求6所述的监控方法,其特征在于,服务层收到监控请求后, 还包括步骤判断是否需要结合组件进行数据处理,如果需要,通过自身存储 的服务及组件层中相应的组件,对数据层中的数据和/或自身釆集的数据进行运 算,获取监控数据,并将获取的监控数据返回应用层;如果不需要,通过自身 存储的服务对数据层中的数据和/或自身釆集的数据进行运算,获取监控数据, 并将获取的监控数据返回应用层。
8、 根据权利要求6或7所述的监控方法,其特征在于,该方法还包括步骤: 服务层对监控资源端的数据进行釆集,并将釆集的数据存储至数据层。
9、 根据权利要求7所述的监控方法,其特征在于,所述服务层对数据层中 的数据和/或自身采集的数据进行运算为通过组件对数据层中存储的数据进行映射; 服务层对经过组件映射的数据进行运算,获取监控数据。
10、 根据权利要求6所述的监控方法,其特征在于,用户通过应用层确定 监控需求之前,包含步骤用户通过单点登陆方式接入应用层。
11、 根据权利要求6所述的监控方法,其特征在于,该方法还包括 用户通过应用层向服务层发送控制命令;服务层收到所述控制命令后,根据所述控制命令执行操作,并将操作结果 返回应用层进行展示。
全文摘要
本发明公开一种监控服务器,包括应用层、服务层和数据层;其中,应用层与用户进行交互,将监控请求传递至服务层;对来监控数据进行展示;服务层存储各种服务;根据应用层的监控请求,对数据层中的数据和/或自身采集的数据进行运算,以获取监控数据,并返回应用层;数据层存储关于监控资源端的数据,本发明监控服务器还包括组件层,用于存储能够协调服务、从而实现监控的组件。本发明还相应地公开一种监控方法,本发明对监控资源端的数据进行统一存储,所以,本发明能够灵活集成多种监控软件进行更有效的监控,服务层中的监控服务之间可以通过调用来实现现有监控软件的功能,能够提高模块的重用性,节省代码及系统资源。
文档编号H04L12/26GK101567816SQ20091008572
公开日2009年10月28日 申请日期2009年5月27日 优先权日2009年5月27日
发明者付卫兵, 振 岳, 李石磊, 杨志刚, 韩志刚 申请人:北京中企开源信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1