
1.本发明涉及智能软件监控领域,特别是涉及一种监控方法及系统。
背景技术:2.监控系统大多数提供依赖性的集群监控,对每个容器进行健康监控时引入探针的概念,对容器中的进程进行检查,来确保用户的应用程序正常运转。依赖点在于需要应用服务部署在容器中,且应用服务需要开发脚本或接口为监控提供检查探针接口,同时对于异常应用会重启整个容器,可能会影响同一容器中的其他服务。
3.其他提供进程监控的集群监控系统,对于集群容错只有简单的主备方案,当主监控服务宕机后,会启动备用监控服务,而两者共用一个数据库,两者交替之间会有间隔,并不能做到无缝切换,如果在遇到规模较大被监控服务时风险会更高。
4.针对相关技术中存在的主监控服务宕机后,导致监控服务无法继续正常监控的问题,目前尚未存在有效的解决方案。
技术实现要素:5.本发明提供了一种监控方法及系统,用以解决相关技术中主监控服务宕机后,导致监控服务无法继续正常监控的问题。
6.为解决上述技术问题,第一方面,本发明实施例提供一种监控方法,包括:接收监控器发送的被监控服务的信息;将所述被监控服务的所述信息同步更新到主监控服务;接收所述主监控服务下发的监控策略,其中,所述监控策略为所述主监控服务根据所述被监控服务的所述信息生成;向所述监控器发送所述监控策略,其中,所述监控策略用于指示所述监控器执行与所述监控策略对应的监控命令。
7.第二方面,本发明实施例提供一种监控方法,包括:接收同步模块更新发送的被监控服务的信息;根据所述被监控服务的信息生成监控策略;向所述同步模块发送所述监控策略;向所述监控器发送与所述监控策略对应的监控命令。
8.第三方面,本发明实施例还提供了一种监控方法,向同步模块发送被监控服务的信息;通过所述同步模块将所述被监控服务的信息同步更新到主监控服务;通过所述同步模块接收监控策略;或,接收所述主监控服务发送的与所述监控策略对应的监控命令,其中,所述监控策略为所述主监控服务根据所述被监控服务的信息生成的。
9.第四方面,本发明实施例还提供了一种监控系统,包括主监控服务、监控器和同步模块,其中,所述同步模块接收所述监控器发送的被监控服务的信息;所述同步模块将所述被监控服务的信息同步更新到所述主监控服务;所述主监控服务根据所述被监控服务的信息生成监控策略;所述主监控服务将所述监控策略下发至所述同步模块,所述主监控服务将与所述监控策略对应的监控命令下发至所述监控器。
10.本发明实施例提供的技术方案,克服了主监控服务宕机后,导致监控服务无法继续正常监控的问题,显著提高了监控系统的高可用性。
11.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
12.附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
13.图1是本发明第一实施例中一种监控方法的流程示意图;
14.图2是本发明第二实施例中另一种监控方法的流程示意图;
15.图3是本发明第三实施例中一种监控方法的流程示意图;
16.图4是本发明第四实施例中一种监控系统的架构图;
17.图5是本发明第五实施例中另一种监控系统的架构图。
具体实施方式
18.为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
19.在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
20.相关技术中当主监控宕机或挂掉后,导致监控服务无法继续正常监控,无法正常执行重启功能以及相关扩展功能等问题,实施例部分提供了高可用性的监控方法和系统。
21.实施例一:
22.本发明第一实施例提供了一种监控方法,该方法的流程如图1所示,包括步骤s102至s108:
23.s102,接收监控器发送的被监控服务的信息;
24.本实施例中引进的同步模块为paxos模块,paxos为帕克索斯一致性算法,同步模块作为中间同步组件,能支持实现paxos一致性协议的模块组件或者独立服务,也可以是分布式应用程序协调服务zookeeper等。
25.s104,将所述被监控服务的所述信息同步更新到主监控服务;
26.本实施例中被监控服务与所述监控器部署在同一个网络节点上,网络节点为物理机或虚拟机。在所述接收监控器发送的被监控服务的信息之前,所述方法还包括:接收所述监控器发送的注册请求,与所述监控器建立心跳机制。
27.监控器robot会先注册自身到paxos模块上,注册方式为发送心跳报文至paxos模块,由poxas模块记录该监控器robot,建立心跳机制,完成注册。注册后监控器robot会不断在paxos模块上更新自身状态。同时robot会扫描所在被监控服务节点的所有进程,找出被监控服务service 1,把该service1的服务信息注册到paxos模块中,同时监控器robot对其监控的被监控服务(例如service1,service2)执行监控功能。
28.s106,接收所述主监控服务下发的监控策略,其中,所述监控策略为所述主监控服
务根据所述被监控服务的所述信息生成;
29.本实施例中主监控服务(monitor)负责展示系统状态,如:被监控服务的生存周期、占用资源、端口、io等,控制系统功能如监控策略管理、监控策略下发、被监控服务的管理。
30.s108,向所述监控器发送所述监控策略,其中,所述监控策略用于指示所述监控器执行与所述监控策略对应的监控命令。
31.本实施例中监控器robot负责监控服务进程、执行监控命令、向paxos模块上报状态,上报内容如:被监控服务的生存周期、占用资源、端口、io等,因此被监控服务(service)需要和robot部署在同一个网络节点上。
32.本实施例提供的上述监控方法,提高了监控系统的高可用性,由于paxos模块的高可用性,监控系统与之集成后也具备了高可用性。
33.在某些场景下,如主监控宕机后,不影响已经下发的监控策略,同时也不影响监控器的功能状态,其可继续监控所需服务,并同步信息状态;在主监控重新启动后,即可从paxos模块中同步最新监控集群状态。同理,监控器进程失效后,因为心跳机制会被主监控重新启动。若被监控服务出现异常,则由监控器执行对应的监控命令。
34.实施例二:
35.本发明第二实施例提供了另一种监控方法,图2是发明第二实施例中另一种监控方法的流程示意图,如图2所示,
36.该监控方法包括如下步骤:
37.s202:接收同步模块更新发送的被监控服务的信息;
38.在本实施例中,同步模块为paxos模块,主监控服务monitor启动后会同步和监听paxos模块中的监控器的信息以及某监控器robot下监控的被监控服务services的信息,并用于统计和展现。
39.s204:根据所述被监控服务的信息生成监控策略;
40.在本实施例中,主监控服务monitor根据监控器的信息以及某监控器robot下监控的被监控服务services的信息生成对应监控策略,主监控服务monitor将对应的监控策略下发至paxos模块中,再由paxos模块更新到对应的robot中。
41.s206:向所述同步模块发送所述监控策略;
42.在本实施例中,主监控服务monitor将对应的监控策略下发至同步模块paxos模块中,再由paxos模块更新到对应的robot中。
43.s208:向所述监控器发送与所述监控策略对应的监控命令。
44.在本实施例中,监控器monitor会直接发送监控策略至paxos模型,此外与监控策略对应的的监控命令会直接发送至相应的监控器robot。对于监控策略,robot会同步paxos模型中相应的监控策略到本地,并解析该监控策略获取监控命令并执行。
45.本实施例提供的上述监控方法,克服了主监控服务宕机后,导致监控服务无法继续正常监控的问题,显著提高了监控系统的高可用性。
46.实施例三:
47.本发明第三实施例提供了一种监控方法,图3是本发明第三实施例中一种监控方法的流程示意图,如图3所示,
48.该监控方法包括如下步骤:
49.s302:向同步模块发送被监控服务的信息;
50.在本实施例中,监控器robot定时发送旗下被监控服务services的状态至同步模块paxos模型服务中,paxos模型服务中存储有robot信息及其被监控服务services信息。
51.s304:通过所述同步模块将所述被监控服务的信息同步更新到主监控服务;
52.在本实施例中,主监控器monitor通过同步模块paxos模块获得的service统计信息,由使用者根据具体场景设置触发条件,判断是否下发监控策略。
53.s306:通过所述同步模块接收监控策略;或,接收所述主监控服务发送的与所述监控策略对应的监控命令,其中,所述监控策略为所述主监控服务根据所述被监控服务的信息生成的。
54.在本实施例中,若符合某监控策略的下发条件,例如service挂掉后,需下发重启命令;或支持自动重启的监控策略(由使用者按照业务决定)。然后,由robot执行monitor发送的监控命令或在paxos上同步监控策略后解析执行。
55.本实施例提供的上述监控方法,克服了主监控服务宕机后,导致监控服务无法继续正常监控的问题,显著提高了监控系统的高可用性。
56.实施例四:
57.本发明第四实施例提供了一种监控系统,图4是本发明第四实施例中一种监控系统的架构图,如图4所示,包括主监控服务402、监控器406和同步模块404,其中,
58.所述同步模块404接收所述监控器406发送的被监控服务的信息;
59.所述同步模块404将所述被监控服务的信息同步更新到所述主监控服务402;
60.所述主监控服务402根据所述被监控服务的信息生成监控策略;
61.所述主监控服务402将所述监控策略下发至所述同步模块404,
62.所述主监控服务402将与所述监控策略对应的监控命令下发至所述监控器406。
63.主监控服务402为web service,具备同步模块404(可以为paxos模块)的client、snmp client;监控器406与主监控服务402之间可以选用超文本传输协议http协议通信,与同步模块404为paxos模块的client。监控器406与被监控服务service需要部署在一个节点中,该节点可以是物理机或虚拟机。主监控服务402、监控器406之间需要网络连接,属于同一内网。
64.上述实现监控系统的具体实现过程与前述实施例实现监控方法的具体实现过程相同,这里不再赘述。
65.实施例五:
66.本发明第五实施例提供了另一种监控系统,图5是本发明第五实施例中另一种监控系统的架构图,如图5所示,
67.本实施例的监控系统架构中,引进paxos模块(paxos module)作为同步模块,同步模块即能实现paxos一致性协议的模块组件或独立服务;主监控服务502(monitor)负责展示系统状态,如:被监控服务的生存周期、占用资源、端口、io等、控制系统功能如监控策略管理、监控策略下发、被监控服务的管理。监控器506(robot)负责监控服务进程、执行策略、向paxos模块504上报状态,上报内容如:被监控服务的生存周期、占用资源、端口、io等,因此被监控服务(service)需要和监控器robot部署在同一个网络节点上。
68.系统的启动流程需要首先启动paxos模块,再启动monitor和robot以及被监控的service,系统组件的独立性,除paxos模块优先启动外,其他组件并无先后启动顺序,这是因为paxos模块实现了一致性协议,可以保存集群信息,是该监控系统的基础框架。
69.系统中相关模块应具备以下主要对外的接口(java定义接口):
70.主监控服务502:
71.接口一:用于检查主监控服务是否启动,用于发现主监控服务状态,并返回status状态对象。
72.接口二:用于给用户查询进程状态,并返回进程信息列表对象。
73.接口三:用于注册监控器506接口。
74.接口四:用于查询监控器506接口,并返回监控器信息列表对象。
75.接口五:用于上传监控策略接口。
76.接口六:用于指定监控器及其生效的监控策略。
77.监控器506具备以下主要接口功能(java定义接口):
78.接口一:检查监控器是否启动,用于发现监控器状态。
79.接口二:用于给主进程查询进程状态,并返回进程信息列表对象。
80.接口三:用于接收主监控服务502发送的策略接口并执行策略。
81.系统执行时,监控器506将已启动的被监控服务1或2或其他多个被监控服务的信息注册到paxos模块504中,并动态将被监控服务的信息更新到paxos模块中;主监控服务502启动后,会同步paxos模块504中的被监控服务的信息;主监控服务502根据被监控服务的信息生产监控策略和监控命令,主监控服务502将监控策略发送给paxos模块504,将监控命令发送给监控器506。
82.上述实现的具体内容可参照本发明第一实施例、第二实施例、第三实施例和第四实施例部分进行理解,在此不做详细论述。
83.可以理解的是,本发明各实施例中的内容在不冲突的情况下可以相互结合使用。
84.显然,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram,rom,eeprom、闪存或其他存储器技术、cd-rom,数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载
波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。
85.以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。