发明内容
本发明提供了一种混合结构的告警处理方法及设备,以增强归档、查阅的告警业务的效率。
本发明提供了一种混合结构的告警处理方法,应用于包括中心管理服务器、前端单元和客户端单元的系统中,所述方法包括以下步骤:
所述中心管理服务器配置告警事件与组播地址的对应关系;
所述中心管理服务器向所述前端单元发送告警事件订阅消息,所述订阅消息中携带告警事件与对应的组播地址,使所述前端单元将采集的告警事件生成组播报文,发送给加入所述组播地址所在组播组中的客户端单元。
其中,所述发送给加入所述组播地址所在组播组中的客户端单元,之前还包括:
所述客户端单元加入组播组,具体包括:
所述中心管理服务器接收所述客户端单元发送的注册请求,根据所述注册请求中的用户名、本地设置的用户名与业务权限等级的第一对应关系、业务权限等级与需要订阅的前端单元及告警事件的第二对应关系,确定需要订阅的前端单元及告警事件;
所述中心管理服务器向所述客户端单元返回注册响应消息,携带告警事件与对应的组播地址、及需要订阅的前端单元标识;使所述客户端单元建立包括需要订阅的前端单元标识、告警事件、组播地址和组播端口的对应关系表,并通过所述组播端口向所述组播地址所在组播组发送加入消息,以加入所述组播组。
其中,还包括:
如果所述用户名对应的业务权限等级发生更改,所述中心管理服务器则对客户端单元的接收告警权限进行更改,向所述客户端单元发送通知消息,修改更新的告警事件对应的组播地址。
其中,所述使前端单元将采集的告警事件生成组播报文,发送加入所述组播地址所在组播组中的客户端单元,具体包括:
所述前端单元接收所述订阅消息,根据所述订阅消息中告警事件与对应的组播地址建立转发表,所述转发表中包括:告警事件类型、告警实时组播目的地址、告警实时组播目的端口;
所述前端单元将采集的告警事件生成组播报文,通过所述告警实时组播目的端口,发送给告警实时组播目的地址对应的客户端单元。
其中,所述加入组播组之后,还包括:
通过所述组播端口向所述组播地址所在组播组发送离开消息,以离开所述组播组。
其中,还包括:
所述订阅消息中还携带所述中心管理服务器的地址,使所述前端单元通过TCP报文和端口将告警事件通告给所述中心管理服务器归档。
其中,所述订阅消息中携带告警事件与对应的组播地址,具体为:将告警实时组播目的地址填充为所述对应关系中的组播地址;所述订阅消息中还携带所述中心管理服务器的地址,具体为:将告警存档TCP目的地址填充为所述中心管理服务器的地址。
其中,所述中心管理服务器向所述前端单元发送订阅消息,具体包括:
所述中心管理服务器通过组播或单播向所述前端单元发送订阅消息。
本发明还提供了一种中心管理服务器,包括:
配置模块,用于配置告警事件类型与组播地址的对应关系;
处理模块,用于向所述前端单元发送告警事件订阅消息,所述订阅消息中携带告警事件与对应的组播地址,使所述前端单元将采集的告警事件生成组播报文,发送给加入所述组播地址所在组播组中的客户端单元。
其中,
注册请求接收模块,用于接收所述客户端单元发送的注册请求,根据所述注册请求中的用户名、本地设置的用户名与业务权限等级的第一对应关系、业务权限等级与需要订阅的前端单元的第二对应关系,确定需要订阅的前端单元及告警事件;
注册响应发送模块,用于向所述客户端单元返回注册响应消息,携带告警事件与对应的组播地址、及需要订阅的前端单元标识;使所述客户端单元建立包括需要订阅的前端单元标识、告警事件、组播地址和组播端口的对应关系表,并通过所述组播端口向所述组播地址所在组播组发送加入消息,以加入所述组播组。
其中,所述注册请求接收模块,还用于用户业务等级发生更改时,向所述客户端单元发送通知消息,修改更新的告警事件类型对应的组播组地址。
其中,
所述处理模块,还用于在订阅消息中携带所述中心管理服务器的地址,使所述前端单元通过TCP报文和端口将告警事件通告给所述中心管理服务器归档。
本发明还提供了一种信息采集装置,包括:
接收模块,用于接收所述中心管理服务器发送的告警事件订阅消息;
组播报文发送模块,用于根据所述订阅消息中告警事件与对应的组播地址建立转发表,所述前端单元将采集的告警事件生成组播报文,发送给加入所述组播地址所在组播组中的客户端单元。
其中,还包括:
归档模块,用于通过所述订阅消息中的TCP报文和端口将告警事件通告给所述中心管理服务器归档。
本发明还提供了一种用户设备,包括:
注册模块,用于向中心管理服务器发送注册请求,所述注册请求中携带用户名;
注册响应接收模块,用于接收中心管理服务器的注册响应消息,所述注册响应消息携带告警事件与对应的组播地址、及需要订阅的前端单元标识;
表项维护模块,与所述注册响应接收模块连接,用于建立包括需要订阅的前端单元标识、告警事件、组播地址和组播端口的对应关系表;
组播处理模块,与所述表项维护模块连接,用于通过所述组播端口向所述组播地址所在组播组发送加入消息,以加入所述组播组。
其中,
所述表项维护模块,还用于该用户业务等级发生更改,接收所述中心管理服务器发送的通知消息,修改更新的告警事件对应的组播组地址。
其中,所述组播处理模块,还用于通过所述组播端口向所述组播地址所在组播组发送离开消息,以离开所述组播组。
与现有技术相比,本发明具有以下优点:
本发明中,将原有监控告警系统的星形网络结构,重构为实时告警事件组播发送的全网状结构和归档告警事件的星形结构,在继承原有告警事件和告警权限统一管理、统一存储的特点上,一方面降低CMS的告警分发压力、保证其他监控业务处理的可靠性;一方面减少CMS的分发时间、增加告警消息的及时性、整个告警系统的可靠性。
具体实施方式
本发明的核心思路是:通过CMS向PU发送告警事件订阅消息,使PU将告警事件通过特定的组播报文和端口实时地通告给CU,通过特定的TCP报文和端口通告给CMS归档;CMS根据CU用户对应的业务权限等级和业务相关PU,确定该用户需要订阅哪些PU的哪些告警事件对应的组播组地址;如果该用户业务等级发生更改,CMS则需要对该CU的接收告警权限进行更改,向CU发送通知消息,修改更新告警事件对应的组播组地址。
本发明将原有视频监控系统的星形网络结构,重构为实时告警事件组播发送的全网状结构和归档告警事件的星形结构,在继承原有告警事件和告警权限统一管理、统一存储的特点上,一方面降低CMS的告警分发压力、保证其他监控业务处理的可靠性;一方面减少CMS的分发时间、增加告警消息的及时性、整个告警系统的可靠性。
本发明提供了一种混合结构的告警方法,应用于包括中心管理服务器、前端单元和客户端单元的系统中,该方法如图3所示,包括以下步骤:
步骤301,所述中心管理服务器配置告警事件与组播地址的对应关系。
步骤302,所述中心管理服务器向所述前端单元发送告警事件订阅消息,所述订阅消息中携带告警事件与对应的组播地址,使所述前端单元将采集的告警事件生成组播报文,发送给加入所述组播地址所在组播组中的客户端单元。
其中,所述发送给加入所述组播地址所在组播组中的客户端单元,之前还包括:所述客户端单元加入组播组,
结合具体应用场景对图3所述原理进行详细说明,具体过程如图4所示,包括以下步骤:
步骤401,CMS为每一类型的告警事件分配一个组播地址,并记录到本地,形成如表1所示的告警事件与组播地址的对应关系;其中,告警事件(AlarmEvent)是告警类型、告警通道名字、告警通道类型、告警通道号、告警对应的视频通道号五个告警相关因素的哈希值。其中,哈希值说明告警事件由五个相关因素唯一表示,其中的任一个因素不同、告警事件也不同,其他表述这种唯一对应关系的说法也可以。
表1:
告警事件2 |
组播地址2 |
...... |
...... |
步骤402,CMS向发生告警事件的PU发送告警事件Subscribe(订阅)消息,该订阅消息中包含订阅的告警消息类型、告警通道名字、告警通道号等告警事件信息;告警事件Subscribe消息通常发生在PU向CMS注册成功之后、由CMS发起;告警事件Subscribe消息也可以以组播的形式向CMS域内所有的PU,订阅所有的同类告警事件;除此之外,该订阅消息中还包括4个字段:告警实时组播目的地址和端口、告警存档TCP目的地址和端口;其中,告警实时组播目的地址填充为表1中CMS为该告警事件分配的组播地址,告警实时组播目的端口为CMS指定的固定端口,一般在一个告警系统内不变;如果CMS期望接收PU的告警消息进行归档,则在告警存档TCP目的地址填充为自己的地址,端口填充为CMS指定的固定端口,一般在一个告警系统内不变;
下面以XML格式描述CMS到PU的Subscrible SIP消息体内容:
<?xml version=″1.0″encoding=″UTF-8″?>
<Message Verison=″1.0″>
<IE_HEADER MessageType=″MSG_SUBSCRIBLE_EXT_ALARM_REQ″
/>
<!-PU列表和相关告警-->
<IE_PU PUID=“PU编号”>
<IE_ALARM_INFO AlarmType=″告警类型″
AlarmChannelName=″告警通道名字″
AlarmChannelType=″告警通道类型″
AlarmChannelNo=″告警通道号″
VIDeoChannelNo=″告警对应的视频通道号″
LiveAlarmMulticastDstAddress=“告警实时组播目的地址”
LiveAlarmMulticastDstPort=″告警实时组播目的端口″
StorageAlarmTCPDstAddress=“告警存档TCP目的地址”
StorageAlarmTCPDstPort=″告警存档TCP目的端口″
/>
</IE_PU>
</Message>
其中,AlarmType为特定的告警类型,AlarmChannelNo为告警通道号,其它参数无意义;如果告警事件订阅消息是以组播形式发送给PU的,则PU编号设置为空。
步骤403,PU接收到来自CMS的Subscrible消息后,在本地建立一个告警事件转发表2,表格内容包括告警事件、告警实时组播目的地址、告警实时组播目的端口、告警存档TCP目的地址、告警存档TCP目的端口;并向CMS回复200OK的SIP响应成功消息;如果失败,则向CMS回复500 Server Failed的SIP服务器响应失败消息。
表2:
告警事件 |
告警实时组播目的地址 |
告警实时组播目的端口 |
告警存档TCP目的地址 |
告警存档TCP目的端口 |
1 |
|
|
|
|
2 |
|
|
|
|
3 |
|
|
|
|
步骤404,CU向CMS发送Register的注册请求,注册消息包含CU的登录用户名称和验证密码(非必须),如有必要则需要对注册请求消息进行加密;
步骤405,CMS对该用户进行安全准入验证,并根据该用户名对应的业务权限等级和业务相关PU,确定该用户需要订阅哪些PU的哪些告警事件(其中,业务权限等级包括:业务级别,例如视频业务丢失等,管理级别,例如设备故障、线路告警等),即获得一个对应关系表:用户名、业务权限等级、业务相关PU名及告警事件类型。具体包括:根据所述注册请求中的用户名、本地设置的用户名与业务权限等级的第一对应关系、业务权限等级与需要订阅的前端单元及告警事件的第二对应关系,确定需要订阅的前端单元及告警事件;
如果验证成功则回复200 OK响应成功;其中,在原有200 OK响应成功消息的基础上增加了消息体内容,告警实时目的组播地址填充为表1中CMS为这些告警事件分配的组播地址,告警实时目的组播端口为CMS指定的固定端口,一般在一个告警系统内不变;具体为:注册响应消息携带告警事件与对应的组播地址、及需要订阅的前端单元标识;使所述客户端单元建立包括需要订阅的前端单元标识、告警事件、组播地址和组播端口的对应关系表,并通过所述组播端口向所述组播地址所在组播组发送加入消息,以加入所述组播组。
下面以XML格式描述CMS到CU的200 OK Ext.或者500 Server Failed的SIP消息体内容:
<?xml version=″1.0″encoding=″UTF-8″?>
<Message Verison=″1.0″>
<IE_HEADER MessageType=″MSG_REGISTER_ALARM_RSP″
/>
<!-PU列表和相关告警-->
<IE_PU PUID=“PU编号”>
<IE_PU PUIP=“PU IP地址”>
<IE_ALARM_INFO AlarmType=″告警类型″
AlarmChannelName=″告警通道名字″
AlarmChannelType=″告警通道类型″
AlarmChannelNo=″告警通道号″
VIDeoChannelNo=″告警对应的视频通道号″
LiveAlarmMulticastDstAddress=“告警实时组播目的地址”
LiveAlarmMulticastDstPort=″告警实时组播目的端口″
/>
</IE_PU>
</Message>
说明,AlarmType为特定的告警类型,AlarmChannelNo为告警通道号,其它参数无意义。
步骤406,CU接收到来自CMS的200 OK Ext.响应成功消息后,在本地建立一个告警事件接收表3,表格内容包括PU ID、PU源IP、告警事件、告警实时组播地址、告警实时组播端口;并向指定的组播地址和指定的组播源(产生告警的PU)发送IGMPv3加入消息,并打开指定的组播端口接收相应的告警事件。传输网络支持PIM SSM协议,根据CU发送的IGMPv3建立组播SSM转发表项。
表3:
PU ID |
PU源IP |
告警事件 |
告警实时组播地址 |
告警实时组播端口 |
|
|
1 |
|
|
|
|
2 |
|
|
|
|
3 |
|
|
步骤407,如果PU产生一个告警事件,根据表2,向CMS发送基于TCP的NOTIFY SIP通知消息,其中TCP的目的地址和端口号根据表2建立。
下面以XML格式描述PU到CMS的NOTIFY SIP通知消息体内容:
<?xml version=″1.0″encoding=″UTF-8″?>
<Message Verison=″1.0″>
<IE_HEADER MessageType=″MSG_ALARM_NOTIFY_REQ″
/>
<IE_ALARM_INFO AlarmType=″告警类型″
AlarmChannelName=″告警通道名字″
AlarmChannelType=″告警通道类型″
AlarmChannelNo=″告警通道号″
VIDeoChannelNo=″告警对应的视频通道号″
UserData=″告警描述″
/>
<IE_TIME
Year=″N″
Month=″N″
Day=″N″
Hour=″N″
Minute=″N″
Second=″N″
/>
</Message>
说明,AlarmType为特定的告警类型,AlarmChannelNo为告警通道号,其它参数无意义。
步骤408,如果PU产生一个告警事件,根据表2,向CU发送基于UDP(User Datagram Protocol,用户数据报协议)的组播NOTIFY SIP通知消息,其中组播目的地址和端口号根据表2建立。
下面以XML格式描述PU到CMS的NOTIFY SIP通知消息体内容:
<?xml version=″1.0″encoding=″UTF-8″?>
<Message Verison=″1.0″>
<IE_HEADER MessageType=″MSG_ALARM_NOTIFY_REQ″
/>
<IE_ALARM_INFO AlarmType=″告警类型″
AlarmChannelName=″告警通道名字″
AlarmChannelType=″告警通道类型″
AlarmChannelNo=″告警通道号″
VIDeoChannelNo=″告警对应的视频通道号″
UserData=″告警描述″
/>
<IE_TIME
Year=″N″
Month=″N″
Day=″N″
Hour=″N″
Minute=″N″
Second=″N″
/>
</Message>
说明,AlarmType为特定的告警类型,AlarmChannelNo为告警通道号,其它参数无意义。
步骤409,如果该用户业务等级发生更改,CMS则需要对该CU的接收告警权限进行更改,发送NOTIFY的SIP消息,修改更新的告警事件对应的组播组地址、以及更新的PU列表;其中,消息体内容包括,告警实时目的组播地址填充为表1中CMS为这些告警事件分配的组播地址,告警实时目的组播端口为CMS指定的固定端口,一般在一个告警系统内不变;
下面以XML格式描述CMS到CU的200 OK Ext.或者500 Server Failed的SIP消息体内容:
<?xml version=″1.0″encoding=″UTF-8″?>
<Message Verison=″1.0″>
<IE_HEADER MessageType=″MSG_NOTIFY_ALARM_REQ″
/>
<!-PU列表和相关告警-->
<IE_PU PUID=“PU编号”>
<IE_PU PUIP=“PU IP地址”>
<IE_ALARM_INFO AlarmType=″告警类型″
AlarmChannelName=″告警通道名字″
AlarmChannelType=″告警通道类型″
AlarmChannelNo=″告警通道号″
VIDeoChannelNo=″告警对应的视频通道号″
LiveAlarmMulticastDstAddress=“告警实时组播目的地址”
LiveAlarmMulticastDstPort=″告警实时组播目的端口″
/>
</IE_PU>
</Message>
说明,AlarmType为特定的告警类型,AlarmChannelNo为告警通道号,其它参数无意义。
步骤410,CU更新本地的表3内容,对于不再接收的组播告警事件需要发送IGMPv3离开消息,对于新接收的组播告警事件需要发送IGMPv3加入消息。成功则回复200 OK的响应成功消息,失败则回复500 Server Failed的响应失败消息。
本发明提供了一种中心管理服务器,如图5所示,包括:
配置模块510,用于配置告警事件类型与组播地址的对应关系;
处理模块520,与配置模块510连接,用于向所述前端单元发送告警事件订阅消息,所述订阅消息中携带告警事件与对应的组播地址,使所述前端单元将采集的告警事件生成组播报文,发送给加入所述组播地址所在组播组中的客户端单元。
注册请求接收模块530,与处理模块520连接,用于接收所述客户端单元发送的注册请求,根据所述注册请求中的用户名、本地设置的用户名与业务权限等级的第一对应关系、业务权限等级与需要订阅的前端单元的第二对应关系,确定需要订阅的前端单元及告警事件;
注册响应发送模块540,与处理模块520连接,用于向所述客户端单元返回注册响应消息,携带告警事件与对应的组播地址、及需要订阅的前端单元标识;使所述客户端单元建立包括需要订阅的前端单元标识、告警事件、组播地址和组播端口的对应关系表,并通过所述组播端口向所述组播地址所在组播组发送加入消息,以加入所述组播组。
注册请求接收模块530,还用于用户业务等级发生更改时,向所述客户端单元发送通知消息,修改更新的告警事件类型对应的组播组地址。
处理模块520,还用于在订阅消息中携带所述中心管理服务器的地址,使所述前端单元通过TCP报文和端口将告警事件通告给所述中心管理服务器归档。
本发明还提供了一种信息采集装置,如图6所示,包括:
接收模块610,用于接收所述中心管理服务器发送的告警事件订阅消息;
组播报文发送模块620,用于根据所述订阅消息中告警事件与对应的组播地址建立转发表,所述前端单元将采集的告警事件生成组播报文,发送给加入所述组播地址所在组播组中的客户端单元。
归档模块630,用于通过所述订阅消息中的TCP报文和端口将告警事件通告给所述中心管理服务器归档。
本发明还提供了一种用户设备,如图7所示,包括:
注册模块710,用于向中心管理服务器发送注册请求,所述注册请求中携带用户名;
注册响应接收模块720,用于接收中心管理服务器的注册响应消息,所述注册响应消息携带告警事件与对应的组播地址、及需要订阅的前端单元标识;
表项维护模块730,与注册响应接收模块720连接,用于建立包括需要订阅的前端单元标识、告警事件、组播地址和组播端口的对应关系表;
组播处理模块740,与表项维护模块730连接,用于通过所述组播端口向所述组播地址所在组播组发送加入消息,以加入所述组播组。
表项维护模块730,还用于该用户业务等级发生更改,接收所述中心管理服务器发送的通知消息,修改更新的告警事件对应的组播组地址。
组播处理模块740,还用于通过所述组播端口向所述组播地址所在组播组发送离开消息,以离开所述组播组。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。