一种应用进程的监控方法和系统
技术领域
本发明涉及信息交互技术领域,尤其涉及一种应用进程的监控方法和系统。
背景技术
目前,在信息交互系统中,监控模块对其他应用模块,例如广播模块,存在两种监控模式,一种是在系统层面的,一种是在应用层面的。
系统层面上,监控模块通过扫描系统的进程表,来判断相应的应用进程是否存在,如果不存在,则重启该应用。但这里存在一种情况,即应用进程在进程表中仍然存在,但是实际上该应用已经不能正常工作,从而无法达到监控的目的。也就是说只监控系统中的应用模块在不在,如果不在的话就会重启,但好多时候是应用模块存在,而其内部已经出现问题,不能正常完成工作,这时候监控模块是不能监控到的。
应用层面上,在信息交互系统中,某个业务网络端口会被多个应用抢用,当业务网络端口与应用绑定后,通过TCP/IP协议发送信息,会导致中央控制装置中的监控模块无法通过该业务网络端口发送信息来获取其他应用(广播模块)的运行状态。也就是说,目前很多监控模块的软件是基于TCP/IP协议,通过向应用模块发送心跳包来侦测应用模块运行状态,这种方式容易对系统中别的应用模块产生影响,比如,当系统中运行的另一个应用模块也绑定同一个的端口来收发消息时,这时候两个应用模块就会产生冲突,从而达不到监控的目的。
而且目前很多的监控模块仅针对特定的程序,可扩展性很差,当系统中出现新的需要监控的应用模块时,就要做很大的修改。
发明内容
本发明的目的在于克服现有技术的缺点和不足,提供一种应用进程的监控方法和系统,能够分别从业务层级和系统层级对应用模块进行监控,增加了系统的稳定性。
本发明的一个实施例提供了一种应用进程的监控方法,适用于信息交互系统,包括以下步骤:
监控模块设定过滤器;
过滤器选定待监控应用对应的端口;
监控模块在网卡处抓取所述端口发出的信息包;
如果监控模块收到所述端口发出的信息包,则监控模块判断所述应用运行正常,如果监控模块没有收到所述端口发出的信息包,则监控模块判断所述应用运行不正常。
优选地,监控模块采用WinPcap工具设定过滤器。
优选地,所述待监控应用是广播模块。
优选地,还包括以下步骤:
在系统层,监控模块扫描应用进程表;
如果所述应用进程表中有待监控应用,则监控模块判断所述应用运行正常,如果所述应用进程表中没有待监控应用,则监控模块判断所述应用运行不正常。
优选地,还包括以下步骤:
如果监控模块判断所述应用运行不正常,监控模块向启动模块发出指令,启动模块重新启动所述应用。
本发明的另一个实施例提供了一种应用进程的监控系统,适用于信息交互系统,包括监控模块和应用模块,其中,监控模块进一步包括过滤器,
监控模块用于设定过滤器,过滤器选定待监控应用模块对应的端口,在网卡处抓取所述端口发出的信息包,如果监控模块收到所述端口发出的信息包,则监控模块判断所述应用模块运行正常,如果监控模块没有收到所述端口发出的信息包,则监控模块判断所述应用模块运行不正常;
应用模块用于发送信息包。
优选地,所述监控模块采用WinPcap工具设定过滤器。
优选地,所述待监控应用是广播模块。
优选地,监控模块还用于在系统层,扫描应用进程表;如果所述应用进程表中有待监控应用模块,则监控模块判断所述应用模块运行正常,如果所述应用进程表中没有待监控应用模块,则监控模块判断所述应用模块运行不正常。
优选地,还包括启动器,监控模块还用于如果监控模块判断所述应用模块运行不正常,向启动模块发出指令;
启动器用于重新启动所述应用模块。
本发明由于采用了特有的两层结构,分别从业务层级及系统层级对目标程序进行监控,更增加了系统的稳定性;同时操作采用特定的命令,便于扩展,任何第三方软件想控制应用模块都可以通过向启动器发送特定指令来完成。此外如果增加要监控的应用模块,也比较容易扩展,监控模块只负责处理监控,启动、重启等操作都通过向启动器发送指令来实现。
附图说明
图1为本发明实施例提供的应用进程监控流程图;
图2为本发明实施例提供的应用进程监控系统结构示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行详细描述。但本发明的实施方式不限于此。
图1为本发明实施例提供的应用进程监控流程图。如图1所示,该流程适用于信息交互系统,包括以下步骤:
步骤101、监控模块对广播模块开始进行监控。
步骤102、监控模块采用WinPcap工具设定过滤器。
其中WinPcap工具是用于网络封包抓取的一套工具,可适用于32位的操作平台上解析网络封包,包含了核心的封包过滤、一个底层动态链接库、一个高层系统函数库,及可用来直接存取封包的应用程序界面。
步骤103、过滤器选定广播模块对应的端口,例如端口8883。
步骤104、监控模块在网卡处抓取该端口发出的信息包。
步骤105、如果监控模块收到该端口发出的信息包,则监控模块判断广播模块运行正常,并转至步骤106、如果监控模块没有收到该端口发出的信息包,则监控模块判断广播模块运行不正常,并转至步骤108。
步骤106、在系统层,监控模块扫描应用进程表。
步骤107、如果应用进程表中有广播模块应用,则监控模块判断广播模块运行正常,如果应用进程表中没有广播模块应用,则监控模块判断广播模块运行不正常,并转至步骤108。
步骤108、监控模块向启动模块发出指令,启动模块重新启动广播模块。
为了实现上述流程,本发明的一个实施例提供了一种应用进程监控系统。图2为本发明实施例提供的应用进程监控系统结构示意图。如图2所示,该系统适用于信息交互系统,包括监控模块20、广播模块30和启动器40,其中,监控模块进一步包括过滤器201。
监控模块采用WinPcap工具设定过滤器,过滤器选定广播模块对应的端口,在网卡处抓取该端口发出的信息包,如果监控模块收到该端口发出的信息包,则监控模块判断广播模块运行正常,如果监控模块没有收到该端口发出的信息包,则监控模块判断广播模块运行不正常。
监控模块还在系统层扫描应用进程表,如果应用进程表中有广播模块应用,则监控模块判断广播模块运行正常,如果应用进程表中没有广播模块应用,则监控模块判断广播模块运行不正常。
监控模块还用于如果监控模块判断广播模块运行不正常,向启动模块发出指令。
应用模块用于发送信息包。
启动器用于重新启动广播模块。
本发明技术方案中,监控模块从业务层级监控目标程序广播模块。通过程序中WinPcap工具设定过滤器,绕过TCP/IP协议,直接在网卡处抓取广播模块发出的信息包,避免了系统中侦听相同端口软件之间的冲突。
监控模块并从系统层级监控启动器,通过扫描进程表监测启动器的运行状态。当发现目标程序广播模块运行不正常时,向启动器发送特定指令已启动目标程序。
启动器则从系统层级监测目标程序广播模块,通过扫描进程表判断目标程序广播模块的运行状态。同时启动器接收第三方(包括监控模块及系统中的其他部分)发来的指令,启动、重启、停止目标程序。
由于采用了特有的两层结构,分别从业务层级及系统层级对目标程序进行监控,更增加了系统的稳定性;同时操作采用特定的命令,便于扩展,任何第三方软件想控制应用模块都可以通过向启动器发送特定指令来完成。此外如果增加要监控的应用模块,也比较容易扩展,监控模块只负责处理监控,启动、重启等操作都通过向启动器发送指令来实现。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。