CN101309148B - 一种软件看门狗系统 - Google Patents
一种软件看门狗系统 Download PDFInfo
- Publication number
- CN101309148B CN101309148B CN2008100681197A CN200810068119A CN101309148B CN 101309148 B CN101309148 B CN 101309148B CN 2008100681197 A CN2008100681197 A CN 2008100681197A CN 200810068119 A CN200810068119 A CN 200810068119A CN 101309148 B CN101309148 B CN 101309148B
- Authority
- CN
- China
- Prior art keywords
- service
- message
- monitored
- watchdog system
- handling device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种软件看门狗系统,其主要包括看门狗配置文件模块,用于存储记录有所述看门狗系统自身端口和多个被监控服务的属性信息的配置文件;定时发送器,用于定时向所述各个被监控服务发送探询消息;消息处理器,用于处理来自所述各个被监控服务的服务消息;内部通信接口模块,用于接收来自所述被监控服务的服务消息,将该服务消息发送至所述消息处理器;服务属性管理器,用于读取所述配置文件中的属性信息,根据该属性信息在所述定时发送器和消息处理器中注册各个被监控服务;及看门狗客户端接口模块,用于存储被监控服务要调用的消息处理方法。本发明通过对配置文件进行添加或修改或删除,可以对多个服务实现监控。
Description
技术领域
本发明涉及用于监控服务或业务运行的软件看门狗系统,具体涉及一种软件看门狗系统。
背景技术
看门狗系统广泛应用于硬件和软件当中,看门狗系统本身不是用来解决系统出现的问题,加入看门狗系统的目的是,对于一些程序的潜在错误和恶劣环境干扰等因素而导致的系统死机、且在无人干预的情况下能自动恢复系统正常工作状态。随着计算机和互联网的高速发展,各应用服务和互联网业务的使用也越来越广泛,而这些服务是需要一直提供服务的,这是就需要使用看门狗系统保证其能长期稳定可靠的运行。通常情况下,由于应用系统和业务系统的多样性,各主机上安装的应用系统和业务系统个数和类型也千差万别,有的只需安装一两个,有的则安装四五个,若每个服务都使用一个看门狗软件系统,那么有的机器上需安装一两个看门狗,有的则安装四五个看门狗,这样就在一定程度上、极大地浪费了资源。
因此,现有技术中存在需要改进之处。
发明内容
本发明的目的在于提供一种通用灵活的软件看门狗系统,其实现了任意多个服务使用一个看门狗系统的功能,只需通过修改看门狗的相关配置文件,就可以在看门狗系统自身的程序无需作任何变化的情况下,同时监控多个服务。
为了实现上述目的,本发明采用如下技术方案:
本发明提供了一种软件看门狗系统,所述看门狗系统包括:
看门狗配置文件模块,用于存储记录有所述看门狗系统自身端口和多个被监控服务的属性信息的配置文件;
定时发送器,用于定时向所述各个被监控服务发送探询消息;
消息处理器,用于处理来自所述各个被监控服务的服务消息;
内部通信接口模块,用于接收来自所述被监控服务的服务消息,将该服务消息发送至所述消息处理器;
服务属性管理器,用于读取所述配置文件中的属性信息,根据该属性信息在所述定时发送器和消息处理器中注册各个被监控服务;及
看门狗客户端接口模块,用于存储被监控服务要调用的消息处理方法,并在监听到来自所述看门狗系统的消息时,由被监控服务调用相应的消息处理方法向所述看门狗系统发送服务消息。
其中,所述服务属性管理器中存储有一策略表,该表记录有服务主题、服务消息的类型、以及与服务消息类型相对应的处理策略三者之间的对应关系,所述处理策略和服务消息的类型送至所述消息处理器中进行注册。
其中,所述注册过程是:根据所述属性信息中关于被监控服务的服务主题,在所述消息处理器和所述定时发送器内生成多个分别与所述各个被监控服务一一对应的映射对象。
其中,所述内部通信接口模块包括:
消息收集器,用于收集所述服务消息,将收集的服务消息按顺序送至消息分发器;及
消息分发器,用于根据所述服务消息对应的被监控服务,将所述服务消息发送至在所述消息处理器内与该被监控服务相对应的映射对象。
其中,所述消息处理器的一信息接口与所述内部通信接口模块相连,该信息接口用于在所述消息处理器生成多个所述映射对象时,将所述映射对象的标示传送给所述内部通信接口模块。
其中,所述消息分发器中设置有一关系表,该表用于记录所述被监控服务、所述服务主题以及在所述消息处理器内映射对象的标示三者之间的一一对应关系。
其中,所述看门狗系统还包括:多个分别与所述多个被监控服务相对应的计数单元,与一被监控服务相对应的计数单元用于记录该被监控服务未响应的所述探询消息的个数,并在该个数达到一限值时,使所述消息处理器中相应的映射对象对该被监控服务执行操作。
其中,所述被监控服务的属性信息至少包括:用于向被监控服务发送消息的通信端口、服务主题、基础的命令行语句、和探询间隔。
其中,所述处理策略包含:停止服务、重启服务、杀死进程、执行命令行语句中的一种或多种。
其中,所述服务消息的类型包括:回复所述探询消息的消息、各种级别的错误消息、或各种级别的命令消息。
从上述技术方案可以看出,通过对配置文件进行添加或修改或删除,可以对多个服务实现监控,当服务出现问题时,会根据处理策略或服务自身发送的命令消息执行相应的操作,从而保证服务的正常稳定的运行。无需再为每个服务提供特别的看门狗工具,节省了主机资源,也简化的安装查看时的繁琐性。新增服务的时候,也减少了实现时的负担,无需再为其实现一个看门狗系统,只需在原有看门狗系统的配置文件中新增一个服务项即可。
附图说明
图1为本发明的系统结构示意图;
图2为本发明的工作流程图;
图3为本发明的工作流程图。
具体实施方式
以下将结合附图详细描述本发明的技术方案。
如图1所示,本发明所提供的软件看门狗系统主要包括以下几个部件:
(1)看门狗配置文件模块210,其中包含:记录有看门狗系统自身端口和多个被监控服务(即图1中的服务1,服务2,...,服务n)的属性信息的配置文件,该配置文件在看门狗系统中启到关键的作用。此配置文件中的属性信息至少包括:用于向被监控服务发送消息的通信端口、服务主题、基础的命令行语句、和探询间隔,其还可以包括:重试次数、服务名称等等。这里的探询间隔用于提供给定时发送器230作为定时发送探询消息的依据,所述服务主题用于提供给定时发送器230和消息处理器240作为注册多个被监控服务的依据,每一个被监控服务有一个作为服务主题的信息存储在配置文件中,便于区分其他被监控服务。
(2)服务属性管理器220,用于读取所述配置文件中的属性信息,根据该属性信息在所述定时发送器230和消息处理器240中注册各个被监控服务,这里所说的注册的目的是:将各个被监控服务的属性信息中相应的信息登记在定时发送器230和消息处理器240中,便于定时发送器230和消息处理器240同时监控多个被监控服务,并并行处理来自多个被监控服务的服务消息。
例如,在定时发送器230中注册多个被监控服务时,可以根据属性信息中的服务主题,在定时发送器230中生成多个分别与各个被监控服务一一对应的映射对象,也就是说,根据各自被监控服务的服务主题,在定时发送器230中开辟各自的服务资源,用以同步监控各个被监控服务,且互不干扰地向各个被监控服务发送探询消息。同样地,在消息处理器240中注册多个被监控服务时,也可采用上述方法,其目的是根据各自被监控服务的服务主题,在消息处理器240中开辟各自的服务资源,使得能够同步监控各个被监控服务,且互不干扰地并行处理来自各个被监控服务的各种服务消息。这里的注册通常在初始化看门狗系统时完成。
(3)定时发送器230,用于定时向各个被监控服务发送探询消息。在定时发送器230中注册各个被监控服务时,通常要将相关信息记录下来,比如,建立每一个映射对象与被监控服务的服务主题、探询间隔和通信端口之间的一一对应关系,于是,每一个映射对象就可以按照服务主题和探询间隔的要求,定时利用相应的通信端口向与之对应的被监控服务发送探询消息,从而有条不紊地按各个被监控服务的探询间隔要求,完成探询消息的发送,实现多个被监控服务的同步监控。
(4)消息处理器240,用于处理来自所述各个被监控服务的服务消息。在消息处理器240中注册各个被监控服务时,通常要将相关信息记录下来,比如,建立每一个映射对象与被监控服务的服务主题、通信端口、服务消息的类型、以及与服务消息类型相对应的处理策略之间的一一对应关系,于是,每一个映射对象就可以按照服务主题和服务消息类型查表,获得应对该服务消息的处理策略,并通过相应的通信端口向与之对应的被监控服务发出操作指令,从而有条不紊地按要求完成各个服务消息的处理,实现多个被监控服务的同步监控。这里的服务消息的类型包括:回复所述探询消息的消息、各种级别的错误消息、或各种级别的命令消息、或警告消息等等;而对应的处理策略包含:停止服务、重启服务、杀死进程、执行命令行语句等中的一种或多种。
并且,上述服务消息的类型及其处理策略可以预先存储在服务属性管理器220中,比如,在服务属性管理器220中预先存储有一策略表,该表记录有服务主题、服务消息的类型、以及与服务消息类型相对应的处理策略三者之间的对应关系,然后,由服务属性管理器220将相应的服务消息类型及其处理策略信息连同配置文件中的属性信息一起在消息处理器240中进行注册并保存,为消息处理器240提供服务消息的处理依据。在服务属性管理器220的策略表中还可以包含:被监控服务的服务名称、通信端口、服务的命令行语句等内容。
(5)内部通信接口模块251,用于接收来自所述被监控服务的服务消息,将该服务消息发送至所述消息处理器240。此内部通信接口模块251,属于一个内部通信接口,该接口提供监听端口、接收消息、内部分发消息、对外发送消息等功能。这里的内部通信接口模块251主要包含一个消息收集器和一个消息分发器,其中,消息收集器用于收集来自被监控服务的服务消息,将收集的服务消息按顺序送至消息分发器;而消息分发器用于根据所述服务消息对应的被监控服务,将所述服务消息发送到在所述消息处理器240内的映射对象中,且该映射对象与所述被监控服务相对应。
为了便于消息分发器将服务消息发送至消息处理器240中相应的映射对象,则将消息处理器240的一信息接口与内部通信接口模块251相连,该信息接口用于在消息处理器240生成多个所述映射对象时,将所述映射对象的标示(该标示用于区分不同的映射对象、并映射对象的地址相对应)传送给所述内部通信接口模块251,用以注册相关信息。同时,内部通信接口模块251将相关信息存入所述消息分发器中预先设置的一关系表中,该表用于记录所述被监控服务、所述服务主题以及在所述消息处理器内映射对象的标示三者之间的一一对应关系。然后,当内部通信接口模块251获得服务消息后,解析服务消息,并根据其中包含的服务主题查找相应的消息处理器240内的映射对象地址,并将该服务消息发送至该映射对象地址,进行处理。
(6)看门狗客户端接口模块252,如图1所示,其用于存储被监控服务要调用的消息处理方法,并在监听到来自所述看门狗系统的消息时,由被监控服务调用相应的消息处理方法向所述看门狗系统发送服务消息,其包括:回复所述探询消息的消息、各种级别的错误消息、或各种级别的命令消息、或警告消息等等。该看门狗客户端接口模块包含在看门狗系统中,但是看门狗不使用,而由被监控服务来使用,主要提供接收/监听来自看门狗系统的消息、发送探询回复消息、发送各种级别的错误消息和命令消息等功能。
在看门狗系统开始工作时,存在一个程序初始化的过程,在程序初始化时,服务属性管理器220会读取配置文件中各个被监控服务的属性信息及看门狗系统的端口信息,在对看门狗系统各端口进行初始化的同时,由服务属性管理器220去消息处理器240和定时发送器230中为各个被监控服务注册,生成多个上述映射对象,然后,消息处理器240再去内部通信接口251中进行自身注册,建立相应的对应关系,具体上述结构以进行了相应的说明,在此不再重复说明。
而在各被监控服务的系统中,则直接使用看门狗客户端接口模块252,其只需增加实现一个接收到探询消息后对该消息进行处理的方法,比如往自身的主流程中放一个模拟任务或者给自己的服务端口发送模拟报文等等。如果主流程工作正常,则调用接口用现有的方法返回探询回复消息,被监控服务还可以在某些需要特殊处理的环节调用接口中现成的方法发送命令消息或错误消息给看门狗系统。启动各个被监控服务的时候,同时启动看门狗客户端接口,当该接口收到消息的时候,会根据服务自身实现的消息处理方法执行,从而反馈给看门狗系统不同消息。
可见,本发明提供了一种通用的看门狗系统,其通过设置一个看门狗配置文件,而实现了在监控多个服务时,只需使用一个看门狗系统,相对于现有技术而言,节约了资源。如果需要增加新的服务项,可直接在配置文件中新增一个服务项。以下详细描述看门狗系统的工作原理。
如图2所示,看门狗系统同时监控各个被监控服务的过程如下:
步骤一,看门狗系统的定时发送器根据各个被监控服务的属性信息(如服务主题、端口等)组织信息包,发送探询信息给各个服务(1,2,...,n),同时将计数器加1,用以记录下未受到响应的探询消息的个数,即发送未受到响应的次数,这里的计数器的目的是记录下被监控服务未受到响应的探询消息的个数,并令看门狗系统及时发现服务未响应,而执行必要的保护措施,比如关闭重起等等;如图1所示,此计数器可以是一个采用看门狗的内硬件计数器或其他硬件/软件组合构成的计数单元,此计数单元有多个,其分别与所述多个被监控服务相对应,且保证消息处理器中的每一个映射对象对应有一个计数器,与某一被监控服务相对应的计数单元用于记录该被监控服务未响应的探询消息个数,并在该个数达到一限值时(此限值可以预先记录在配置文件中,即属性信息中的重试次数),使所述消息处理器中相应的映射对象对该被监控服务执行操作;
步骤二,看门狗客户端接口模块监听来自看门狗系统的消息,然后对应的某一服务i(i=1,2,...,n)调用看门狗客户端接口模块中的消息处理方法;
步骤三,如果服务i运行正常,会调用看门狗客户端接口模块提供的探询消息回复的方法,给看门狗系统发送回复消息,一旦消息处理器收到该回复消息时,令对应此服务i的计数器清0,并重新等待计数;
如果服务i运行出错,则不会发送回复消息或发送错误消息;
步骤四,看门狗系统的内部通信接口模块收到来自服务i的服务消息,则将该消息放入消息收集器,然后由消息分发器将该消息放入与该被监控服务相对应的消息处理器映射对象中,消息处理器根据该服务属性管理器所提供的策略,对此消息进行处理,
若是针对探询消息的回复消息,则将服务i对应的计数器清零,即将发送未受到响应的次数清零;
若是命令消息,则执行该命令;
若是错误消息,则根据错误级别执行相应操作;
步骤五,到达服务属性中的探询间隔后,看门狗系统继续向服务i发送一个探询消息,同时令计数器加1,即未受到响应的次数加1;
步骤六,当计数器中记录的未受到响应的次数达到服务i对应的配置文件属性信息中的重试次数时,说明该服务一直没响应,则看门狗系统中消息处理单元根据配置的服务策略对服务i执行相应的操作,比如关闭重启等等;
此时,一个看门狗系统发送探询消息的流程完毕。
如图3所示,被监控服务主动发送服务消息的处理流程:
步骤一,被监控服务主动调用看门狗客户端接口模块提供的发送各类消息的消息处理方法,比如命令消息,错误消息等;
步骤二,看门狗系统的内部通信接口模块收到该消息,将该消息放入消息收集器,消息分发器将该消息放入对应与该服务的消息处理器映射对象中,其根据该服务属性管理器的处理策略,对该消息进行处理,若是命令消息,则执行该命令;若是错误消息,则根据错误级别执行相应操作;
此时,一个被监控服务主动发送消息的流程完毕。
综上所述,本发明提供的看门狗系统利用配置文件,进行对任意多个服务的监控,在服务于不同业务系统和应用系统的主机上,完全可以通过一个本发明的看门狗系统来完成对的所有服务项目的监控,极大的节约了资源。
上述各具体步骤的举例说明较为具体,并不能因此而认为是对本发明的专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。
Claims (9)
1.一种软件看门狗系统,其特征在于,所述看门狗系统包括:
看门狗配置文件模块,用于存储记录有所述看门狗系统自身端口和多个被监控服务的属性信息的配置文件;
定时发送器,用于定时向所述各个被监控服务发送探询消息;
消息处理器,用于处理来自所述各个被监控服务的服务消息;
内部通信接口模块,用于接收来自所述被监控服务的服务消息,将该服务消息发送至所述消息处理器;
服务属性管理器,用于读取所述配置文件中的属性信息,根据该属性信息在所述定时发送器和消息处理器中注册各个被监控服务;及
看门狗客户端接口模块,用于存储被监控服务要调用的消息处理方法,并在监听到来自所述看门狗系统的消息时,由被监控服务调用相应的消息处理方法向所述看门狗系统发送服务消息;
所述被监控服务的属性信息至少包括:用于向被监控服务发送消息的通信端口、服务主题、基础的命令行语句、和探询间隔。
2.根据权利要求1所述的看门狗系统,其特征在于,所述服务属性管理器中存储有一策略表,该表记录有服务主题、服务消息的类型、以及与服务消息类型相对应的处理策略三者之间的对应关系,所述处理策略和服务消息的类型送至所述消息处理器中进行注册。
3.根据权利要求1或2所述的看门狗系统,其特征在于,所述注册过程是:根据所述属性信息中关于被监控服务的服务主题,在所述消息处理器和所述定时发送器内生成多个分别与所述各个被监控服务一一对应的映射对象。
4.根据权利要求3所述的看门狗系统,其特征在于,所述内部通信接口模块包括:
消息收集器,用于收集所述服务消息,将收集的服务消息按顺序送至消息分发器;及
消息分发器,用于根据所述服务消息对应的被监控服务,将所述服务消息发送至在所述消息处理器内与该被监控服务相对应的映射对象。
5.根据权利要求4所述的看门狗系统,其特征在于,所述消息处理器的一信息接口与所述内部通信接口模块相连,该信息接口用于在所述消息处理器生成多个所述映射对象时,将所述映射对象的标示传送给所述内部通信接口模块。
6.根据权利要求5所述的看门狗系统,其特征在于,所述消息分发器中设置有一关系表,该表用于记录所述被监控服务、所述服务主题以及在所述消息处理器内映射对象的标示三者之间的一一对应关系。
7.根据权利要求3所述的看门狗系统,其特征在于,所述看门狗系统还包括:多个分别与所述多个被监控服务相对应的计数单元,与一被监控服务相对应的计数单元用于记录该被监控服务未响应的探询消息个数,并在该个数达到一限值时,使所述消息处理器中相应的映射对象对该被监控服务执行操作。
8.根据权利要求2所述的看门狗系统,其特征在于,所述处理策略包含:停止服务、重启服务、杀死进程、执行命令行语句中的一种或多种。
9.根据权利要求1或2所述的看门狗系统,其特征在于,所述服务消息的类型包括:回复所述探询消息的消息、各种级别的错误消息、或各种级别的命令消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100681197A CN101309148B (zh) | 2008-06-24 | 2008-06-24 | 一种软件看门狗系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100681197A CN101309148B (zh) | 2008-06-24 | 2008-06-24 | 一种软件看门狗系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101309148A CN101309148A (zh) | 2008-11-19 |
CN101309148B true CN101309148B (zh) | 2010-09-29 |
Family
ID=40125384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100681197A Active CN101309148B (zh) | 2008-06-24 | 2008-06-24 | 一种软件看门狗系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101309148B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996106B (zh) * | 2010-12-17 | 2012-12-05 | 南京中兴力维软件有限公司 | 一种对软件运行状态进行监控的方法 |
CN102436397B (zh) * | 2011-10-13 | 2014-09-24 | 上海洲信信息技术有限公司 | 一种基于windows服务控制器的系统自动运行方法 |
CN102495767A (zh) * | 2011-11-30 | 2012-06-13 | 凯迈(洛阳)电子有限公司 | 一种用于电池监视器的双看门狗系统 |
CN103580941B (zh) * | 2012-08-01 | 2018-01-30 | 研祥智能科技股份有限公司 | 网络看门狗及其实现方法 |
CN104932964A (zh) * | 2014-03-17 | 2015-09-23 | 无锡天脉聚源传媒科技有限公司 | 一种计算机功能程序的监控处理方法和装置 |
CN104199753B (zh) * | 2014-09-04 | 2018-05-29 | 中标软件有限公司 | 一种虚拟机应用服务故障恢复系统及其故障恢复方法 |
-
2008
- 2008-06-24 CN CN2008100681197A patent/CN101309148B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101309148A (zh) | 2008-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101309148B (zh) | 一种软件看门狗系统 | |
KR101970054B1 (ko) | 클라우드 서버를 스케줄링하는 방법 및 장치 | |
CN102035696B (zh) | 一种网站访问性能监测方法、装置及系统 | |
CN101876883B (zh) | 保持虚拟机器的远程操作不中断的方法 | |
CN101594376B (zh) | 向cimom注册cim提供器的方法和相应的装置 | |
CN103095758B (zh) | 一种分布式文件系统及该系统中处理文件数据的方法 | |
WO2011133299A2 (en) | Automated recovery and escalation in complex distributed applications | |
CN105450618A (zh) | 一种api服务器处理大数据的运算方法及其系统 | |
CN103024028B (zh) | 一种云计算中虚拟机ip地址探测系统及方法 | |
CN109361525B (zh) | 重启分布式部署多服务的方法、装置、控制终端及介质 | |
CN110213309A (zh) | 一种绑定关系管理的方法、设备及存储介质 | |
CN100499590C (zh) | 一种报文的访问控制方法及一种网络设备 | |
CN106027356A (zh) | 一种隧道标识的转换方法及装置 | |
CN106411742A (zh) | 一种报文传输的方法和装置 | |
CN101325553A (zh) | Iscsi数据穿越nat的方法和内网存储系统 | |
CN100498697C (zh) | 一种应用编程接口控制方法和控制功能模块 | |
US8972604B1 (en) | Network address retention and assignment | |
WO2024077930A1 (zh) | 服务访问方法及装置、存储介质及电子设备 | |
CN104702469A (zh) | 监控网络数据的方法、实体机虚拟设备及网络系统 | |
CN102023997A (zh) | 一种数据查询系统及其构建方法与相应的数据查询方法 | |
CN114185804A (zh) | 一种接口测试方法、装置及终端设备 | |
CN101656722A (zh) | 动态主机配置协议窥探绑定信息的生成方法与装置 | |
CN114153583A (zh) | 任务状态管理方法、任务管理系统和任务调用系统 | |
US9860347B2 (en) | Data transfer method and apparatus | |
CN103810136A (zh) | 计算机集群、用于计算机集群的管理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |