发明内容
本发明的主要目的,在于提供一种管理云端主机的监控系统及其监控方 法,由一台监控代理服务器同时服务多个台的主机,以做为多个主机与单一数据库之间的传输界面,以此避免与数据库连接的主机数量太多,造成数据库过载的问题。
本发明提供了一种管理云端主机的监控系统,包括:
多个主机,分别具有一感测单元,各该感测单元分别侦测各该多个主机的状态,并分别依据各该多个主机的状态产生一状态信息;
一数据库;
一监控代理服务器,连接该数据库;及
一监控管理服务器,接受该多个主机及该监控代理服务器的注册请求,并分配已注册的该监控代理服务器同时对应服务已注册的该多个主机;其中,该监控代理服务器搜集其对应服务的该多个主机的该状态信息,并将搜集所得的该多个主机的该状态信息写入该数据库中,借以,将该监控代理服务器做为该多个主机与该数据库间的传输界面。
本发明还提供了一种管理云端主机的监控方法,运用于一监控系统,该监控系统包括一监控管理服务器、一监控代理服务器、多个主机及一数据库,该监控方法包括:
a)该监控管理服务器接受该多个主机的注册请求;
b)该监控管理服务器判断该监控系统中是否有可分配的一监控代理服务器;
c)若该监控系统中没有可分配的该监控代理服务器,该监控管理服务器启动一台新的该监控代理服务器,并分配新的该监控代理服务器同时对应服务已注册的该多个主机;
d)若该监控系统中有可分配的该监控代理服务器,该监控管理服务器分配该监控代理服务器同时对应服务已注册的该多个主机;
e)该多个主机分别侦测状态,并各自产生一状态信息;
f)该监控代理服务器搜集所对应服务的该多个主机的该状态信息;及
g)该监控代理服务器连接该数据库,并将搜集所得的该多个主机的该状态信息写入该数据库中。
本发明相比先前技术所能达成的功效在于,建立至少一监控代理服务器来做为多个主机与数据库之间的传输界面,如此可以有效控制数据库的输出 入(I/O)界面数量,不会因为与数据库直接连接的主机的数量太多,而造成数据库有负载过载的现象。
再者,通过监控管理服务器来指派监控代理服务器,并分配其服务的主机,如此一来,哪一台主机是被哪一台监控管理服务器所服务,皆可通过监控管理服务器来查询。因此,管理者可以轻易地查询特定的主机的信息。
具体实施方式
兹就本发明的一较佳实施例,配合图式,详细说明如后。
首请参阅图1及图2,分别为本发明的第一较佳具体实施例及第二较佳具体实施例的系统架构图。如图所示,本发明的监控系统,主要包括了一监控管理服务器(Monitoring Management Server,MMS)1、多个主机2、至少一监控代理服务器3(下面将于说明书内文中简称为该代理服务器3)及一数据库4。其中,该MMS1分别连接该多个主机2及该至少一监控代理服务器3,并且该至少一监控代理服务器3连接该数据库4。
本实施例中,该MMS1、该主机2、该代理服务器3及该数据库4,皆可视为云端数据中心内的一个端点(node),并且多个端点可分别由实体机器(Physical Machine,PM)或虚拟机器(Virtual Machine,VM)来实现,不加以限定。更甚者,该监控系统会依实际所需来指定任意一或多个端点当作该代理服务器3的角色。因此,当以VM来实现该代理服务器3时,则同一台PM可同时担任该主机2及该代理服务器3的角色。也就是说,该多个主机2及多个代理服务器3不一定得存在于PM中,也不一定要单独存在,因为一台PM可以同时担任多种角色,由此让本系统极具弹性。
值得一提的是,于一实施例中,该至少一代理服务器3为独立的一台PM,运作于云端的数据中心内;于另一实施例中,该代理服务器3是可由该多个主机2的至少其中的一来模拟而成,并非独立存在,也就是说,可由一台PM来同时兼任该主机2及该代理服务器3的角色(容下详述)。
本实施例中,该代理服务器3的数量少于该主机2的数量,并且每一台该代理服务器3皆可服务多个台的该主机2,以做为该多个主机2及该数据库4之间的传输界面。如此一来,可以大幅减少该数据库4对外的传输通道,进而降低该数据库4的负载(Loading)。例如图1中所示,该监控系统具有五台该主机2,该五台主机2分别由两台该代理服务器3来服务。由此,该数据库4只需具备两条对外的传输通道,不需具备五条的传输通道,因此可以有效降低其负载。然而,以上所述仅为本发明的一较佳具体实例,该监控系统中的该主机2及该代理服务器3的数量应视实际所需而定,不应以此为限。为方便说明,下面将于说明书内文中,以一台该主机2及一台该代理服务器3来进行说明。
如图2所示,该代理服务器3于启动后,需先向该MMS1进行注册(步骤S10),借以,由该MMS1接收一配置信息(步骤S12),并依据该配置信息进行一配置动作(Configuration)。另一方面,需要被监控的该主机2,也需先向该MMS1进行注册(步骤S14),并且于注册完成后,再接受该MMS1的一分配动作(Allocation)(步骤S16),由此,该主机2可得知必须通过哪一台该代理服务器3来传递数据至该数据库4。本实施例中,该主机2主要是将自身的状态信息,例如温度、湿度、风扇速率、CPU、存储器、网络状态及硬盘容量等,传送给被分配的该代理服务器3(步骤S18),并且再由该代理服 务器3统一写入该数据库4中(步骤S20)。
本实施例中,可由该代理服务器3先向该MMS1进行注册,或是由该主机2先向该MMS1进行注册,甚至该主机2及该代理服务器3的注册动作也可以是同时的,也就是说,上述该步骤S10及该步骤S14并不具有执行上的顺序关系。
如上所述,该代理服务器3可是一台独立的实体服务器,另一方面,该代理服务器3也可由该多个主机2的其中的一来模拟而成,是以,当该多个主机2的其中的一接受该MMS1的指派而模拟成该代理服务器3时,接受了指派的该主机2仍需将自身的该状态信息传送给被分配的该代理服务器3。也就是说,接受了指派的该主机2需对外传送自身的该监控数据,并且同时搜集其他主机2的该监控数据,换句话说,接受了指派的该主机2需要同时担任两种角色。
续请参阅图3,为本发明的一较佳具体实施例的监控管理服务器方块图。本实施例中,该MMS1主要包括一第一控制单元11、一第一传输单元12及一第一接收单元13,其中该第一控制单元11连接该第一传输单元12及该第一接收单元13。
该第一控制单元11用以处理该MMS1内部的各项信息。该第一接收单元13主要用以连接该主机2及该代理服务器3,以接受该主机2及该代理服务器3的注册动作。该第一传输单元11用以连接该主机2,以分配对应的该代理服务器3给完成注册的该主机2。并且,当该监控系统中没有可被分配的该代理服务器3时,该MMS1还可通过该第一传输单元11发出一指派指令,以指派该多个主机2的其中的一来模拟为该代理服务器3。并且,该第一传输单元11还用以连接该代理服务器3,当该代理服务器3完成注册动作后,该MMS1通过该第一传输单元11传送该配置信息给该代理服务器3,以令该代理服务器3依据该配置信息来进行配置动作。
本发明由该MMS1来分配该代理服务器3给该主机2,并告知该代理服务器3所需服务的主机2是哪几台,因此,管理人员可以通过该MMS1的查询,轻易得知一特定的主机是由哪一台代理服务器来管理,进而查询该特定的主机的该状态信息。
如图3所示,该MMS1还可包括一使用者界面14,连接该第一控制单 元11,该使用者界面14主要可供数据中心的管理人员使用,用以查询该主机2的该状态信息。更具体而言,管理人员可通过该使用者界面14来操作该MMS1(例如通过浏览器(Browser)),以连接该监控代理服务器3或该数据库4,进而查询该主机2的该状态信息。
再者,本发明的监控系统中,更可包括一应用程序界面服务器5,该应用程序界面服务器5连接至该MMS1,并且该应用程序界面服务器5可以提供一实体的控制面板(Dashboard)51。由此,管理人员可操控该控制面板51来连接并登入该MMS1,进而查询该主机2的该状态信息。然而以上所述仅为本发明的一较佳具体实例,不应以此为限。
参阅图4,为本发明的一较佳具体实施例的主机方块图。本发明的该主机2中,主要包括一第二控制单元21、一感测单元22、一第二传输单元23及一第二接收单元24,其中该第二控制单元21连接该感测单元22、该第二传输单元23及该第二接收单元24。
该第二控制单元21用以处理该主机2中的各项信息。该感测单元22用以侦测该主机2本身的各项主机状态,例如CPU状态、存储器状态、风扇速率及硬盘容量等硬件信息,或是如温度、湿度或网络状态等周边信息等,再据以产生上述的该状态信息。该第二传输单元33用以连接该MMS1,以对该MMS1进行注册动作,并且该第二传输单元33还连接该代理服务器3,以将该感测单元22侦测所得的该状态信息传送至该代理服务器3。该第二接收单元24用以连接该MMS1,以接受该MMS1对于该代理服务器3的分配动作。并且,当该监控系统中没有任何可被分配的该代理服务器3时,该主机2还可通过该第二接收单元24接受该MMS1的指派,以依据指派来模拟为该代理服务器3。并且,该第二接收单元24还用以连接该代理服务器3,当该代理服务器3成功接收该状态信息后,该主机2可通过该第二接收单元24接收来自该代理服务器3的一确认回复(ACK)。
如图4所示,该主机2还包括一主机通知单元25,连接该第二控制单元21。本发明中,当该感测单元22侦测并产生该状态信息后,会先传送至该第二控制单元25进行初步判断后,再传送给该代理服务器3。当该第二控制单元21判断侦测所得的该状态信息有异常时,该主机2可通过该主机通知单元25通知对应的管理人员进行处理。举例来说,当该主机2发生异常, 如温度过热、CPU使用率过高或网络频宽阻塞时,该主机2可通过该主机通知单元25来发送短信或电子邮件,或是在服务器(例如该MMS1)中产生一对应的事件记录(event),由此让管理人员得知该主机2有异常的状况发生。
该主机2还具有一主机数据池(data poor)26,连接该第二控制单元21。该主机数据池26用以在该状态信息尚未被传送至该代理服务器3之前,暂存该感测单元22侦测所得的该状态信息(容下详述)。
续请参阅图5,为本发明的一较佳具体实施例的监控代理服务器方块图。本发明的该代理服务器3中,主要包括一第三控制单元31、一数据库存取界面32、一第三传输单元33及一第三接收单元34,其中该第三控制单元31连接该数据库存取界面32、该第三传输单元33及该第三接收单元34。
该第三控制单元31用以处理该代理服务器3中的各项信息。该代理服务器3通过该数据库存取界面32连接该数据库4,借以,将该代理服务器3所搜集的所有状态信息写入该数据库4中。该第三传输单元33用以连接该MMS1,以对该MMS1进行注册动作,并且该第三传输单元33还用以连接该主机2,以传送上述该确认回复(ACK)给该主机2。该第三接收单元34用以连接该MMS1,以于注册完成后,接收该MMS1所传来的该配置信息,并且该第三接收单元34还用以连接该主机2,用以接收该主机2所传来的该状态信息。
图5中,该代理服务器3以连接一台该主机2为例,然而本实施例中,一台该代理服务器3实可同时服务多个台的该主机2,以同时搜集多个主机2的该状态信息。是以,该第三传输单元33及该第三接收单元34实可同时连接多个台的该主机2,其数量不以一台为限。
值得一提的是,本发明的该代理服务器3可由该主机2来模拟而成,因此,该主机2中也可设置有该数据库存取界面32(图未标示),借以,让模拟成该代理服务器3的该主机2,可以与该数据库4连接,并将搜集所得的所有状态信息写入该数据库4中。
回到图4,本实施例中该主机2还包括一代理程序模式27,当该主机2接受了该MMS1的指派时,通过该代理程序模式27的执行,模拟为该代理服务器3。于此情况下,接受了指派的该主机2,需以该主机2的身份向该MMS1进行注册,并且还需以该代理服务器3的身份另外向该MMS1进行 注册。更具体而言,未被指派的该主机2不被允许直接连接该数据库4,是以,即使所有的该主机2内部都设置有该数据库存取界面32,但在该主机2没有模拟为该代理服务器3的情况下,该数据库存取界面32不会作动。
如图5所示,该代理服务器3还包括一代理通知单元35,连接该第三控制单元31。该代理服务器3搜集了该主机2的该状态信息后,会先传给该第三控制单元31,并通过该第三控制单元31进行与该第二控制单元25不同程度的判断动作。当该第三控制单元31判断所搜集的该状态信息有异常时,该代理服务器3可通过该代理通知单元35通知对应的管理人员进行处理。如上所述,可通过该代理通知单元35来发送短信或电子邮件,或是在服务器中产生一对应的event,由此让管理人员得知该代理服务器3所服务的该多个主机2中,有异常的状况发生。
该代理服务器3还具有一代理数据池36,连接该第三控制单元31,该代理数据池36主要用以在所搜集的所有状态信息尚未被写入该数据库4的前,暂存搜集所得的所有状态信息(容下详述)。
请同时参阅图6,为本发明的一较佳具体实施例的数据池示意图。如上所述,该主机2及该代理服务器3中分别具备有一数据池6(如该主机数据池26及该代理数据池36)。如图6中所示,该数据池6主要包括一队列61及一本地端数据库62,该队列61用以排序待处理的数据,而该本地端数据库62则用以在该状态信息尚未被成功传送出去的前,暂时储存该状态信息。
举例来说,该主机2需将该感测单元22侦测所得的该状态信息传送至该代理服务器3,当该主机2尚未被分配该代理服务器3,或是被分配的该代理服务器3损坏时,该主机2会暂时将该状态信息储存于该主机数据池26中的该本地端数据库62中,以确保数据在传送出去之前不会遗失。再者,该代理服务器3需将搜集所得的所有状态信息皆写入该数据库4中,当该数据库4损坏而无法被写入时,该代理服务器3会暂时将搜集所得的所有状态信息储存于该代理数据池36中的该本地端数据库62中,以确保数据在写入该数据库4之前不会遗失。如此的设计,可以有效地提升本监控系统的安全性,并且确保数据的完整性。
续请参阅图7,为本发明的一较佳具体实施例的监控流程图。本发明的监控系统,主要是运用了如下所述的监控方法。首先,该MMS1需接受该 主机2的注册动作(步骤S30),并且于注册完成后,该MMS1判断该监控系统中,是否有可分配的该代理服务器3(步骤S32)。若该监控系统中尚有可被分配的该代理服务器3,则该MMS1将该代理服务器3分配给完成了注册的该主机2来使用(步骤S34)。然而,若该监控系统中没有可被分配的该代理服务器3,则该MMS1需启动一个新的该代理服务器3(步骤S36)。值得一提的是,该步骤S36中,该MMS1主要可触发该监控系统中的任意一台实体服务器,以令该服务器启动特定程序以担任该代理服务器3的角色.或者,该MMS1可以指派该监控系统中的该多个主机2的其中之一,以令接受了指派的该主机2执行该代理程序模式27,进而模拟为一台新的该代理服务器3。然而以上所述仅为本发明的较佳具体实例,不应以此为限。
更甚者,还可混合使用实体的以及模拟的该代理服务器3,以提高系统效能。举例来说,当该监控系统中没有可被分配的该代理服务器3时,该MMS1可以先指派任一主机来模拟为该代理服务器3,并分配给注册完成的该主机2来使用,借以,快速地解决该主机2没有被分配的该代理服务器3的问题。接着,于模拟的该代理服务器3暂时为该主机2服务的同时,触发一台实体服务器启动并担任一台新的该代理服务器3。并且,于启动完成后,再由新的该代理服务器3来替换模拟的该代理服务器3,以服务该主机2。值得一提的是,可以选择要解除模拟的该代理服务器3,让接受了指派的该主机恢复成单一的主机角色;或者,可保留模拟的该代理服务器3,令该主机同时兼任主机及代理服务器的角色。如此一来,当系统再次需要临时的代理服务器时,不再需要指派其他的主机来进行模拟,因而可以更加快速地解决没有代理服务器可被分配的问题。
于该步骤S34后,该主机2持续通过其上的该感测单元22来侦测自身的状态并产生该状态信息(步骤S38),并且,该代理服务器3周期性地搜集其负责的所有该主机2的该状态信息(步骤S40)。最后,该代理服务器3再将搜集所得的所有状态信息,统一写入该数据库4中(步骤S42)。本实施例中,若该监控系统中共有一百台的该主机2,但每一台该代理服务器3可同时服务二十台的该主机2,则该数据库4只需具备五条对外通道,以连接五台的该代理服务器3(5*20=100),即可取得所有该主机2的该状态信息。也就是说,该数据库4不需要具备一百条对外通道来分别连接一百台的该主 机2,因此该数据库4的负载可以被大幅的减少,过载的风险也就可以被降低。
值得一提的是,该步骤S32中,该MMS1主要是判断该监控系统中是否有已经启动的该代理服务器3,并且,若有已经启动的该代理服务器3,该MMS1还要进一步判断该代理服务器3被配置的服务数量是否已达上限。若该代理服务器3的服务数量尚未达到上限(例如上述的二十台),则该MMS1才可将该代理服务器3分配给完成注册的该主机2来使用,并且将该代理服务器3的服务数量加一。
接续请同时参阅图8及图9,分别为本发明的一较佳具体实施例的模拟流程图以及监控代理服务器注册流程图。如上所述,若该代理服务器3是由该多个主机2的至少其中之一来模拟而成,则于上述该步骤S36中,主要是由该多个主机2的其中之一来接受该MMS1的指派(步骤S360),并且,依据该指派来执行该代理程序模式27,以模拟成一台新的该代理服务器3(步骤S362)。而若该代理服务器3是由该监控系统中的一实体服务器来担任,则该步骤S360中,就直接由该MMS1来触发该实体服务器来执行对应程序,以担任一台新的该代理服务器3的角色即可。
如图9所示,无论该代理服务器3是由实体服务器来担任,或是由该多个主机2的其中之一来模拟,于上述该步骤S36后,该代理服务器3都必须先被该MMS1启动(步骤S364),并且,再于启动后向该MMS1进行注册(步骤S366)。该代理服务器3完成注册后,即可由该MMS1取得对应的该配置信息,接着再依据该配置信息进行对应的配置动作(步骤S368)。当该代理服务器3完成上述配置动作后,才可成功与该数据库4连接、被该MMS1分配给该主机2来使用、并且进一步搜集该主机2的该状态信息,再写入该数据库4中。
续请参阅图10,为本发明的第一较佳具体实施例的信息传输流程图。当该代理服务器3损坏时,其所服务的该主机2会察觉该代理服务器3损坏(步骤S50),并且,该主机2会即时通知该MMS1(步骤S52)。接着,该主机2会先将该感测单元22侦测所得的该状态信息,暂存于该主机数据池26中的该本地端数据库62(步骤S54),并且持续判断该主机2是否被分配了一个新的该代理服务器3(步骤S56)。在该主机2尚未被分配新的该代理服务器3之 前,该主机2会持续执行该步骤S54至该步骤S56,也就是说,持续将侦测所得的该状态信息暂存于该本地端数据库62中,并且持续判断该MMS1是否分配了新的该代理服务器3。
当该主机2被分配了新的该代理服务器3后,即将该本地端数据库62中储存的所有状态信息皆传送至新的该代理服务器3(步骤S58),由此,通过新的该代理服务器3将该状态信息写入该数据库4中。
参阅第图11,为本发明的第二较佳具体实施例的信息传输流程图。当该数据库4损坏时,该代理服务器3会在第一时间察觉该数据库4的损坏(步骤S60),并且,该代理服务器3会即时通知该MMS1(步骤S62)。接着,该代理服务器3会先将搜集所得的所有状态信息,暂存于该代理数据池36中的该本地端数据库62(步骤S64),并且持续判断该MMS1是否启动了一个新的该数据库4(步骤S66)。在尚未有新的数据库4被启动之前,该代理服务器3会持续执行该步骤S64至该步骤S66,也就是说,持续将搜集所得的所有状态信息暂存于该本地端数据库62中,并且持续判断该MMS1是否启动了新的该数据库4。
当新的该数据库4被启动后,该代理服务器3随即将该本地端数据库62中储存的多个状态信息皆写入新的该数据库4中(步骤S68),并且,可视选择,进一步将该本地端数据库62中暂存的数据删除,以避免容量不足。
通过本发明的监控系统及监控方法,管理人员可通过该MMS1轻易地查询该多个主机2的多个状态信息。并且,通过该代理服务器3来做为该多个主机2与该数据库4之间的传输界面,就不会因为该多个主机2的数量太多、信息量太大,造成频宽不足,或是该数据库4的负载过载的问题。
以上所述仅为本发明的较佳具体实例,非因此即局限本发明的专利范围,故举凡运用本发明内容所为的等效变化,均同理皆包含于本发明的范围内,合予陈明。