服务监控方法及装置与流程

文档序号:16753764发布日期:2019-01-29 17:08阅读:222来源:国知局
服务监控方法及装置与流程

本发明涉及系统运维领域,具体而言,涉及一种服务监控方法及装置。



背景技术:

为了判断服务(例如,windows下的服务)是否正常运行,防止某些重要服务因意外出现停止运行的情况,对线上服务造成影响,因此,需要对服务是否出现停止进行监控。一般通过名称监控被定义的服务,但在相关技术中,仅仅能够实现一次对一个服务是否出现停止运行进行监控,监控效率低。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种服务监控方法及装置,以至少解决相关技术中,仅仅能够实现一次对一个服务是否出现停止运行进行监控,监控效率低的技术问题。

根据本发明的一个方面,提供了一种服务监控方法,包括:将需要被监控的服务的服务名存放到第一数组中,其中,所述被监控的服务个数为至少两个;将正在运行的服务的服务名存放到第二数组中;判断所述第一数组中存放的服务名与所述第二数组中存放的服务名是否存在差异;在判断结果为是的情况下,对存在差异的服务名进行告警处理。

可选地,将正在运行的服务的服务名存放到所述第二数组中包括:按照预定间隔时间获取所述第一数组中正在运行的服务的服务名;将获取的所述服务名存入预定文件中;将存入所述预定文件中的服务名写入所述第二数组中。

可选地,判断所述第一数组中存放的服务名与所述第二数组中存放的服务名是否存在差异包括:在所述第一数组和所述第二数组均为一维的情况下,判断所述第一数组的长度与所述第二数组的长度是否相同;在判断结果为否的情况下,确定所述第一数组存放的服务名与所述第二数组中存放的服务名存在差异。

可选地,判断所述第一数组中存放的服务名与所述第二数组中存放的服务名是否存在差异包括:在所述第一数组和所述第二数组存在非一维数组的情况下,判断所述第一数组的大小与所述第二数组的大小是否相同;在判断结果为否的情况下,确定所述第一数组存放的服务名与所述第二数组中存放的服务名存在差异。

可选地,对存在差异的服务名进行告警处理包括:采用邮件通知的方式和/或短消息通知的方式,对存在差异的服务名进行告警处理。

根据本发明的另一方面,提供了一种服务监控装置,包括:第一存放模块,用于将需要被监控的服务的服务名存放到第一数组中,其中,所述被监控的服务个数为至少两个;第二存放模块,用于将正在运行的服务的服务名存放到第二数组中;判断模块,用于判断所述第一数组中存放的服务名与所述第二数组中存放的服务名是否存在差异;处理模块,用于在判断结果为是的情况下,对存在差异的服务名进行告警处理。

可选地,所述第二存放模块包括:获取单元,用于按照预定间隔时间获取所述第一数组中正在运行的服务的服务名;存放单元,用于将获取的所述服务名存入预定文件中;写入单元,用于将存入所述预定文件中的服务名写入所述第二数组中。

可选地,所述判断模块包括:第一判断单元,用于在所述第一数组和所述第二数组均为一维的情况下,判断所述第一数组的长度与所述第二数组的长度是否相同;第一确定单元,用于在所述第一判断单元的判断结果为否的情况下,确定所述第一数组存放的服务名与所述第二数组中存放的服务名存在差异。

可选地,所述判断模块包括:第二判断单元,用于在所述第一数组和所述第二数组存在非一维数组的情况下,判断所述第一数组的大小与所述第二数组的大小是否相同;第二确定单元,用于在所述第二判断单元的判断结果为否的情况下,确定所述第一数组存放的服务名与所述第二数组中存放的服务名存在差异。

可选地,所述处理模块,还用于采用邮件通知的方式和/或短消息通知的方式,对存在差异的服务名进行告警处理。

根据本发明的还一个实施例,提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时控制所述存储介质所在设备执行以下操作:将需要被监控的服务的服务名存放到第一数组中,其中,所述被监控的服务个数为至少两个;将正在运行的服务的服务名存放到第二数组中;判断所述第一数组中存放的服务名与所述第二数组中存放的服务名是否存在差异;在判断结果为是的情况下,对存在差异的服务名进行告警处理。

根据本发明的另一个实施例,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行以下操作:将需要被监控的服务的服务名存放到第一数组中,其中,所述被监控的服务个数为至少两个;将正在运行的服务的服务名存放到第二数组中;判断所述第一数组中存放的服务名与所述第二数组中存放的服务名是否存在差异;在判断结果为是的情况下,对存在差异的服务名进行告警处理。

在本发明实施例中,采用对数组存放的服务名进行比对的方式,通过在数组中存入至少两个服务的服务名,达到了对多个服务进行监控的目的,从而实现了批量监控服务的技术效果,进而解决了相关技术中,仅仅能够实现一次对一个服务是否出现停止运行进行监控,监控效率低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的服务监控方法的流程图;

图2是本发明优选实施例的服务监控方法的流程图;

图3是本发明实施例提供的服务监控装置的结构框图;

图4是本发明实施例提供的服务监控装置中第二存放模块34的优选结构框图;

图5是本发明实施例提供的服务监控装置中判断模块36的优选结构框图一;

图6是本发明实施例提供的服务监控装置中判断模块36的优选结构框图二。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例,提供了一种服务监控方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的服务监控方法的流程图,如图1所示,该方法包括如下步骤:

步骤s102,将需要被监控的服务的服务名存放到第一数组中,其中,被监控的服务个数为至少两个;

步骤s104,将正在运行的服务的服务名存放到第二数组中;

步骤s106,判断第一数组中存放的服务名与第二数组中存放的服务名是否存在差异;

步骤s108,在判断结果为是的情况下,对存在差异的服务名进行告警处理。

通过上述步骤,采用对数组存放的服务名进行比对的方式,通过在数组中存入至少两个服务的服务名,达到了对多个服务进行监控的目的,从而实现了批量监控服务的技术效果,进而解决了相关技术中,仅仅能够实现一次对一个服务是否出现停止运行进行监控,监控效率低的技术问题。

将正在运行的服务的服务名存放到第二数组中时,可以采用多种方式,例如,可以采用以下处理方式:按照预定间隔时间获取第一数组中正在运行的服务的服务名;将获取的服务名存入预定文件中;将存入预定文件中的服务名写入第二数组中。其中,获取预定间隔时间内第一数组中正在运行的服务的服务名也可以采用多种方式,例如,采用脚本的方式获取。将存入预定文件中的服务名写入第二数组中时,也可以采用多种方式,例如,采用命令的方式执行写入操作。

可选地,判断第一数组中存放的服务名与第二数组中存放的服务名是否存在差异时,也可以采用多种方式,下面分别说明。

例如,在第一数组和第二数组均为一维的情况下,判断第一数组的长度与第二数组的长度是否相同;在判断结果为否的情况下,确定第一数组存放的服务名与第二数组中存放的服务名存在差异。由于一组数据较为简单,依据数组的长度就可以看出第一数组与第二数组中的服务名是否存在差异,即是否存在停止运行的服务。

又例如,在第一数组和第二数组存在非一维数组的情况下,判断第一数组的大小与第二数组的大小是否相同;在判断结果为否的情况下,确定第一数组存放的服务名与第二数组中存放的服务名存在差异。需要说明的是,虽然不是一组数据的时候,需要计算数组的大小,但在被监控的服务比较多的情况下,便于存放。

可选地,对存在差异的服务名进行告警处理时,也可以采用多种方式,例如,较为简单地,可以采用邮件通知的方式和/或短消息通知的方式,对存在差异的服务名进行告警处理。

通过上述实施例及优选实施方式,可以批量定义windows下特定服务,并使用脚本对被定义的服务进行循环间隔时间的监控。当被监控的所有服务中有一个或多个服务停止运行后,可通过上述方法确定出是哪一个或哪几个服务停止运行,最后通过报警邮件服务将已经停止运行的服务名以邮件形式发送给维护人员,或者通过短消息通知的方式发送维护人员,由维护人员进行处理。

下面对本发明的又一优选实施例进行说明。

图2是本发明优选实施例的服务监控方法的流程图,如图2所示,该流程包括如下步骤:其中,服务以windows服务为例进行说明。

步骤s202,将需要被监控的windows服务名存放到一个一维数组“a”中;

步骤s204,使用脚本以固定的“间隔时间”获取所有正在运行的服务名,并将服务名写入到固定的文件中;

步骤s206,通过命令在文件中获取数组“a”中所有服务名并写入到一个新的一维数组“b”;

步骤s208,获得数组“a”和数组“b”的长度a.length和b.length;

步骤s210,判断数组“a”和数组“b”的长度是否相同;

步骤s212,当数组“a”和数组“b”的长度不同时,判断数组“a”和数组“b”中元素的区别,并将差别元素写入到新的一维数组“c”;

步骤s214,通过报警系统将数组“c”中元素以邮件形式发与维护人员;

步骤s216,结束。

通过对被定义的服务进行循环间隔时间监控,以三个一维数组分别存放“需要被监控的windows服务名”、“需要被监控的服务名中正在运行的服务名”“需要被监控的服务名中未运行的服务名”,利用需要监控的服务名及正在运行的服务名进行对比,最后达到批量监控windows下服务运行状况的目的。

通过上述监控方法,可减少重要服务因意外出现停止运行对线上服务造成影响,利用一维数组的对对比得到被监控服务中已停止的服务名,有效地实现了批量监控windows下特殊服务运行状况。

在本实施例中,还提供了一种服务监控装置,图3是本发明实施例提供的服务监控装置的结构框图,如图3所示,该装置包括:第一存放模块32,第二存放模块34,判断模块36和处理模块38,下面对该装置进行说明。

第一存放模块32,用于将需要被监控的服务的服务名存放到第一数组中,其中,被监控的服务个数为至少两个;第二存放模块34,用于将正在运行的服务的服务名存放到第二数组中;判断模块36,连接至上述第一存放模块32和第二存放模块34,用于判断第一数组中存放的服务名与第二数组中存放的服务名是否存在差异;处理模块38,连接至上述判断模块36,用于在判断结果为是的情况下,对存在差异的服务名进行告警处理。

图4是本发明实施例提供的服务监控装置中第二存放模块34的优选结构框图,如图4所示,该第二存放模块34包括:获取单元42,存放单元44和写入单元46,下面对该第二存放模块34进行说明。

获取单元42,用于按照预定间隔时间获取第一数组中正在运行的服务的服务名;存放单元44,连接至上述获取单元42,用于将获取的服务名存入预定文件中;写入单元46,连接至上述存放单元44,用于将存入预定文件中的服务名写入第二数组中。

图5是本发明实施例提供的服务监控装置中判断模块36的优选结构框图一,如图5所示,该判断模块36包括:第一判断单元52和第一确定单元54,下面对该判断模块36进行说明。

第一判断单元52,用于在第一数组和第二数组均为一维的情况下,判断第一数组的长度与第二数组的长度是否相同;第一确定单元54,连接至上述第一判断单元52,用于在第一判断单元的判断结果为否的情况下,确定第一数组存放的服务名与第二数组中存放的服务名存在差异。

图6是本发明实施例提供的服务监控装置中判断模块36的优选结构框图二,如图6所示,该判断模块36包括:第二判断单元62和第二确定单元64,下面对该判断模块36进行说明。

第二判断单元62,用于在第一数组和第二数组存在非一维数组的情况下,判断第一数组的大小与第二数组的大小是否相同;第二确定单元64,连接至上述第二判断单元62,用于在第二判断单元的判断结果为否的情况下,确定第一数组存放的服务名与第二数组中存放的服务名存在差异。

可选地,处理模块38,还用于采用邮件通知的方式和/或短消息通知的方式,对存在差异的服务名进行告警处理。

根据本发明的另一个实施例,提供了一种存储介质,存储介质包括存储的程序,其中,程序运行时控制存储介质所在设备执行以下操作:将需要被监控的服务的服务名存放到第一数组中,其中,被监控的服务个数为至少两个;将正在运行的服务的服务名存放到第二数组中;判断第一数组中存放的服务名与第二数组中存放的服务名是否存在差异;在判断结果为是的情况下,对存在差异的服务名进行告警处理。

可选地,程序运行时还控制存储介质所在设备执行以下操作:将正在运行的服务的服务名存放到第二数组中包括:按照预定间隔时间获取第一数组中正在运行的服务的服务名;将获取的服务名存入预定文件中;将存入预定文件中的服务名写入第二数组中。

可选地,程序运行时还控制存储介质所在设备执行以下操作:判断第一数组中存放的服务名与第二数组中存放的服务名是否存在差异包括:在第一数组和第二数组均为一维的情况下,判断第一数组的长度与第二数组的长度是否相同;在判断结果为否的情况下,确定第一数组存放的服务名与第二数组中存放的服务名存在差异。

可选地,程序运行时还控制存储介质所在设备执行以下操作:判断第一数组中存放的服务名与第二数组中存放的服务名是否存在差异包括:在第一数组和第二数组存在非一维数组的情况下,判断第一数组的大小与第二数组的大小是否相同;在判断结果为否的情况下,确定第一数组存放的服务名与第二数组中存放的服务名存在差异。

可选地,程序运行时还控制存储介质所在设备执行以下操作:对存在差异的服务名进行告警处理包括:采用邮件通知的方式和/或短消息通知的方式,对存在差异的服务名进行告警处理。

根据本发明的另一个实施例,提供了一种处理器,处理器用于运行程序,其中,程序运行时执行以下操作:将需要被监控的服务的服务名存放到第一数组中,其中,被监控的服务个数为至少两个;将正在运行的服务的服务名存放到第二数组中;判断第一数组中存放的服务名与第二数组中存放的服务名是否存在差异;在判断结果为是的情况下,对存在差异的服务名进行告警处理。

该处理器在运行程序时还执行以下操作:将正在运行的服务的服务名存放到第二数组中包括:按照预定间隔时间获取第一数组中正在运行的服务的服务名;将获取的服务名存入预定文件中;将存入预定文件中的服务名写入第二数组中。

该处理器在运行程序时还执行以下操作:判断第一数组中存放的服务名与第二数组中存放的服务名是否存在差异包括:在第一数组和第二数组均为一维的情况下,判断第一数组的长度与第二数组的长度是否相同;在判断结果为否的情况下,确定第一数组存放的服务名与第二数组中存放的服务名存在差异。

该处理器在运行程序时还执行以下操作:判断第一数组中存放的服务名与第二数组中存放的服务名是否存在差异包括:在第一数组和第二数组存在非一维数组的情况下,判断第一数组的大小与第二数组的大小是否相同;在判断结果为否的情况下,确定第一数组存放的服务名与第二数组中存放的服务名存在差异。

该处理器在运行程序时还执行以下操作:对存在差异的服务名进行告警处理包括:采用邮件通知的方式和/或短消息通知的方式,对存在差异的服务名进行告警处理。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1