提供服务器信息的查询服务的方法和装置
技术领域
本发明涉及网络技术领域,具体涉及一种提供服务器信息的查询服务的方法和装置。
背景技术
传统的服务器架构下,业务人员如果想要了解每台服务器上的信息,就需要先获得每台服务器的操作权限,再输入匹配服务器的操作系统的命令以得到执行结果,最后再从执行结果中提取出所需要的信息并进行汇总。可以理解的是,这一流程通常需要耗费业务人员大量的时间和精力,并很难全部由应用程序自动完成。其原因主要在于,业务人员受到操作权限的限制而只能在特定的终端上进行查询。具体来说,服务器的操作系统中例如重启、格式化一类的指令会直接影响到服务器的正常工作,因而与操作权限有关的设置对于维护服务器的安全来说仍是必要的。而在操作权限的管理方面,由于为新终端申请操作权限是一个相对复杂的过程,所以常见的方式是将多台服务器的操作权限集中在安全性可以得到保障的终端上以降低安全管理成本。由此,业务人员在查询多台服务器的信息的时候,就可能需要在多台指定的终端之间重复同样的一系列操作,导致查询效率低下。
发明内容
针对现有技术中的缺陷,本发明提供一种提供服务器信息的查询服务的方法和装置,可以解决业务人员受到操作权限的限制而只能在特定的终端上查询服务器信息的问题。
第一方面,本发明提供了一种提供服务器信息的查询服务的装置,包括:
第一发送单元,用于依照终端发送的访问请求向所述终端发送页面数据,以使所述终端向用户输出对应的页面并返回用户在页面中输入的包括查询目标和查询项目的指令信息;
第一接收单元,用于接收来自终端的所述指令信息;
生成单元,用于按照预设的配置策略,根据所述指令信息生成匹配于查询服务端的查询指令消息;
第二发送单元,用于将所述查询指令消息发送至所述查询服务端,以使所述查询服务端:根据所述查询指令消息向作为查询目标的至少一个目标服务器发送按照预设的安全策略过滤后的命令信息并接收目标服务器对所述命令信息的执行结果,以返回由所述执行结果生成的查询结果信息;
第二接收单元,用于接收来自所述查询服务端的查询结果信息;
所述第一发送单元还用于向所述终端发送包含至少部分所述查询结果信息的页面数据,以使所述终端向用户输出包含查询结果的页面。
可选地,所述生成单元具体包括:
获取模块,用于获取所述查询指令消息的消息模板;
解析模块,用于按照预设的配置策略解析所述指令信息,以向所述消息模板中添加:包括所述至少一个目标服务器的标识、对应于每一目标服务器的命令信息,以及用于从每一目标服务器的所述执行结果中提取出所述查询结果信息的至少一个查询结果位置标识。
可选地,所述解析模块具体包括:
判断子模块,用于判断所述指令信息在所述配置策略中是否带有操作权限标识;
验证子模块,用于在所述指令信息在所述配置策略中带有操作权限标识时,根据所述操作权限标识对所述终端进行操作权限验证;
解析子模块,用于在所述终端通过所述操作权限验证之后,按照预设的配置策略解析所述指令信息,以向所述消息模板中添加:包括所述至少一个目标服务器的标识、对应于每一目标服务器的命令信息,以及用于从每一目标服务器的所述执行结果中提取出所述查询结果信息的至少一个查询结果位置标识。
可选地,该装置还包括:
获取单元,用于在所述第二发送单元将所述查询指令消息发送至所述查询服务端之前,获取来自所述终端的操作权限验证信息并加入至所述查询指令消息中,以使所述查询服务端在向目标服务器发送对应的命令信息之前,根据对所述操作权限验证信息的验证结果按照所述安全策略对所述命令信息的内容进行过滤。
可选地,所述安全策略包括下述的任意一项或多项的信息:
用于滤除命令信息中预设的危险命令的过滤列表;
以所述终端未通过操作权限验证为应用条件,用于滤除命令信息中任何需要操作权限的命令的过滤列表;
以所述终端已通过相应等级的操作权限验证为应用条件,用于滤除命令信息中任何超过相应等级的操作权限的命令的过滤列表。
第二方面,本发明还提供了一种提供服务器信息的查询服务的方法,包括:
依照终端发送的访问请求向所述终端发送页面数据,以使所述终端向用户输出对应的页面并返回用户在页面中输入的包括查询目标和查询项目的指令信息;
接收来自终端的所述指令信息;
按照预设的配置策略,根据所述指令信息生成匹配于查询服务端的查询指令消息;
将所述查询指令消息发送至所述查询服务端,以使所述查询服务端:根据所述查询指令消息向作为查询目标的至少一个目标服务器发送按照预设的安全策略过滤后的命令信息并接收目标服务器对所述命令信息的执行结果,以返回由所述执行结果生成的查询结果信息;
接收来自所述查询服务端的查询结果信息;
向所述终端发送包含至少部分所述查询结果信息的页面数据,以使所述终端向用户输出包含查询结果的页面。
可选地,所述按照预设的配置策略,根据所述指令信息生成匹配于查询服务端的查询指令消息,具体包括:
获取所述查询指令消息的消息模板;
按照预设的配置策略解析所述指令信息,以向所述消息模板中添加:包括所述至少一个目标服务器的标识、对应于每一目标服务器的命令信息,以及用于从每一目标服务器的所述执行结果中提取出所述查询结果信息的至少一个查询结果位置标识。
可选地,所述按照预设的配置策略解析所述指令信息,以向所述消息模板中添加:包括所述至少一个目标服务器的标识、对应于每一目标服务器的命令信息,以及用于从每一目标服务器的所述执行结果中提取出所述查询结果信息的至少一个查询结果位置标识,具体包括:
判断所述指令信息在所述配置策略中是否带有操作权限标识;
在所述指令信息在所述配置策略中带有操作权限标识时,根据所述操作权限标识对所述终端进行操作权限验证;
在所述终端通过所述操作权限验证之后,按照预设的配置策略解析所述指令信息,以向所述消息模板中添加:包括所述至少一个目标服务器的标识、对应于每一目标服务器的命令信息,以及用于从每一目标服务器的所述执行结果中提取出所述查询结果信息的至少一个查询结果位置标识。
可选地,该方法还包括:
在将所述查询指令消息发送至所述查询服务端之前,获取来自所述终端的操作权限验证信息并加入至所述查询指令消息中,以使所述查询服务端在向目标服务器发送对应的命令信息之前,根据对所述操作权限验证信息的验证结果按照所述安全策略对所述命令信息的内容进行过滤。
可选地,所述安全策略包括下述的任意一项或多项的信息:
用于滤除命令信息中预设的危险命令的过滤列表;
以所述终端未通过操作权限验证为应用条件,用于滤除命令信息中任何需要操作权限的命令的过滤列表;
以所述终端已通过相应等级的操作权限验证为应用条件,用于滤除命令信息中任何超过相应等级的操作权限的命令的过滤列表。
由上述技术方案可知,本发明可以保障安全的前提下利用查询服务端在用户与目标服务器之间建立服务器信息的查询服务。具体来说,该查询服务端可以通过安全策略的设置对有安全风险的命令进行过滤,并将没有安全风险的命令分发到各目标服务器来执行,从而可以查询服务端在拥有各目标服务器的操作权限的情况下,也可以保障各目标服务器的安全。对于用户来说,该方式不需要到特定的终端输入指令,也可以通过浏览网络页面便捷地获取到目标服务器的信息。所以,本发明可以解决业务人员受到操作权限的限制而只能在特定的终端上查询服务器信息的问题。
相对于现有技术而言,本发明可以使得用户摆脱服务器的操作权限对于服务器信息的查询手段的多方面限制,便捷地通过浏览网络页面随时随地查询到所需要的服务器信息,大大提升了查询效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例中一种提供服务器信息的查询服务的方法的步骤流程示意图;
图2是本发明一个实施例中一种生成查询指令消息的步骤流程示意图;
图3是本发明一个实施例中一种提供服务器信息的查询服务的装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
图1是本发明一个实施例中一种提供服务器信息的查询服务的方法的步骤流程示意图。参见图1,该方法包括:
步骤101:依照终端发送的访问请求向终端发送页面数据,以使终端向用户输出对应的页面并返回用户在页面中输入的包括查询目标和查询项目的指令信息;
步骤102:接收来自终端的指令信息;
步骤103:按照预设的配置策略,根据指令信息生成匹配于查询服务端的查询指令消息;
步骤104:将查询指令消息发送至查询服务端,以使查询服务端:根据查询指令消息向作为查询目标的至少一个目标服务器发送按照预设的安全策略过滤后的命令信息并接收目标服务器对命令信息的执行结果,以返回由执行结果生成的查询结果信息;
步骤105:接收来自查询服务端的查询结果信息;
步骤106:向终端发送包含至少部分查询结果信息的页面数据,以使终端向用户输出包含查询结果的页面。
需要说明的是,本发明实施例的方法可以应用于任意一种可以提供网站服务的服务端上,所述服务端具体可以是单个服务器设备、服务器群组、服务器集群、云服务器设备等等;然而应当理解的是,可以实现上述步骤流程的任意一种电子设备均可以实现本发明。
还需要说明的是,上述目标服务器和上述服务器信息分别指的是作为查询对象的服务器(即查询目标)及其内部信息(即查询项目,例如内存使用率、进程列表、数据库状态等等)。由此,上述服务器信息的查询服务主要指的是获取查询指令消息并依照该查询指令消息从目标服务器中获取到所需要的服务器信息。而上述查询服务端主要指的是由查询指令消息获取到所需要的服务器信息的服务端。
还需要说明的是,上述访问请求可以例如通过HTTP(HyperText TransferProtocol,超文本传输协议)、HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer,超文本传输安全协议)或者其他任意的网络协议由用户终端的浏览器发送至本发明实施例所应用到的服务端上。由此,按照网页访问流程,服务端可以向用户发送页面数据,以使用户终端的浏览器输出与页面数据相对应的页面,页面中可以包含有文档、图片、文本框、按钮、单选框、复选框等等的页面元素,依此可以实现上述步骤101、步骤102以及步骤106中所述的用户终端与服务端进行交互的过程。当然,上述用户终端可以是个人计算机(如台式机、笔记本电脑、平板电脑、一体机)、智能手机、电子书、智能电视、数码相框、智能导航仪中的任意一种电子设备,并且具有网页浏览功能的任意程序或应用都可以视为浏览器的一种。
还需要说明的是,由于上述指令信息是用户在终端输出的页面中输入的,因此按照页面的设置可以具有规范的格式(例如仅给用户提供选择而不允许用户自行输入字符,或者设置相应的机制来拒绝用户输入的非法字符)。基于此,上述配置策略可以预先配置在本发明实施例的方法所应用的服务端中,以将具有规范格式的指令信息转换为查询服务端可以接受并执行的查询指令消息。当然,配置策略的具体内容需要依照指令信息的格式与查询指令消息的格式来进行预先制定。可以看出,基于页面的设置,本发明实施例可以直接在用户的输入方式上就间接地限定出允许执行在目标服务器上的命令信息,有利于提升查询服务的安全性。
还需要说明的是,上述安全策略指的是预先配置在查询服务端中的信息集合,主要用于在外部输入中过滤掉对于目标服务器而言存在安全风险的内容。举例来说,由于命令信息可以属于外部输入的一部分,因此安全策略可以记录存在安全风险的程序代码的特征,并在命令信息相互独立的部分之间将所有匹配任一特征的部分去除,以保障目标服务器的安全。再如,通过设置安全策略,可以将外部输入的可识别范围限制在安全风险程度可以接受的范围内,其可以视作以间接的方式对命令信息进行的过滤,本发明对此不做限制。
作为一种安全策略的设置方式的具体示例,上述安全策略可以包括用于滤除命令信息中预设的危险命令的过滤列表。具体来说,用于滤除命令信息中预设的危险命令的过滤列表可以直接将严重损害目标服务器的内容(比如对应于磁盘格式化的命令)进行滤除从而保障目标服务器的安全。
可以理解的是,用于执行本发明实施例的方法的设备与查询服务端之间、以及查询服务端与目标服务器之间均预先设置有网络连接关系,且目标服务器中也设有相应的数据收发端口,以使查询服务端可以将由查询指令消息得到的命令信息发送给目标服务器,并由目标服务器在执行后将执行结果返回给查询服务端。从而,查询服务端可以返回查询结果信息,使得本发明实施例的方法可以向终端发送包含至少部分查询结果信息(因为可能涉及到信息的加工和/或截取)的页面数据,使得用户可以在终端输出的页面中获取到查询结果。
由上述技术方案可知,本发明实施例可以保障安全的前提下利用查询服务端在用户与目标服务器之间建立服务器信息的查询服务。具体来说,该查询服务端可以通过安全策略的设置对有安全风险的命令进行过滤,并将没有安全风险的命令分发到各目标服务器来执行,从而可以查询服务端在拥有各目标服务器的操作权限的情况下,也可以保障各目标服务器的安全。对于用户来说,该方式不需要到特定的终端输入指令,也可以通过浏览网络页面便捷地获取到目标服务器的信息。所以,本发明实施例可以解决业务人员受到操作权限的限制而只能在特定的终端上查询服务器信息的问题。
相对于现有技术而言,本发明实施例可以使得用户摆脱服务器的操作权限对于服务器信息的查询手段的多方面限制,便捷地通过浏览网络页面随时随地查询到所需要的服务器信息,大大提升了查询效率。
作为一种具体的示例,图2是本发明一个实施例中一种生成查询指令消息的步骤流程示意图。参见图2,上述步骤103:按照预设的配置策略,根据指令信息生成匹配于查询服务端的查询指令消息,可以具体包括下述步骤:
步骤103a:获取查询指令消息的消息模板;
步骤103b:按照预设的配置策略解析指令信息,以向消息模板中添加:包括至少一个目标服务器的标识、对应于每一目标服务器的命令信息,以及用于从每一目标服务器的执行结果中提取出查询结果信息的至少一个查询结果位置标识。
其中需要说明的是,消息模板可以预先存储在本发明实施例的方法所应用的服务端中(例如将消息模板或其标识设置在配置策略中),也可以来自于向查询服务端请求消息模板后的接收,本发明对此不做限制。而上述配置策略中,可以设置将适于用户理解和应用的查询指令转化为匹配于查询服务器的查询指令消息相关信息。
举例来说,Linux架构下,“获取目标服务器S1与目标服务器S2中正在运行的进程数”需要在目标服务器S1与目标服务器S2上执行“top”指令,并在执行结果中形如“Tasks:150total,2running,148sleeping,0stopped,0zombie”的一串字符中提取出代表正在运行的进程(running)这一项之前的数字(例如上面的一串字符中正在运行的进程数为2)。然而,进行查询的用户可能不熟悉服务器的命令以及执行结果中的位置,而且执行结果中可能含有一些其他不宜使未知用户获知的信息。在此情况下,上述配置策略中可以规定页面中指定文本框中输入的“Running Task S1 S2”的字符串即代表“获取标识符分别为S1和S2的两个目标服务器上正在运行的进程数”的查询指令,并可以规定该查询指令对应于目标服务器S1和目标服务器S2的查询结果位置标识均指向执行结果中字符串“running”之前的数字。
基于此,用户不需要掌握查询服务端或者模板服务器相关用语规范一类的专业知识,就可以在终端输出的页面中适于用户理解的语句输入指令信息来实现所需要获知的服务器信息的查询。而且,查询指令的形式均是在配置策略中指定的,因此指定范围之外的信息均无法被识别;由此,可以将目标服务器所执行的命令信息的范围限制在安全防护方面可以接受的范围内。
相对应地,作为一种查询服务端的具体示例,上述步骤104中查询服务端所执行的步骤流程具体可以如下所述:
查询服务端接收到的查询指令消息包含:目标服务器S1的标识、目标服务器S2的标识、向目标服务器S1和目标服务器S2发送的命令信息“top”、与目标服务器S1对应的指向执行结果中字符串“running”之前的数字的查询结果位置标识、与目标服务器S2对应的指向执行结果中字符串“running”之前的数字的查询结果位置标识。进一步地,查询服务端依照安全策略对命令信息“top”进行过滤,并在判定其不存在安全风险后,分别向目标服务器S1和目标服务器S2发送命令信息“top”,并接收来自目标服务器S1的执行结果和目标服务器S2的执行结果。从而,查询服务端根据查询结果位置标识从来自目标服务器S1的执行结果的“Tasks:39total,4running,35sleeping,0stopped,0zombie”中提取出数字“4”,从来自目标服务器S2的执行结果的“Tasks:180total,10running,170sleeping,0stopped,0zombie”中提取出数字“10”,将数字“4”和数字“10”作为上述查询结果信息。
此外应理解的是,依照上述安全策略(过滤有安全风险的命令信息)的设置和/或配置策略(只能识别指定形式的查询指令)的设置,在不需要知道用户的操作权限的情况下也可以实现服务器信息的查询,从而使得用户摆脱服务器的操作权限对服务器信息的查询手段的多方面限制,大大提升了查询效率。
然而可以理解的是,不需要用户的操作权限也允许查询的服务器信息通常是非常有限的,因此本发明还可以通过结合用户的操作权限的验证来进一步扩大应用范围。
作为一种具体的示例,上述步骤103b:按照预设的配置策略解析指令信息,以向消息模板中添加:包括至少一个目标服务器的标识、对应于每一目标服务器的命令信息,以及用于从每一目标服务器的执行结果中提取出查询结果信息的至少一个查询结果位置标识,可以具体包括附图中未示出的下述步骤流程:
判断指令信息在配置策略中是否带有操作权限标识;
在指令信息在配置策略中带有操作权限标识时,根据操作权限标识对终端进行操作权限验证;
在终端通过操作权限验证之后,按照预设的配置策略解析指令信息,以向消息模板中添加:包括至少一个目标服务器的标识、对应于每一目标服务器的命令信息,以及用于从每一目标服务器的执行结果中提取出查询结果信息的至少一个查询结果位置标识。
而可以理解的是,若判定指令信息在配置策略中不带有操作权限标识,那么可以直接按照配置策略对其进行解析。在本发明的一个实施例中,上述操作权限标识可以是配置策略中与查询指令对应存储的一个属性值,而该属性值可以在接收到来自用户的查询指令之后标识该查询指令需要用户有什么样的操作权限才能执行。举例来说,在判断出查询指令由于在配置策略中涉及“reboot”(重启)的目标服务器的命令信息而带有最高级别的操作权限标识时,就需要依照最高级别的操作权限的标准对查询指令的来源进行相应的操作权限验证,其中可能涉及到发送需要提供验证信息的消息、接收验证信息、访问相应的目标服务器或查询服务端以进行验证、在目标服务器或查询服务端返回验证成功时通过操作权限验证、其他情况下不能通过操作权限验证等等的具体操作流程。根据操作权限验证的结果的不同,可以如上文所述的那样继续进行解析,也可以直接拒绝执行查询指令,向用户返回相应的提示信息。可以看出的是,该方式可以使得配置策略中增加涉及操作权限而具有一定安全风险的命令信息,扩大了应用范围。
而作为另一种示例,上述任意一种提供服务器信息的查询服务的方法的方案的基础之上,还可以包括未在附图中示出的下述步骤:
在将查询指令消息发送至查询服务端之前,获取来自终端的操作权限验证信息并加入至查询指令消息中,以使查询服务端在向目标服务器发送对应的命令信息之前,根据对操作权限验证信息的验证结果按照安全策略对命令信息的内容进行过滤。
此具体实施方式中,安全策略可以包括:以终端未通过操作权限验证为应用条件,用于滤除命令信息中任何需要操作权限的命令的过滤列表;以终端已通过相应等级的操作权限验证为应用条件,用于滤除命令信息中任何超过相应等级的操作权限的命令的过滤列表。可以理解的是,此时执行在查询服务端上的过滤过程进一步细化为依照终端的操作权限验证的结果来进行:对于没有进行验证或者验证未通过的终端,可以将滤除范围设定成所有需要操作权限的命令;对于通过了相应等级的验证的终端,可以将滤除范围设定成所有超过相应等级的操作权限的命令。由此,同样可以使得消息监控策略中增加涉及操作权限而具有一定安全风险的命令信息,扩大应用范围。
更进一步地,在按照上述任意一种或者多种的方式增加消息监控策略的内容之后,本发明实施例的方法可以不仅限于服务器信息的查询,而可以进一步推广为与目标服务器有关的任意操作。
基于同样的发明构思,图3是本发明一个实施例中一种提供服务器信息的查询服务的装置的结构框图。参见图3,该装置包括:
第一发送单元31,用于依照终端发送的访问请求向所述终端发送页面数据,以使所述终端向用户输出对应的页面并返回用户在页面中输入的包括查询目标和查询项目的指令信息;
第一接收单元32,用于接收来自终端的所述指令信息;
生成单元33,用于按照预设的配置策略,根据所述指令信息生成匹配于查询服务端的查询指令消息;
第二发送单元34,用于将所述查询指令消息发送至所述查询服务端,以使所述查询服务端:根据所述查询指令消息向作为查询目标的至少一个目标服务器发送按照预设的安全策略过滤后的命令信息并接收目标服务器对所述命令信息的执行结果,以返回由所述执行结果生成的查询结果信息;
第二接收单元35,用于接收来自所述查询服务端的查询结果信息;
所述第一发送单元31还用于向所述终端发送包含至少部分所述查询结果信息的页面数据,以使所述终端向用户输出包含查询结果的页面。
需要说明的是,本发明实施例的装置可以应用于任意一种可以提供网站服务的服务端上,所述服务端具体可以是单个服务器设备、服务器群组、服务器集群、云服务器设备等等;然而应当理解的是,包含上述单元的任意一种电子设备均可以实现本发明。
还需要说明的是,上述目标服务器和上述服务器信息分别指的是作为查询对象的服务器(即查询目标)及其内部信息(即查询项目,例如内存使用率、进程列表、数据库状态等等)。由此,上述服务器信息的查询服务主要指的是获取查询指令消息并依照该查询指令消息从目标服务器中获取到所需要的服务器信息。而上述查询服务端主要指的是由查询指令消息获取到所需要的服务器信息的服务端。
还需要说明的是,上述访问请求可以例如通过HTTP(HyperText TransferProtocol,超文本传输协议)、HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer,超文本传输安全协议)或者其他任意的网络协议由用户终端的浏览器发送至本发明实施例所应用到的服务端上。由此,按照网页访问流程,服务端可以向用户发送页面数据,以使用户终端的浏览器输出与页面数据相对应的页面,页面中可以包含有文档、图片、文本框、按钮、单选框、复选框等等的页面元素,依此可以实现上述步第一发送单元31、第一接收单元32中所述的用户终端与服务端进行交互的过程。当然,上述用户终端可以是个人计算机(如台式机、笔记本电脑、平板电脑、一体机)、智能手机、电子书、智能电视、数码相框、智能导航仪中的任意一种电子设备,并且具有网页浏览功能的任意程序或应用都可以视为浏览器的一种。
还需要说明的是,由于上述指令信息是用户在终端输出的页面中输入的,因此按照页面的设置可以具有规范的格式(例如仅给用户提供选择而不允许用户自行输入字符,或者设置相应的机制来拒绝用户输入的非法字符)。基于此,上述配置策略可以预先配置在本发明实施例的装置所应用的服务端中,以将具有规范格式的指令信息转换为查询服务端可以接受并执行的查询指令消息。当然,配置策略的具体内容需要依照指令信息的格式与查询指令消息的格式来进行预先制定。可以看出,基于页面的设置,本发明实施例可以直接在用户的输入方式上就间接地限定出允许执行在目标服务器上的命令信息,有利于提升查询服务的安全性。
还需要说明的是,上述安全策略指的是预先配置在查询服务端中的信息集合,主要用于在外部输入中过滤掉对于目标服务器而言存在安全风险的内容。举例来说,由于命令信息可以属于外部输入的一部分,因此安全策略可以记录存在安全风险的程序代码的特征,并在命令信息相互独立的部分之间将所有匹配任一特征的部分去除,以保障目标服务器的安全。再如,通过设置安全策略,可以将外部输入的可识别范围限制在安全风险程度可以接受的范围内,其可以视作以间接的方式对命令信息进行的过滤,本发明对此不做限制。
作为一种安全策略的设置方式的具体示例,上述安全策略可以包括用于滤除命令信息中预设的危险命令的过滤列表。具体来说,用于滤除命令信息中预设的危险命令的过滤列表可以直接将严重损害目标服务器的内容(比如对应于磁盘格式化的命令)进行滤除从而保障目标服务器的安全。
可以理解的是,用于执行本发明实施例的装置的设备与查询服务端之间、以及查询服务端与目标服务器之间均预先设置有网络连接关系,且目标服务器中也设有相应的数据收发端口,以使查询服务端可以将由查询指令消息得到的命令信息发送给目标服务器,并由目标服务器在执行后将执行结果返回给查询服务端。从而,查询服务端可以返回查询结果信息,使得本发明实施例的装置可以向终端发送包含至少部分查询结果信息(因为可能涉及到信息的加工和/或截取)的页面数据,使得用户可以在终端输出的页面中获取到查询结果。
由上述技术方案可知,本发明实施例可以保障安全的前提下利用查询服务端在用户与目标服务器之间建立服务器信息的查询服务。具体来说,该查询服务端可以通过安全策略的设置对有安全风险的命令进行过滤,并将没有安全风险的命令分发到各目标服务器来执行,从而可以查询服务端在拥有各目标服务器的操作权限的情况下,也可以保障各目标服务器的安全。对于用户来说,该方式不需要到特定的终端输入指令,也可以通过浏览网络页面便捷地获取到目标服务器的信息。所以,本发明实施例可以解决业务人员受到操作权限的限制而只能在特定的终端上查询服务器信息的问题。
相对于现有技术而言,本发明实施例可以使得用户摆脱服务器的操作权限对于服务器信息的查询手段的多方面限制,便捷地通过浏览网络页面随时随地查询到所需要的服务器信息,大大提升了查询效率。
作为一种具体的示例,所述生成单元33可以具体包括:
获取模块,用于获取所述查询指令消息的消息模板;
解析模块,用于按照预设的配置策略解析所述指令信息,以向所述消息模板中添加:包括所述至少一个目标服务器的标识、对应于每一目标服务器的命令信息,以及用于从每一目标服务器的所述执行结果中提取出所述查询结果信息的至少一个查询结果位置标识。
其中需要说明的是,消息模板可以预先存储在本发明实施例的装置所应用的服务端中(例如将消息模板或其标识设置在配置策略中),也可以来自于向查询服务端请求消息模板后的接收,本发明对此不做限制。而上述配置策略中,可以设置将适于用户理解和应用的查询指令转化为匹配于查询服务器的查询指令消息相关信息。
举例来说,Linux架构下,“获取目标服务器S1与目标服务器S2中正在运行的进程数”需要在目标服务器S1与目标服务器S2上执行“top”指令,并在执行结果中形如“Tasks:150total,2running,148sleeping,0stopped,0zombie”的一串字符中提取出代表正在运行的进程(running)这一项之前的数字(例如上面的一串字符中正在运行的进程数为2)。然而,进行查询的用户可能不熟悉服务器的命令以及执行结果中的位置,而且执行结果中可能含有一些其他不宜使未知用户获知的信息。在此情况下,上述配置策略中可以规定页面中指定文本框中输入的“Running Task S1 S2”的字符串即代表“获取标识符分别为S1和S2的两个目标服务器上正在运行的进程数”的查询指令,并可以规定该查询指令对应于目标服务器S1和目标服务器S2的查询结果位置标识均指向执行结果中字符串“running”之前的数字。
基于此,用户不需要掌握查询服务端或者模板服务器相关用语规范一类的专业知识,就可以在终端输出的页面中适于用户理解的语句输入指令信息来实现所需要获知的服务器信息的查询。而且,查询指令的形式均是在配置策略中指定的,因此指定范围之外的信息均无法被识别;由此,可以将目标服务器所执行的命令信息的范围限制在安全防护方面可以接受的范围内。
相对应地,作为一种查询服务端的具体示例,上述查询服务端所执行的步骤流程具体可以如下所述:
查询服务端接收到的查询指令消息包含:目标服务器S1的标识、目标服务器S2的标识、向目标服务器S1和目标服务器S2发送的命令信息“top”、与目标服务器S1对应的指向执行结果中字符串“running”之前的数字的查询结果位置标识、与目标服务器S2对应的指向执行结果中字符串“running”之前的数字的查询结果位置标识。进一步地,查询服务端依照安全策略对命令信息“top”进行过滤,并在判定其不存在安全风险后,分别向目标服务器S1和目标服务器S2发送命令信息“top”,并接收来自目标服务器S1的执行结果和目标服务器S2的执行结果。从而,查询服务端根据查询结果位置标识从来自目标服务器S1的执行结果的“Tasks:39total,4running,35sleeping,0stopped,0zombie”中提取出数字“4”,从来自目标服务器S2的执行结果的“Tasks:180total,10running,170sleeping,0stopped,0zombie”中提取出数字“10”,将数字“4”和数字“10”作为上述查询结果信息。
此外应理解的是,依照上述安全策略(过滤有安全风险的命令信息)的设置和/或配置策略(只能识别指定形式的查询指令)的设置,在不需要知道用户的操作权限的情况下也可以实现服务器信息的查询,从而使得用户摆脱服务器的操作权限对服务器信息的查询手段的多方面限制,大大提升了查询效率。
然而可以理解的是,不需要用户的操作权限也允许查询的服务器信息通常是非常有限的,因此本发明还可以通过结合用户的操作权限的验证来进一步扩大应用范围。
作为一种具体的示例,所述解析模块可以具体包括:
判断子模块,用于判断所述指令信息在所述配置策略中是否带有操作权限标识;
验证子模块,用于在所述指令信息在所述配置策略中带有操作权限标识时,根据所述操作权限标识对所述终端进行操作权限验证;
解析子模块,用于在所述终端通过所述操作权限验证之后,按照预设的配置策略解析所述指令信息,以向所述消息模板中添加:包括所述至少一个目标服务器的标识、对应于每一目标服务器的命令信息,以及用于从每一目标服务器的所述执行结果中提取出所述查询结果信息的至少一个查询结果位置标识。
而可以理解的是,若判定指令信息在配置策略中不带有操作权限标识,那么可以直接按照配置策略对其进行解析。在本发明的一个实施例中,上述操作权限标识可以是配置策略中与查询指令对应存储的一个属性值,而该属性值可以在接收到来自用户的查询指令之后标识该查询指令需要用户有什么样的操作权限才能执行。举例来说,在判断出查询指令由于在配置策略中涉及“reboot”(重启)的目标服务器的命令信息而带有最高级别的操作权限标识时,就需要依照最高级别的操作权限的标准对查询指令的来源进行相应的操作权限验证,其中可能涉及到发送需要提供验证信息的消息、接收验证信息、访问相应的目标服务器或查询服务端以进行验证、在目标服务器或查询服务端返回验证成功时通过操作权限验证、其他情况下不能通过操作权限验证等等的具体操作流程。根据操作权限验证的结果的不同,可以如上文所述的那样继续进行解析,也可以直接拒绝执行查询指令,向用户返回相应的提示信息。可以看出的是,该方式可以使得配置策略中增加涉及操作权限而具有一定安全风险的命令信息,扩大了应用范围。
而作为另一种示例,上述任意一种提供服务器信息的查询服务的装置的方案的基础之上,还可以包括未在附图中示出的下述结构:
获取单元,用于在所述第二发送单元34将所述查询指令消息发送至所述查询服务端之前,获取来自所述终端的操作权限验证信息并加入至所述查询指令消息中,以使所述查询服务端在向目标服务器发送对应的命令信息之前,根据对所述操作权限验证信息的验证结果按照所述安全策略对所述命令信息的内容进行过滤。
此具体实施方式中,安全策略可以包括:以终端未通过操作权限验证为应用条件,用于滤除命令信息中任何需要操作权限的命令的过滤列表;以终端已通过相应等级的操作权限验证为应用条件,用于滤除命令信息中任何超过相应等级的操作权限的命令的过滤列表。可以理解的是,此时执行在查询服务端上的过滤过程进一步细化为依照终端的操作权限验证的结果来进行:对于没有进行验证或者验证未通过的终端,可以将滤除范围设定成所有需要操作权限的命令;对于通过了相应等级的验证的终端,可以将滤除范围设定成所有超过相应等级的操作权限的命令。由此,同样可以使得消息监控策略中增加涉及操作权限而具有一定安全风险的命令信息,扩大应用范围。
更进一步地,在按照上述任意一种或者多种的方式增加消息监控策略的内容之后,本发明实施例的装置可以不仅限于服务器信息的查询,而可以进一步推广为与目标服务器有关的任意操作。
本发明的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在于该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是互相排斥之处,可以采用任何组合对本说明书(包括伴随的权利要求和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种提供服务器信息的查询服务的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。