基于消息队列的分布式机房监控系统及方法
技术领域
本发明涉及一种机房监控领域,尤其涉及一种基于消息队列的分布式机房监控系统及方法。
背景技术
随着信息网络技术的不断发展,人们对于机房的监控需求在不断提升,各类规模大小不等,设备种类、数量不同的网络设备机房广泛分布于用户各分支机构所在地域,如温、湿度检测设备,UPS能源设备,烟雾检测设备,报警设备,门禁等。由于欠缺与运行网络的规模体系相对称的运维系统,数量众多的无人值守机房的物理运行环境状况、动力配电状况、设备运行状况、人员活动状况以及消防状况的变化,包括可能出现的危急状况,均无法得到及时的发现和处理,也就很难被有效预见、防范和避免。
目前现有的技术方案,基本针对单一机房,进行集中监控。首先安装各种监控设备;然后针对某一设备开发特定模块,实现设备的通信协议转换;最后进行系统集成,将各个模块集中到数据集中存入数据库,前端采用web访问数据库,展现给客户观看。该种技术方案具有以下缺点:
其一,依赖数据库,以数据库为中心,所有的数据都需要通过数据库,采集的数据,控制数据,展示数据,在模块大数量的情况下,降低数据库效率。
其二,前端需要不端的轮询数据库,在前端不断增加的情况下,数据库的效率会低下。
其三,轮询存在周期,周期长,数据不是实时,若要将周期变短,则数据库的压力大。
其四,在多个机房的情况,管理不方便,如果需要集中管理,就需要进行系统集成。
发明内容
为克服上述缺点,本发明的目的在于提供一种层次结构分明、不需要轮询获取数据、效率高、具备实时性、扩展性强的基于消息队列的分布式机房监控系统及方法。
为了达到以上目的,本发明采用的技术方案是:
一种基于消息队列的分布式机房监控系统,包括消息队列服务器,用于提供消息的发布与订阅;监控设备、与消息队列服务器连接的数据监控模块,所述数据监控模块与监控设备直接或通过网络间接连接;告警模块、数据库、手持终端设备或/和计算机,所述告警模块与消息队列服务器连接,所述告警模块通过所述网络与手持终端设备或/和计算机连接,当告警模块接收到告警数据后,所述告警模块将该告警数据反馈给手持终端设备或/和计算机并写入数据库;历史记录模块,所述历史记录模块分别与消息队列服务器、数据库连接,所述历史记录模块将消息队列服务器接收到的历史数据写入数据库;以及展示模块,用于向消息队列服务器注册订阅和发布,所述展示模块分别与消息队列服务器、数据库连接。各个模块功能单一、相对独立;取消数据库的依赖,数据库仅作为历史数据的仓库,只有前端需要查询历史数据的时候才使用,提高了整体系统的效率;本系统是通过消息队列进行发布--订阅的设计模式来设计系统,不需要轮询获取数据,当有数据时,发布到消息队列服务器,如果前端有订阅,则展示模块控制前端立即显示该串口监控设备或/和网络监控设备采集到的实时数据,能实时的发布与订阅;该系统采用消息队列,分布式设计,具有良好的扩展性、可维护性、健壮性,在实施的时候,实施部分设备就能让整体系统运行,随着设备、模块一步步地安装完毕,整个系统也就完成,这样非常利于多机房,多设备分布实施;手持终端设备、计算机通过网络连接告警模块,充分利用当今丰富的智能设备,智能化,符合市场需求。
优选地,所述展示模块连接有Web端、Windows客户端、Mac客户端、Android客户端、iphone客户端中的至少一种。采用多种展示方式来作为前端的订阅与发布,样式多,能符合不同消费者的消费心理。
优选地,所述手持终端设备为手机,所述告警模块以短信或/和电话的方式将告警数据反馈到手机上。能随时随地让客户接收到告警数据,让客户尽早的处理问题。
优选地,所述告警模块以邮件的方式将告警数据反馈到计算机上。
优选地,所述监控设备为串口监控设备,所述数据监控模块与串口监控设备连接;或所述监控设备为网络监控设备,所述数据监控模块通过所述网络间接与网络监控设备连接;或所述监控设备为串口监控设备和网络监控设备,所述数据监控模块通过所述网络间接与网络监控设备连接,所述串口监控设备直接与数据监控模块连接或通过串口转网络模块与所述网络的连接间接与数据监控模块连接。
优选地,所述网络为无线网络、有线网络、3G网络中的至少一种。
一种基于消息队列的分布式机房监控方法,所述方法使用到上述的基于消息队列的分布式机房监控系统,包括如下步骤:步骤一,启动消息队列服务器,进行安全设置;步骤二,安装好串口监控设备或/和网络监控设备,将串口监控设备或/和网络监控设备连接到数据监控模块,再将数据监控模块连接到消息队列服务器,数据监控模块需要向消息队列服务器创建一个队列和两个消息队列交换机,第一个消息队列交换机为匹配规则类型方式的监控数据,第二个消息队列交换机为广播类型方式的控制数据,用户将自己的队列绑定控制数据,进行订阅,当消息队列服务器接收到数据时,对数据进行分析,正常数据还是异常数据,并向监控数据发送数据,即发布者订阅的时候,会有可能接收到用户的控制数据,这时候可以控制串口监控设备或/和网络监控设备;步骤三,将展示模块连接到消息队列服务器,需要向消息队列服务器创建一个队列和两个消息队列交换机,第一个消息队列交换机为匹配规则类型方式的监控数据,第二个消息队列交换机为广播类型方式的控制数据,并将队列和监控数据进行绑定进行订阅,实时展示串口监控设备或/和网络监控设备采集到的实时数据,当用户需要发送控制指令时,则向控制数据消息队列交换机发送控制信号,数据监控模块则会接收到该控制信号的数据并控制监控设备或/和网络监控设备;步骤四,将历史记录模块分别连接到消息队列服务器、数据库,需要向消息队列服务器创建一个队列以及一个匹配规则类型的消息队列交换机,该消息队列交换机为监控数据,接收所有数据,并写入数据库,需查询历史记录时,展示模块能从数据库中调出历史记录;步骤五,将告警模块分别连接到消息队列服务器、数据库,再将告警模块通过网络与手机终端或/和计算机连接,告警模块需要向消息队列服务器创建一个队列和匹配规则类型的消息队列交换机,该消息队列交换机为监控数据,告警模块只接收警告数据,根据数据警告策略做出告警,并写入数据库,需查询警告记录时,展示模块能从数据库中调出警告记录。同样,该方法与系统具有以下相同的有益效果:其一,各个模块功能单一、相对独立;其二,取消数据库的依赖,数据库仅作为历史数据的仓库,只有前端有需要查询历史数据的时候才使用,提高了整体系统的效率;其三,本方法是通过消息队列进行发布--订阅的设计模式来设计系统,不需要轮询获取数据,当有数据时,发布到消息队列服务器,如果前端有订阅,则前端立即显示该串口监控设备或/和网络监控设备采集到的实时数据,能实时的发布与订阅;其四,该方法采用消息队列,分布式设计,这样具有良好的扩展性、可维护性、健壮性,在实施的时候,实施部分设备就能让整体系统运行,随着设备一步步地安装完毕,整个系统也就完成,这样非常利于多机房,多设备分布实施;手持终端设备、计算机通过网络连接告警模块,充分利用当今丰富的智能设备,符合市场需求。
优选地,所述安全设置为用户名和密码。使得该方法具有一定的安全性能。
附图说明
图1为本实施例的框图。
图中:
1-消息队列服务器;2-数据监控模块;21-串口监控设备;22-网络监控设备;3-展示模块;31-veb端;32-Windows客户端;33-Mac客户端;34-Android客户端;35-iphone客户端;4-历史记录模块;5-告警模块;6-数据库;7-网络;71-串口转网络模块;81-手持终端设备;82-计算机。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
参见附图1所示,一种基于消息队列的分布式机房监控系统,包括以下五大部件:
一、消息队列服务器1,消息队列服务器1是整个系统的核心,用于提供消息的发布与订阅,系统的运行依赖与消息队列服务器1的运作;
二、监控设备、与消息队列服务器1连接的数据监控模块2,数据监控模块2与监控设备直接或通过网络7间接连接,数据监控模块2与具体的监控设备交互,本实施例中的监控设备包括串口监控设备21和网络监控设备22,数据监控模块2通过网络7间接与网络监控设备22连接,串口监控设备21直接与数据监控模块2连接或通过串口转网络模块71与网络7的连接间接与数据监控模块2连接;当然,监控设备也可仅为串口监控设备21,此时,可将数据监控模块2与串口监控设备21直连即可;此外,监控设备也可仅为网络监控设备22,数据监控模块2通过网络7间接与网络监控设备22连接,其中,网络7可选用无线网络、有线网络、3G网络中的至少一种,数据监控模块2能直接和间接的与具体的监控设备实现交互,数据监控模块2与消息队列服务器1连接后,注册订阅和发布,当串口监控设备和网络监控设备采集到实际监控到的数据时,需要向消息队列服务器1发布数据,这样可以为整个系统提示数据功能,同时它又订阅控制数据,当接收的控制数据时,则立即向具体的监控设备发送控制指令;
三、告警模块5、数据库6、手持终端设备81或/和计算机82,本实施例中,包括手持终端设备81和计算机82,告警模块5与消息队列服务器1连接,告警模块5通过网络7分别与手持终端设备81、计算机82连接,当告警模块5接收到告警数据后,告警模块5将该告警数据通过网络7反馈给手持终端设备81和计算机82并写入数据库6,告警模块5通过向消息队列服务器1注册订阅功能,当告警模块5接收告警数据时,根据告警策略,向手持终端设备81、计算机82等发送警告信息,本实施例中的手持终端设备81为手机,告警模块5以短信或/和电话的方式将告警数据反馈到手机上,告警模块5以邮件的方式将告警数据反馈到计算机82上;
四、历史记录模块4,历史记录模块4分别与消息队列服务器1、数据库6连接,历史记录模块4将消息队列服务器1接收到的历史数据写入数据库6,通过向消息队列服务器1订阅数据,历史记录模块4接收到数据之后写入数据库,具备提示系统历史查询的功能;
五、展示模块3,用于向消息队列服务器1注册订阅和发布,展示模块3分别与消息队列服务器1、数据库6连接,展示模块3提供设备的数据展示和控制设备的直接接口,是重要的人机交互接口,它需要向消息队列服务器1注册订阅和发布两种角色的功能,即它既是消费者也是发布者,订阅功能主要是接收消息队列服务器1的数据,向用户展示机房运行环境的数据,发布功能是当用户对具体的设备发送指令时,它会传送给消息队列服务器1,并控制设备,展示模块3除展示实时数据之外,展示模块3分别与消息队列服务器1、数据库6连接,可支持查询历史数据和告警数据,通过数据库的查询来完成该功能。展示模块3连接有Web端31、Windows客户端32、Mac客户端33、Android客户端34、iphone客户端35中的至少一种,本实施例中,采用该五种类型进行展示。
一种基于消息队列的分布式机房监控方法,方法使用到上述的基于消息队列的分布式机房监控系统,包括如下步骤:步骤一,启动消息队列服务器1,设置用户名和密码,实现安全设置;步骤二,安装好串口监控设备21或/和网络监控设备22,将串口监控设备21或/和网络监控设备22连接到数据监控模块2,再将数据监控模块2连接到消息队列服务器1,数据监控模块2需要向消息队列服务器1创建一个队列(queue)和两个消息队列交换机(exchange),第一个消息队列交换机(exchange)为匹配规则类型(topic)方式的监控数据(monitor_data),第二个消息队列交换机(exchange)为广播类型(fanout)方式的控制数据(control_data),用户将自己的队列绑定控制数据(control_data),进行订阅,当消息队列服务器1接收到数据时,对数据进行分析,正常数据还是异常数据,并向监控数据(monitor_data)发送数据,即发布者(Publisher)订阅的时候,会有可能接收到用户的控制数据(control_data),这时候可以控制监控设备21或/和网络监控设备22监控设备21或/和网络监控设备22;步骤三,将展示模块3连接到消息队列服务器1,需要向消息队列服务器1创建一个队列(queue)和两个消息队列交换机(exchange),第一个消息队列交换机(exchange)为匹配规则类型(topic)方式的监控数据(monitor_data),第二个消息队列交换机(exchange)为广播类型(fanout)方式的控制数据(control_data),并将队列和监控数据(monitor_data)进行绑定进行订阅,实时展示监控设备21或/和网络监控设备22采集到的实时数据,当用户需要发送控制指令时,则向控制数据(control_data)消息队列交换机(exchange)发送控制信号,数据监控模块2则会接收到该控制信号的数据并控制监控设备21或/和网络监控设备22;步骤四,将历史记录模块4分别连接到消息队列服务器1、数据库6,需要向消息队列服务器1创建一个队列(queue)以及一个匹配规则类型(topic)的消息队列交换机(exchange),该消息队列交换机(exchange)为监控数据(monitor_data),接收所有数据,并写入数据库6,需查询历史记录时,展示模块3能从数据库6中调出历史记录;步骤五,将告警模块5分别连接到消息队列服务器1、数据库6,再将告警模块5通过网络7与手机终端或/和计算机82连接,告警模块5需要向消息队列服务器1创建一个队列(queue)和一个匹配规则类型(topic)的消息队列交换机(exchange),该消息队列交换机(exchange)为监控数据(monitor_data),告警模块5只接收警告数据,根据数据警告策略做出告警,并写入数据库6,需查询警告记录时,展示模块3能从数据库6中调出警告记录。为了便于向消息队列服务器1注册订阅和发布,则展示模块3的前端连接有Web端31、Windows客户端32、Mac客户端33、Android客户端34、iphone客户端35中的至少一种,用于展示从数据库6中调出的历史记录、警告记录。
以上实施方式只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人了解本发明的内容并加以实施,并不能以此限制本发明的保护范围,凡根据本发明精神实质所做的等效变化或修饰,都应涵盖在本发明的保护范围内。