本发明涉及计算机技术领域,特别涉及一种linux集群监控的系统及方法。
背景技术:
随着计算机技术以及互联网技术的飞速发展,linux系统由于有着开源,安全性较高,系统资源占用少等诸多优点,在各种领域都得到广泛应用。基于linux系统的集群也得到广泛应用,如何对linux集群进行实时监控越来越重要。
现有技术中,在对linux集群进行实时监控时,需要向相应的服务端发送获取监控信息的请求,服务端只有在接收到获取监控信息的请求时,才会返回linux集群的监控信息。
通过上述描述可见,现有技术无法实时对linux集群进行监控。
技术实现要素:
本发明实施例提供了一种linux集群监控的系统及方法,能够实时对linux集群进行监控。
一方面,本发明实施例提供了一种linux集群监控的系统,包括:
至少一个集群节点、服务端和客户端;
每个所述集群节点中设置有监控程序;
所述监控程序,用于实时采集所在的所述集群节点的监控信息,实时输出所述监控信息;
所述客户端,用于向所述服务端订阅所述至少一个集群节点的监控信息,实时接收所述服务端推送的所述监控信息;
所述服务端,用于实时获取每个所述集群节点的所述监控程序输出的所述监控信息,并实时将获取的所述监控信息推送给所述客户端。
进一步地,该系统,进一步包括:
消息队列;
所述监控程序,用于将采集的所述监控信息保存到所述消息队列中;
所述服务端,用于从所述消息队列中获取所述监控信息。
进一步地,所述监控信息包括:cpu的利用率、内存的利用率、内存的剩余空间、硬盘的利用率、硬盘的剩余存储空间、主板的温度、风扇的转速、电池的电量中的一个或多个。
进一步地,所述客户端,进一步用于向所述服务端发送订阅需求信息;
所述服务端,用于接收所述客户端发来的所述订阅需求信息,根据所述订阅需求信息处理获取的所述监控信息,将处理后的所述监控信息推送给所述客户端。
进一步地,该系统,进一步包括:
数据库,用于存储每个所述集群节点的所述监控信息。
进一步地,所述服务端,用于将获取的所述监控信息按照预设格式封装,将封装后的所述监控信息推送给所述客户端。
进一步地,所述客户端,进一步用于展示接收到的所述监控信息。
另一方面,本发明实施例提供了一种linux集群监控的方法,包括:
预先在至少一个集群节点中的每个所述集群节点中设置监控程序;
客户端预先向服务端订阅所述至少一个集群节点的监控信息;
包括:
每个所述集群节点中的所述监控程序实时采集所在的所述集群节点的监控信息,实时输出所述监控信息;
所述服务端实时获取每个所述集群节点的所述监控程序输出的所述监控信息,实时将获取的所述监控信息推送给所述客户端。
所述客户端实时接收所述服务端推送的所述监控信息。
进一步地,该方法,进一步包括:
所述实时输出所述监控信息,包括:
每个所述监控程序将采集的所述监控信息保存到预设的消息队列中;
所述服务端实时获取每个所述集群节点的所述监控程序输出的所述监控信息,包括:
所述服务端从所述消息队列中获取所述监控信息。
进一步地,该方法进一步包括:
所述客户端预先向所述服务端发送订阅需求信息;
所述服务端接收所述客户端发来的所述订阅需求信息;
在所述实时将获取的所述监控信息推送给所述客户端之前,进一步包括:
所述服务端根据所述订阅需求信息处理获取的所述监控信息;
所述实时将获取的所述监控信息推送给所述客户端,包括:
所述服务端将处理后的所述监控信息推送给所述客户端。
进一步地,所述监控信息包括:cpu的利用率、内存的利用率、内存的剩余空间、硬盘的利用率、硬盘的剩余存储空间、主板的温度、风扇的转速、电池的电量中的一个或多个。
进一步地,该方法,进一步包括:
预设的数据库存储每个所述集群节点的所述监控信息。
进一步地,在所述实时将获取的所述监控信息推送给所述客户端之前,进一步包括:
所述服务端将获取的所述监控信息按照预设格式封装;
所述实时将获取的所述监控信息推送给所述客户端,包括:
所述服务端将封装后的所述监控信息推送给所述客户端。
进一步地,在所述客户端实时接收所述服务端推送的所述监控信息之后,进一步包括:
所述客户端展示接收到的所述监控信息。
在本发明实施例中,客户端通过订阅机制向服务端订阅集群节点的监控信息,在集群节点中设置有监控程序,通过监控程序实时采集每个集群节点自身的监控信息,服务端获取监控程序采集的监控信息,按照订阅机制将获取的监控信息主动推送给客户端,客户端无需向服务端发送请求也可以实时获取到集群节点的监控信息,能够实时对linux集群进行监控。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种linux集群监控的系统的示意图;
图2是本发明一实施例提供的另一种linux集群监控的系统的示意图;
图3是本发明一实施例提供的一种linux集群监控的方法的流程图;
图4是本发明一实施例提供的另一种linux集群监控的方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种linux集群监控的系统,该系统包括:
至少一个集群节点、服务端和客户端;
每个所述集群节点中设置有监控程序;
所述监控程序,用于实时采集所在的所述集群节点的监控信息,实时输出所述监控信息;
所述客户端,用于向所述服务端订阅所述至少一个集群节点的监控信息,实时接收所述服务端推送的所述监控信息;
所述服务端,用于实时获取每个所述集群节点的所述监控程序输出的所述监控信息,并实时将获取的所述监控信息推送给所述客户端。
在本发明实施例中,客户端通过订阅机制向服务端订阅集群节点的监控信息,在集群节点中设置有监控程序,通过监控程序实时采集每个集群节点自身的监控信息,服务端获取监控程序采集的监控信息,按照订阅机制将获取的监控信息主动推送给客户端,客户端无需向服务端发送请求也可以实时获取到集群节点的监控信息,能够实时对linux集群进行监控。
如图1所示,本发明实施例提供了一种linux集群监控的系统,该系统包括:
三个集群节点101、服务端102和客户端103;
每个所述集群节点101中设置有监控程序;
所述监控程序,用于实时采集所在的所述集群节点101的监控信息,实时输出所述监控信息;
所述客户端103,用于向所述服务端102订阅所述至少一个集群节点101的监控信息,实时接收所述服务端102推送的所述监控信息;
所述服务端102,用于实时获取每个所述集群节点101的所述监控程序输出的所述监控信息,并实时将获取的所述监控信息推送给所述客户端103。
为了使得用户通过客户端可以获取到所需要的监控信息,在本发明一实施例中,所述客户端,进一步用于向所述服务端发送订阅需求信息;
所述服务端,用于接收所述客户端发来的所述订阅需求信息,根据所述订阅需求信息处理获取的所述监控信息,将处理后的所述监控信息推送给所述客户端。
在本发明实施例中,用户可以通过设置订阅需求信息来向服务端发送对应服务端推送的监控信息的需求,例如:对监控信息的格式需求,对每次推送的监控信息的数量要求,对监控信息的展示形式的要求等。
在本发明实施例中,服务端根据客户端发来的订阅需求信息预先对监控信息进行处理,推送出处理后的监控信息,以满足用户对于客户端接收到的监控信息的需求,能够提高用户体验。
为了方便服务端获取监控信息,在本发明一实施例中,该系统进一步包括:
消息队列;
所述监控程序,用于将采集的所述监控信息保存到所述消息队列中;
所述服务端,用于从所述消息队列中获取所述监控信息。
在本发明实施例中,监控程序将采集的监控信息保存到消息队列,方便服务器获取,也起到了缓冲的作用,使得服务器有更多的时间来处理各个监控程序发来的监控信息,避免遗漏了某些监控信息。
基于图1所示的一种linux集群监控的系统,如图2所示,该系统进一步包括:
消息队列201;
所述监控程序,用于将采集的所述监控信息保存到所述消息队列中;
所述服务端102,用于从所述消息队列中获取所述监控信息。
在本发明一实施例中,所述监控信息包括:cpu的利用率、内存的利用率、内存的剩余空间、硬盘的利用率、硬盘的剩余存储空间、主板的温度、风扇的转速、电池的电量中的一个或多个。
在本发明一实施例中,该系统,进一步包括:
数据库,用于存储每个所述集群节点的所述监控信息。
在本发明实施例中,数据库可以存储各种历史的监控信息,当用户需要对历史的监控信息进行处理时,可以对数据库中保存的历史的监控信息进行处理。数据库可以通过mysql实现。数据库可以存放监控信息的元数据和实时的监控信息以及历史的监控信息等相关信息,以提供给用户方便进行监控信息的增、删、改、查操作。用户可以通过客户端向服务端发送对数据库中的信息的请求,服务端根据客户端发来的请求对数据库中的相关的信息进行处理,将处理结果反馈给客户端。
在本发明一实施例中,所述服务端,用于将获取的所述监控信息按照预设格式封装,将封装后的所述监控信息推送给所述客户端。
在本发明实施例中,该预设格式可以是json格式。
在本发明一实施例中,所述客户端进一步用于展示接收到的所述监控信息。
在本发明一实施例中,该系统可以应用于linux集群的各个集群节点。
在本发明一实施例中,客户端在接收到服务端推送的监控信息后,展示接收到的监控信息,并且为用户提供操作接口,用户可以通过客户端来对监控信息进行管理和展示,并通过客户端与服务端进行交互,以使服务端满足用户对于监控信息的相关需求。客户端可以通过浏览器来实现。客户端可以通过bootstrap来实现。
在本发明一实施例中,服务端可以通过tomcat来实现。服务端可以通过基于http的rest接口与客户端进行交互,使得客户端展示监控信息。
在本发明实施例中,客户端订阅集群节点的监控信息之后,服务端将采集的监控信息主动推送到客户端,具有非常高的实时性,用户能够第一时间接收到监控信息。
如图3所示,本发明实施例提供了一种linux集群监控的方法,包括:
步骤301:预先在至少一个集群节点中的每个所述集群节点中设置监控程序;
步骤302:客户端预先向服务端订阅所述至少一个集群节点的监控信息;
步骤303:每个所述集群节点中的所述监控程序实时采集所在的所述集群节点的监控信息,实时输出所述监控信息;
步骤304:所述服务端实时获取每个所述集群节点的所述监控程序输出的所述监控信息,实时将获取的所述监控信息推送给所述客户端。
步骤305:所述客户端实时接收所述服务端推送的所述监控信息。
在本发明实施例中,客户端通过订阅机制向服务端订阅集群节点的监控信息,在集群节点中设置有监控程序,通过监控程序实时采集每个集群节点自身的监控信息,服务端获取监控程序采集的监控信息,按照订阅机制将获取的监控信息主动推送给客户端,客户端无需向服务端发送请求也可以实时获取到集群节点的监控信息,能够实时对linux集群进行监控。
为了使得用户通过客户端可以获取到所需要的监控信息,在本发明一实施例中,该方法进一步包括:
所述客户端预先向所述服务端发送订阅需求信息;
所述服务端接收所述客户端发来的所述订阅需求信息;
在所述实时将获取的所述监控信息推送给所述客户端之前,进一步包括:
所述服务端根据所述订阅需求信息处理获取的所述监控信息;
所述实时将获取的所述监控信息推送给所述客户端,包括:
所述服务端将处理后的所述监控信息推送给所述客户端。
为了方便服务端获取监控信息,在本发明一实施例中,该方法进一步包括:
所述实时输出所述监控信息,包括:
每个所述监控程序将采集的所述监控信息保存到预设的消息队列中;
所述服务端实时获取每个所述集群节点的所述监控程序输出的所述监控信息,包括:
所述服务端从所述消息队列中获取所述监控信息。
在本发明一实施例中,所述监控信息包括:cpu的利用率、内存的利用率、内存的剩余空间、硬盘的利用率、硬盘的剩余存储空间、主板的温度、风扇的转速、电池的电量中的一个或多个。
监控信息包括系统状态信息。
在本发明一实施例中,该方法进一步包括:
预设的数据库存储每个所述集群节点的所述监控信息。
在本发明一实施例中,在所述实时将获取的所述监控信息推送给所述客户端之前,进一步包括:
所述服务端将获取的所述监控信息按照预设格式封装;
所述实时将获取的所述监控信息推送给所述客户端,包括:
所述服务端将封装后的所述监控信息推送给所述客户端。
在本发明一实施例中,在所述客户端实时接收所述服务端推送的所述监控信息之后,进一步包括:
所述客户端展示接收到的所述监控信息。
如图4所示,本发明实施例提供的一种linux集群监控的方法,包括:
步骤401:预先在至少一个集群节点中的每个集群节点中设置监控程序。
举例来说,需要监控集群节点a、集群节点b和集群节点c的监控信息,则预先在集群节点a、集群节点b和集群节点c中分布设置监控程序。
步骤402:客户端预先向服务端订阅该至少一个集群节点的监控信息。
举例来说,客户端向服务端订阅集群节点a、集群节点b和集群节点c的监控信息,服务端向客户端提供集群节点a、集群节点b和集群节点c的监控信息的订阅服务。
步骤403:客户端预先向服务端发送订阅需求信息。
举例来说,用户需要同时展示集群节点a、集群节点b和集群节点c的监控信息,则将该需求携带在订阅需求信息。
步骤404:服务端接收客户端发来的订阅需求信息。
具体地,服务端之后在推送监控信息时,都会按照订阅需求信息中的需求来推送。
举例来说,在推送时,将集群节点a、集群节点b和集群节点c的监控信息打包到一起来推送。
步骤405:每个集群节点中的监控程序实时采集所在的集群节点的监控信息,将采集的监控信息保存到预设的消息队列中。
举例来说,集群节点a的监控程序实时采集集群节点a的监控信息,并将采集的集群节点a的监控信息保存到预设的消息队列中;集群节点b的监控程序实时采集集群节点b的监控信息,并将采集的集群节点b的监控信息保存到预设的消息队列中;集群节点c的监控程序实时采集集群节点c的监控信息,并将采集的集群节点c的监控信息保存到预设的消息队列中。
步骤406:服务端从消息队列中获取监控信息,根据订阅需求信息处理获取的监控信息,将处理后的监控信息推送给客户端。
具体地,服务端实时从消息队列中获取监控信息。
举例来说,根据订阅需求信息,服务器将集群节点a、集群节点b和集群节点c的监控信息打包到一起来推送。
步骤407:客户端实时接收服务端推送的监控信息,展示接收到的监控信息。
具体地,客户端将接收到的监控信息实时展示给用户。
举例来说,客户端接收服务器发来的集群节点a、集群节点b和集群节点c的监控信息打包到一起的数据包,同时展示集群节点a、集群节点b和集群节点c的监控信息。
本发明实施例可以基于采用b/s架构来实现。
本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,客户端通过订阅机制向服务端订阅集群节点的监控信息,在集群节点中设置有监控程序,通过监控程序实时采集每个集群节点自身的监控信息,服务端获取监控程序采集的监控信息,按照订阅机制将获取的监控信息主动推送给客户端,客户端无需向服务端发送请求也可以实时获取到集群节点的监控信息,能够实时对linux集群进行监控。
2、在本发明实施例中,服务端根据客户端发来的订阅需求信息预先对监控信息进行处理,推送出处理后的监控信息,以满足用户对于客户端接收到的监控信息的需求,能够提高用户体验。
3、在本发明实施例中,监控程序将采集的监控信息保存到消息队列,方便服务器获取,也起到了缓冲的作用,使得服务器有更多的时间来处理各个监控程序发来的监控信息,避免遗漏了某些监控信息。
4、在本发明实施例中,客户端订阅集群节点的监控信息之后,服务端将采集的监控信息主动推送到客户端,具有非常高的实时性,用户能够第一时间接收到监控信息。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。