CN113282374B - 一种服务器控制方法、装置及系统 - Google Patents
一种服务器控制方法、装置及系统 Download PDFInfo
- Publication number
- CN113282374B CN113282374B CN202110713735.9A CN202110713735A CN113282374B CN 113282374 B CN113282374 B CN 113282374B CN 202110713735 A CN202110713735 A CN 202110713735A CN 113282374 B CN113282374 B CN 113282374B
- Authority
- CN
- China
- Prior art keywords
- server
- query
- program
- script
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 111
- 238000013515 script Methods 0.000 claims abstract description 295
- 230000008569 process Effects 0.000 claims description 39
- 230000002452 interceptive effect Effects 0.000 claims description 36
- 238000007689 inspection Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 16
- 238000004806 packaging method and process Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000005538 encapsulation Methods 0.000 claims description 7
- 238000002955 isolation Methods 0.000 claims description 5
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000000926 separation method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本公开实施例提供一种服务器控制方法、装置及系统,该方法包括:通过执行程序接收客户端发送的控制脚本,其中控制脚本中包括N个子脚本,N为正整数;若子脚本的类型为查询类型子脚本,则通过执行程序将查询类型子脚本转化为查询指令,通过执行程序调用查询程序,并通过查询程序执行查询指令,以获取服务器的运行状态数据,并通过执行程序将服务器的运行状态数据发送至客户端。本实施例提供的方法能够实现对服务器的高效的批量控制。
Description
技术领域
本公开实施例涉及计算机技术领域,尤其涉及一种服务器控制方法、装置及系统。
背景技术
随着信息技术和大数据技术的不断进步,服务器的应用也越来越广泛,使得企业配置的服务器也越来越多。对于企业中的服务器,经常需要根据业务或者运维需求对服务器批量地进行控制操作,如批量安装或卸载软件、监控运行状态等。
现有技术中,对服务器进行批量控制时,需要频繁进行登录操作,存在操作步骤繁琐、配置效率差的问题。
发明内容
本公开实施例提供一种服务器控制方法、装置及系统,以克服现有技术对服务器进行批量控制时,存在的处理步骤较为繁琐,配置效率较差的问题。
第一方面,本公开实施例提供一种服务器控制方法,应用于服务器,所述服务器中设置有执行程序和查询程序,所述方法包括:
通过所述执行程序接收客户端发送的控制脚本,其中所述控制脚本中包括N个子脚本,N为正整数;
若所述子脚本的类型为查询类型子脚本,则通过所述执行程序将所述查询类型子脚本转化为查询指令,通过所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,并通过所述执行程序将所述服务器的运行状态数据发送至所述客户端。
第二方面,本公开实施例还提供一种服务器控制方法,应用于客户端,所述方法包括:
获取控制脚本,其中所述制脚本中包括N个子脚本,N为正整数;
将所述控制脚本发送至待控制的服务器,其中所述服务器中设置有执行程序和查询程序,所述控制脚本用于指示所述服务器在确定所述子脚本的类型为查询类型子脚本的情况下,通过所述执行程序将所述查询类型子脚本转化为查询指令,通过所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,并将所述服务器的运行状态数据发送至所述客户端;
接收所述服务器发送的所述服务器的运行状态数据。
第三方面,本公开实施例提供一种服务器控制装置,应用于服务器,所述服务器中设置有执行程序和查询程序,包括:
其中,脚本接收模块,用于通过所述执行程序接收客户端发送的控制脚本,其中所述控制脚本中包括N个子脚本,N为正整数;
查询模块,用于若所述子脚本的类型为查询类型子脚本,则通过所述执行程序将所述查询类型子脚本转化为查询指令,通过所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,并通过所述执行程序将所述服务器的运行状态数据发送至所述客户端。
第四方面,本公开实施例还提供一种服务器控制装置,应用于应用于客户端,包括:
配置模块,用于获取控制脚本,其中所述制脚本中包括N个子脚本,N为正整数;
发送模块,用于将所述控制脚本发送至待控制的服务器,其中所述服务器中设置有执行程序和查询程序,所述控制脚本用于指示所述服务器在确定所述子脚本的类型为查询类型子脚本的情况下,通过所述执行程序将所述查询类型子脚本转化为查询指令,通过所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,并将所述服务器的运行状态数据发送至所述客户端;
接收模块,用于接收所述服务器发送的所述服务器的运行状态数据。
第五方面,本公开实施例提供一种服务器控制系统,包括客户端和服务器,其中所述服务器中设置有执行程序和查询程序;
所述客户端,用于获取控制脚本,并将所述控制脚本发送至所述服务器,其中所述制脚本中包括N个子脚本,N为正整数;
所述服务器,用于在确定所述子脚本的类型为查询类型子脚本的情况下,通过所述执行程序将所述查询类型子脚本转化为查询指令,通过所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,并将所述服务器的运行状态数据发送至所述客户端。
第六方面,本公开实施例提供一服务器,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的服务器控制方法。
第七方面,本公开实施例提供一客户端设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的服务器控制方法。
第八方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的服务器控制方法,以及第二方面以及第二方面各种可能的设计所述的服务器控制方法。
第九方面,本公开实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上第一方面以及第一方面各种可能的设计所述的服务器控制方法,以及第二方面以及第二方面各种可能的设计所述的服务器控制方法。
本公开实施例提供的服务器控制方法、装置及系统,该方法通过服务器的执行程序接收用户在客户端配置的控制脚本,执行程序识别该控制脚本中的子脚本的类型,若为查询类型子脚本,则执行程序将该查询类型子脚本转化为服务器的查询程序可以执行的查询指令,再通过执行程序调用该查询程序执行查询指令,从而获得服务器的运行状态数据,并将运行状态数据返回至客户端。由于用户仅需要在客户端配置脚本,然后通过服务器中设置的执行程序和查询程序的协作处理以获取服务器的运行状态,用户操作简便,不需要频繁的登录堡垒机和Ansible服务器,实现了用户对服务器的高效的批量控制。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的对服务器进行批量控制方法的场景示意图;
图2为本公开实施例提供的服务器控制系统的架构示意图;
图3为本公开实施例提供的服务器控制方法的流程示意图一;
图4为本公开实施例提供的服务器控制方法的流程示意图二;
图5为本公开实施例提供的服务器控制方法的流程示意图三;
图6为本公开实施例提供的服务器控制方法的流程示意图四;
图7为本公开实施例提供的服务器控制方法的流程示意图五;
图8为本公开实施例提供的服务器控制方法的流程示意图六;
图9为本公开实施例提供的服务器控制装置的结构框图一;
图10为本公开实施例提供的服务器控制装置的结构框图二;
图11为本公开实施例提供的服务器的硬件结构示意图;
图12为本公开实施例提供的客户端设备的硬件结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
在一种实现方式中,对服务器进行批量控制的方法时,需要用户通过客户端登录到堡垒机,在堡垒机上选择安装有Ansible(自动化运维工具)的服务器,在Ansible服务器上输入配置脚本,并选择需要配置的服务器,依次将各配置脚本发送到选择的服务器上,实现对服务器的控制。参考图1,图1为提供的对服务器进行批量控制方法的场景示意图。如图1所示,用户通过Xshell(安全终端模拟软件)的客户端登录到堡垒机上,用户在堡垒机上选择安装有Ansible的服务器,并登录到Ansible服务器。现有技术中通过堡垒机和Ansible服务器对服务器集群进行批量控制时,需要频繁登录客户端和Ansible服务器,使得处理步骤较为繁琐、服务器配置控制效率低下。
为了解决上述技术问题,本实施例提供了一种服务器控制方法,首先,在服务器上安装执行程序和查询程序;然后,用户通过客户端进行配置生成控制脚本,控制脚本中包括用户选择配置的多个子脚本,并将控制脚本发送给服务器,服务器上的执行程序将多个子脚本中查询类型的子脚本,进行格式的转化,得到查询指令,执行程序通过调用查询程序执行各查询指令,以获取服务器的运行状态数据;最后,通过执行程序将服务器的运行状态数据发送至客户端,实现用户对服务器的控制。通过在客户端配置脚本、以及通过服务器上设置的执行程序和查询程序的协作处理,用户操作简便,不需要频繁的登录堡垒机和Ansible服务器,实现了对服务器的高效的批量控制。
图2为本公开实施例提供的服务器控制系统的架构示意图。如图2所示,本实施例提供的系统包括客户端101和服务器102。其中,客户端101可以安装在手机、平板电脑、个人电脑、可穿戴电子设备和智能家居设备等设备上。本实施例对客户端101的实现方式不做特别限制,该客户端101上能够与用户进行输入输出交互即可。服务器102可以包括一台服务器或几台服务器组成的集群。
图3为本公开实施例提供的服务器控制方法的流程示意图一。本实施例的方法可以应用在图1所示的服务器中,该服务器中设置有执行程序和查询程序,该服务器控制方法包括:
S201:通过执行程序接收客户端发送的控制脚本,其中控制脚本中包括N个子脚本,N为正整数。
在本公开实施例中,服务器上设置的执行程序和查询程序,可以是每台服务器在装机初始化时安装在各服务器上的。
其中,执行程序可以是Agent软件。Agent软件,是一种在分布式系统或者协作系统中,能够持续自主地运行的计算实体。
在本公开实施例中,客户端可以是任何类型的客户端。
可选地,客户端为web客户端(也称“网页客户端”)或Xshell客户端。
具体地,用户在客户端配置多个子脚本,并从多个子脚本选择N个子脚本进行组合,得到控制脚本。
其中,多个子脚本按照命令的类型可以按照用途的不同进行分类为:查询类型子脚本和配置类型子脚本。
这里,查询类型子脚本可以是osquery命令,配置类型子脚本可以是shell命令。
例如,osquery命令可以是“IP=$OSQUERY_GET_LOCAl_IP”,该命令用于获取本机的IP地址。
shell命令可以是“$SHELL_check_db_user_peimission$info”,该命令用于配置运行用户权限。
S202:若子脚本的类型为查询类型子脚本,则通过执行程序将查询类型子脚本转化为查询指令,通过执行程序调用查询程序,并通过查询程序执行查询指令,以获取服务器的运行状态数据,并通过执行程序将服务器的运行状态数据发送至客户端。
具体地,执行程序对子脚本中的特征字符进行识别,判断该子脚本属于查询类型子脚本或配置类型子脚本。
例如,若识别到子脚本中包含“$OSQUERY”字符,则判定该子脚本为查询类型子脚本。若识别到子脚本中包含“$SHELL”字符,则判定该子脚本为配置类型子脚本。
需要说明的是,子脚本可以由用户进行自定义,该自定义的的子脚本可以是具有预设特征字符的自定义格式的命令。通过识别该预设特征字符识别该自定义的子脚本的类型。这里,预设特征字符可以是“$CCMD”,通过识别该“$CCMD”识别该子脚本的类型为自定义类型。
具体地,执行程序通过调用查询程序,在服务器上运行该查询程序,将可被该查询程序执行的查询指令输入该查询程序中进行运行,从而获取该查询指令需要查询的服务器的运行状态数据。
其中,服务器的运行状态数据是根据查询指令获取的,因此,查询指令指示的查询的数据种类,也就是待采集的服务器的运行状态数据的种类。
在本公开的实施例中,通过执行程序将查询类型子脚本转化为查询指令,可以是将查询类型子脚本的结构化查询语言(Structured Query Language,SQL)转化为可以被执行程序执行的查询命令。若执行程序为osquery程序,则将查询类型子脚本的结构化查询语言组装为osquery对应的命令格式。
例如,查询类型子脚本的结构化查询语言为“IP=$OSQUERY_GET_LOCAl_IP”,执行程序将其进行转化组成osquery对应的命令格式为“/bin/osqueryi/get local ip”。
从上述描述可知,本实施例通过服务器的执行程序接收用户在客户端配置的控制脚本,执行程序识别该控制脚本中的子脚本的类型,若为查询类型子脚本,则执行程序将该查询类型子脚本转化为服务器的查询程序可以执行的查询指令,再通过执行程序调用该查询程序执行查询指令,从而获得服务器的运行状态数据,并将运行状态数据返回至客户端。由于用户仅需要在客户端配置脚本,然后通过服务器中设置的执行程序和查询程序的协作处理以获取服务器的运行状态,用户操作简便,不需要频繁的登录堡垒机和Ansible服务器,实现了用户对服务器的高效的批量控制。
在本公开的一个实施例中,在步骤S201中,服务器的执行程序接收客户端发送的控制脚本,对控制脚本中的N个子脚本进行子脚本类型的识别后,上述服务器控制方法,还包括:
若子脚本的类型为配置类型子脚本,则通过执行程序将配置类型子脚本写入服务器的指定目录并运行配置类型子脚本,以完成对服务器的配置操作。
在本公开实施例中,配置类型子脚本,用于指示对服务器的参数或配置信息进行配置。
具体地,执行程序通过对配置类型子脚本进行解析,得到该配置类型子脚本中包含的存储路径信息,执行程序将配置类型子脚本存入该存储路径信息对应的指定目录中,并设置该配置类型子脚本具有控制员权限,使得该配置类型子脚本被执行运行,根据配置类型子脚本运行过程中的指示实现对服务器参数或配置信息的配置。
在本公开实施例中,配置类型子脚本包括但不限于:在服务器上安装新软件、更新服务器上安装的软件等等。
从上述描述可知,在控制脚本中可以包括N个子脚本,这N个子脚本中可以是查询类型子脚本和配置类型子脚本的集合,其中查询类型子脚本用于指示查询服务器的运行状态数据,配置类型子脚本用于对服务器的参数或配置信息进行配置,用户通过一个控制脚本即可实现对服务器的状态查询和配置操作,进一步方便了用户对服务器的批量控制操作,提升批量服务器控制效率。
在本公开的一个实施例中,上述步骤S202中,通过执行程序将查询类型子脚本转化为查询指令,包括:
通过执行程序将查询类型子脚本封装为与服务器的操作系统类型对应的查询指令。
具体地,执行程序获取与服务器操作系统类型对应的编辑文件,其中编辑文件中包括封装规则信息;编辑文件将查询类型子脚本按照封装规则信息进行封装,得到查询指令。
在本公开实施例中,服务器根据业务的需求不同,通常会安装不同类型的操作系统。其中,操作系统包括但不限于Window操作系统和Linux操作系统。
其中编辑文件包括但不限于Window操作系统对应的编辑文件和Linux操作系统对应的编辑文件。
其中,查询类型子脚本的格式可以是SQL语句。通过识别查询类型子脚本的SQL语句中的指定的字符,通过指定字符将SQL语句进行拆分,得到SQL语句分段,编辑文件中将封装规则信息填充至各SQL语句分段之间,得到查询指令。
这里,封装规则信息的具体设置与操作系统类型相关。具体地,封装规则信息中包括与操作系统类型关联的封装命令的命令头部段和/或命令尾部段。
例如,查询类型子脚本的SQL语句为GET_LOCAL_IP和GET_PROCESS,服务器的操作系统为Linux操作系统,其对应的封装规则信息如下:
IP=$OSQUERY_XXX(其中IP=$OSQUERY_为Linux操作系统的查询IP地址的指令的命令头部段)
PRO_INFOS=$OSQUERY_XXX“{“type”:[“mysql”,“tidb”]}”(其中,PRO_INFOS=$OSQUERY_为Linux操作系统查询本机进程的指令的命令头部段,“{“type”:[“mysql”,“tidb”]}”为Linux操作系统查询本机进程的指令的命令尾部段)
则,封装规则信息填充至各SQL语句分段之间,得到查询指令为:
IP=$OSQUERY_GET_LOCAl_IP#获取本机IP
PRO_INFOS=$OSQUERY_GET_PROCESS“{“type”:[“mysql”,“tidb”]}”#获取本机进程信息。
从上述描述可知,通常,在现有技术中的执行程序没有对脚本进行整合封装的功能,而本实施例通过执行程序对脚本按照服务器的操作系统的类型进行封装,可以采用同样格式的查询类型子脚本,查询不同操作系统的服务器,从而实现对不同操作系统的服务器在客户端进行统一的控制,使得本实施例提供的服务器控制方法更具有通用性。
图4为本公开实施例提供的服务器控制方法的流程示意图二。在上述各实施例的基础上,上述查询程序为用户配置查询程序,上述步骤S202中,执行程序调用所述查询程序,并通过查询程序执行查询指令,以获取服务器的运行状态数据,具体包括:
S301:通过执行程序建立与用户配置查询程序的交互连接。
在本公开实施例中,执行程序建立的与用户配置查询程序的交互连接,可以是交互长连接,也可以是交互短连接,对此本实施例不作任何限制。其中,不同的连接方式对应不同的传输协议,如长连接传输协议和短连接传输协议,根据长连接传输协议和短连接传输协议,可以建立长连接或短连接。其中,长连接传输协议指的是通讯双方在建立连接后连续发送数据;短连接传输协议指的通讯双方在建立连接后仅能发送一次数据,数据发送完后则连接断开。
S302:执行程序将查询指令通过交互连接输入用户配置查询程序。
在本公开实施例中,执行程序对查询指令进行压缩,并添加交互连接传输协议对应的报文头得到传输报文,并将传输报文通过交互连接的通信通道发送至用户配置查询程序。
S303:通过用户配置查询程序执行查询指令以采集服务器的运行状态数据。
在本公开实施例中,用户配置查询程序对传输报文进行解压缩,得到对应的查询指令。
S304:通过执行程序关闭与用户配置查询程序的交互连接。
在本公开实施例中,执行程序关闭与用户配置查询程序的交互长连接或交互短连接。
现有技术中,用户配置查询程序,指的是用户通过直接输入查询指令以查询服务器的运行状态数据。
可选地,用户配置查询程序为osquery程序。现有的osquery程序直接与用户进行交互,用户将查询命令直接手动输入osquery程序,osquery程序执行查询命令查询服务器的运行状态数据。而本实施例中,通过执行程序与osquery程序建立交互连接,执行程序将查询指令,通过交互连接输入osquery程序,而不是用户直接在osquery程序中输入查询指令,执行程序模拟用户与osquery程序之间的交互。
从上述描述可知,通过执行程序与用户配置查询程序之间建立交互连接,由执行程序将用户在客户端配置的查询类型子脚本转化得到查询指令,通过交互连接输入用户配置查询程序,而不是用户直接在服务器的用户配置查询程序中输入查询指令,即通过执行程序模拟用户与用户配置查询之间的交互,使得用户配置查询具有向客户端的用户直接提供查询接口的功能,使得用户在客户端可以便捷地查询服务器的运行状态数据。
在本公开的一个实施例中,在上述实施例的基础上,步骤S301中,通过执行程序建立与用户配置查询程序的交互连接,具体包括:
S3011:通过执行程序发送连接请求报文至用户配置查询程序。
在本公开实施例中,连接请求报文的格式可以是http报文或tcp报文。
其中,连接请求报文中可以包括验证信息和连接方式信息。这里,连接方式信息可以包括长连接或短连接。
S3012:用户配置查询程序响应连接请求报文发送连接响应报文至执行程序,其中连接响应报文包括连接方式信息和失效时间,其中连接方式信息和失效时间为用户在客户端预先设置后发送至执行程序的。
具体地,用户配置查询程序对连接请求报文中的验证信息进行验证,若验证通过则根据连接请求报文中的连接方式信息和失效时间,生成连接响应报文,并发送至执行程序。
S3013:执行程序根据连接方式信息和失效时间建立与用户配置查询程序的交互连接。
在本公开实施例中,执行程序接收到连接响应报文后,确定与用户配置查询程序完成了连接认证过程,按照连接方式信息和失效时间与用户配置查询程序进行数据交互传输。
其中,按照连接方式信息和失效时间与用户配置查询程序进行数据交互传输,指的是执行程序在失效时间通过长连接或短连接进行数据交互,若失效时间没有数据交互,则需要重新发起连接请求。
例如,若连接请求报文为http报文格式,连接请求报文包含的验证信息可以是执行程序的密钥。连接方式信息可以是“keep-alive”(长连接)。连接响应报文包括的连接方式信息为“keep-alive”(长连接)、失效时间为“timeout 30s”(失效时间30秒)。
从上述描述可知,通过执行程序与用户配置查询程序的连接请求和响应,按照相应的连接方式信息和失效时间,建立与用户配置查询程序的交互连接,由于连接方式信息和失效时间是用户在客户端预先设置的,因此用户能够在客户端设置执行程序与用户配置查询程序的交互连接的方式和失效时间,灵活性更高。
在本公开的另一个实施例中,在上述步骤S304中,通过执行程序关闭与用户配置查询程序的交互连接,具体包括:
执行程序发送连接关闭报文至用户配置查询程序,用户配置查询程序根据连接关闭报文断开与用户配置查询程序的交互连接。
在本公开实施例中,连接关闭报文包括关闭连接信息,如“close connection”。用户配置查询程序对连接关闭报文进行识别,识别到关闭连接信息,即“close connection”,则断开与用户配置查询程序的交互连接。
在本公开的一个实施例中,在上述步骤S301,通过执行程序建立与用户配置查询程序的交互连接之后,还包括:
S305:通过用户配置查询程序按照数据格式参数对应的格式提取服务器的运行状态数据,其中,数据格式参数是通过执行程序设置的。
在本公开实施例中,执行程序通过交互连接设置用户配置查询程序的数据格式参数,以使用户配置查询程序能够按照数据格式参数对应的格式提取服务器的运行状态数据。
具体地,步骤S305中,通过用户配置查询程序按照数据格式参数对应的格式提取服务器的运行状态数据,具体包括:
S3051:用户配置查询程序采集服务器的运行数据。
在本公开实施例中,服务器的运行数据可以是服务器的各运行参数。例如,CPU(Central Processing Unit,中央处理器)使用率、内存使用率等运行参数。
S3052:用户配置查询程序根据数据格式参数对运行数据进行处理。
在本公开实施例中,可以将服务器的各运行参数按照数据格式参数对应的格式进行显示。
S3053:用户配置查询程序从处理之后的运行数据中提取服务器的运行状态数据。
在本公开实施例中,用户配置查询程序从按照数据格式参数对应的格式进行显示的运行数据中提取所述服务器的运行状态数据。
从上述描述可知,通过执行程序对用户配置查询程序的数据格式参数进行设置,用户配置查询程序对采集的服务器的运行数据按照数据格式参数进行处理,从处理之后的运行数据中提取所述服务器的运行状态数据,能够实现按照用户需要的数据格式参数对服务器的运行数据进行转化,可以根据用户的需求提取服务器的运行状态数据,进而可以灵活的获取服务器的运行状态数据。
在本公开的一个实施例中,在上述实施例的基础上,数据格式参数包括列表显示模式和隔离字符,步骤S3052中,用户配置查询程序根据数据格式参数对运行数据进行处理的具体过程,详述如下:
用户配置查询程序根据列表显示模式显示服务器的运行数据,和/或在运行数据的各项数据之间添加隔离字符。
在本公开实施例中,列表显示模式,用于指示将服务器的运行数据的显示模式转化为列表格式显示。隔离字符,用于指示在运行数据的各项数据之间添加隔离字符。
可选地,隔离字符可以是字符“|”。
下面,以用户配置查询程序为osquery程序为例,进行说明。
osquery程序采集的服务器的运行数据,如下表格1所示:
表格1
uid | uid_signed | gid_signed | username | description | directory | shell | uuid |
0 | 0 | 0 | root | root | /root | /bin/bash | |
1 | 1 | 1 | bin | bin | /bin | /sbin/nologin | |
2 | 2 | 2 | daemon | daemon | /sbin | /sbin/nologin | |
3 | 3 | 4 | adm | adm | /var/adm | /sbin/nologin | |
4 | 4 | 7 | lp | lp | /var/spool/lpd | /sbin/nologin |
表格中,uid为用户标识;gid为用户组标识;uid_signed为默认用户标识;为gid_signed默认用户组标识;username为用户名;description为属性;directory为路径;shell为查询命令;uuid为全球唯一的机器生成的标识符。
执行程序通过交互连接设置osquery程序的数据格式参数,其中数据格式参数包括列表显示模式和\或隔离字符。具体地,执行程序向osquery程序输入如下两个命令:
osquery>mode list(指示指示将服务器的运行数据的显示模式转化为列表格式显示)。
osquery>separator|(指示在运行数据的各项数据之间添加隔离字符“|”)。
通过上述两个命令将表1所示的表格模式的运行数据转化列表格式显示,同时还可以在各项数据之间添加隔离字符“|”,转化处理后的服务器的运行数据如下所示:
列表1:
另外,还可以在各项数据之间添加隔离字符“|”,经过添加隔离字符进一步处理后的服务器的运行数据如下所示:
列表2:
uid|uid_signed|gid_signed|username|description|directory|shell uuid
0|0|0|root|root|/root|/bin/bash|
1|1|1|bin|bin|/bin|/sbin/nologin|
2|2|2|daemon|daemon|/sbin|/sbin/nologin|
3|3|4|adm|adm|/var/adm|/sbin/nologin|
4|4|7|lp|lp|/var/spool/lpd|/sbin/nologin|
将表格1中以表格模式显示的运行数据转化为如列表1和列表2所示的列表模式显示,从列表模式显示的运行数据中提取相应的数据项时,由于数据仅包括数据项和/或隔离字符,因此数据项的抽取效率更为高效。
从上述描述可知,通过用户配置查询程序将服务器的运行数据以列表模式进行显示,和或在运行数据的各项数据之间添加隔离字符,通过上述方式进行数据转化,能够方便地从转化后的运行数据中抽取数据项作为服务器的运行状态数据,进而提升获取运行状态数据以及向用户反馈运行状态数据的效率。
在本公开的一个实施例中,在上述步骤S202中,通过所述执行程序将所述查询类型子脚本转化为查询指令之前,还包括:
若所述查询类型子脚本为第一格式,则将所述第一格式的查询类型子脚本转化为第二格式,其中所述第一格式和所述第二格式的查询类型子脚本用于查询所述服务器的运行状态数据、且所述第一格式对应的数据查询量大于所述第二格式对应的数据查询量。
具体地,通过对查询类型子脚本中的预设位置的语句进行识别,若预设位置的语句属于指定的语句或具有指定字符,则确定查询类型子脚本为第一格式。
例如,若识别到查询类型子脚本中的预设位置的语句包含字符“in”,则确定查询类型子脚本包含“in”结构的SQL语句为第一格式。
例如:查询类型子脚本为“获取本地监听的端口的所有连接”。
第一格式SQL语句为“in”结构的SQL语句,如下:“select ports.local_port asport,process.pid as pid,process.cmdline as cmdline from process_open_socketsAS ports JOIN processes AS process on ports.pid=process.pid whereports.local_port in(端口列表)”;其中,第一格式SQL语句用于指示被查询类型子脚本执行时需要获取所有端口的列表。
当端口列表数量在100以上时,第一格式SQL语句执行需要耗时100秒左右。
第二格式SQL语句为“between and”结构的SQL语句,如下:“select ports.local_port as port,process.pid as pid,process.cmdline as cmdline from process_open_sockets AS ports JOIN processes AS process on ports.pid=process.pid whereports.local_port between最小端口and最大端口”;其中,第二格式SQL语句用于指示被查询类型子脚本执行时需要获取最小端口到最大端口之间的端口列表。
当端口列表数量在100以上时,第二格式SQL语句执行耗时仅需1秒左右,大大缩短了执行耗时,提升用户体验。
图5为本公开实施例提供的服务器控制方法的流程示意图三。本实施例的方法可以应用在图1所示的客户端中,该服务器控制方法包括:
S401:获取控制脚本,其中控制脚本中包括N个子脚本,N为正整数。
在本公开实施例中,客户端可以是web客户端。
具体地,用户通过在web客户端进行命令的预配置,并在客户端显示用户预配置的所有命令;响应于用户的配置操作,从预配置的所有命令中选择目标指令,根据选择目标指令确定待执行的N个脚本;根据N个脚本生成控制脚本。
S402:将控制脚本发送至待控制的服务器,其中服务器中设置有执行程序和查询程序,控制脚本用于指示服务器在确定子脚本的类型为查询类型子脚本的情况下,通过所述执行程序将所述查询类型子脚本转化为查询指令,通过所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,并将所述服务器的运行状态数据发送至所述客户端。
S403:接收服务器发送的服务器的运行状态数据。
在本公开实施例中,待控制的服务器为待控制的服务器集群中的任一台服务器。
从上述描述可知,通过用户在客户端配置的控制脚本,待控制的服务器的执行程序接收用户在客户端配置的控制脚本,执行程序识别该控制脚本中的子脚本的类型,若为查询类型子脚本,则执行程序将该查询类型子脚本转化为服务器的查询程序可以执行的查询指令,再通过执行程序调用该查询程序执行查询指令,从而获得服务器的运行状态数据,并将运行状态数据返回至客户端。由于用户仅需要在客户端配置脚本,然后通过服务器中设置的执行程序和查询程序的协作处理以获取服务器的运行状态,不需要频繁的登录堡垒机和Ansible服务器,实现了用户对服务器的高效的批量控制,同时使得用户的操作更为简便。
图6为本公开实施例提供的服务器控制方法的流程示意图四。在图5实施例的基础上,该服务器控制方法,还包括:
S501:响应于用户的第一选择操作,确定待巡检的服务器列表。
在本公开实施例中,第一选择操作,可以是用户通过在客户端操作从所有的待控制服务器中按照预设规则选择出待巡检的服务器,形成待巡检的服务器列表。
其中,预设规则可以是按照服务器IP地址分组、或按照服务器的类别分组,或者按照服务器的用途分组,得到待巡检的服务器列表。例如,选择仅安装数据服务器或仅部署应用的服务器作为待巡检的服务器列表。
其中,服务器列表可以是服务器的IP地址信息的列表。
S502:响应于用户的第一配置操作,确定巡检时待执行的脚本或脚本集合,以及巡检的预设执行周期。
在本公开实施例中,第一配置操作可以是用户从预配置的脚本中选择一个脚本,或选择多个脚本以组成脚本集合。
S503:响应于用户的执行操作,每隔所述预设执行周期将所述待执行的脚本或脚本集合发送至所述待巡检的服务器列表对应的各服务器,所述脚本或脚本集合用于指示各服务器通过所述执行程序将所述脚本或脚本集转化为查询指令,并通过调用所述查询程序执行所述查询指令,以获取各服务器的巡检数据。
在本公开实施例中,用户可以是设置定时任务的预设执行周期,例如执行操作为设置每日上午8点开始,预设执行周期为24小时。
S504:接收各服务器发送的巡检数据。
在本公开实施例中,服务器发送的巡检数据可以是html文件或execl格式的文件。可选地,execl格式的文件,更便于后续的控制和筛选。
从上述描述可知,用户通过在客户端选择待巡检的服务器列表、配置巡检时待执行的脚本或脚本集合,并设置巡检的预设执行周期,进行周期性的巡检,能够根据巡检数据提前发现服务器存在的问题。
在本公开的一个实施例中,为了上述步骤S501中,响应于用户的第一选择操作,确定待巡检的服务器列表,具体包括:
接收外部数据源系统采集的所有服务器的运行信息;响应于用户从所有服务器的运行信息中选择目标服务器的操作,将选择的目标服务器确定为待巡检的服务器,并生成待巡检的服务器列表。
在本公开的实施例中,外部数据源系统可以是CMDB(Configuration ManagementDatabase,配置控制数据库)系统、监控系统、APM(Application Performance Management,应用性能控制)系统和流程系统,这些系统用于获取待控制服务器的各种类型的运行信息。
用户通过参考外部数据源系统采集的所有服务器的运行信息,从中选择待巡检的服务器,形成待巡检的服务器列表。
例如,可以将运行信息中显示CPU使用率超过80%的服务器确定为待巡检的服务器,也可以将运行信息中显示服务器运行故障率超过60%的服务器确定为待巡检的服务器。
从上述描述可知,在选择待巡检的服务器时,用户根据外部数据源采集的服务器的信息选择相应的服务器作为待巡检的服务器,由于有来自外部数据源采集的服务器的信息作为参考,可以方便用户筛选,且外部数据源的数据准确,筛选时不容易遗漏服务器。
在本公开的一个实施例中,步骤S502中,若用户选择了多个脚本,需要对多脚本进行执行顺序的设置形成最终的脚本集合。例如,第一脚本用于判断是否存在kafka队列,若存在则获取kafka队列对应的数据;第二脚本用于判断是否存在rabbitmq队列,若存在则获取rabbitmq队列对应的数据。由于kafka队列执行后才产生rabbitmq队列,因此第一脚本需要设置在第二脚本之前执行。
根据用户选择的多个脚本以组成脚本集合,可以是对多个脚本进行合并转化,将所有的脚本合并最终形成的一个脚本集合的文件。
例如,第一脚本为:GET_LOCAL_IP(用于指示获取本机IP);
第二脚本为:GET_PROCESS(用于指示获取本机进程);
第三脚本为:check_db_user_permission(用于指示检查用户权限);
第四脚本为:check_db_log(用于指示检查日志权限);
第五脚本为:check_db_conf(用于指示检查配置信息)。
通过对第一脚本、第二脚本、第三脚本、第四脚本、第五脚本进行并转化,得到的脚本集合的文件如下:
#!/bin/bash
IP=$OSQUERY_GET_LOCAl_IP#获取本机IP
PRO_INFOS=$OSQUERY_GET_PROCESS“{“type”:[“mysql”,“tidb”]}”#获取本机进程信息
for info in${PRO_INFOS}
do
$shell_check_db_user_permission#检查用户权限
$shell_check_db_log#检查日志权限
$shell_check_db_conf#检查配置信息。
从上述描述可知,通过根据预配置的命令进行脚本组合,形成最终的控制脚本,实现脚本的模块化组装,降低配置脚本的难度,减少维护成本。
图7为本公开实施例提供的服务器控制方法的流程示意图五。在图5实施例的基础上,该服务器控制方法,还包括:
S601:响应于用户的第二选择操作,确定待查询的服务器列表。
在本公开实施例中,用户的第二选择操作,可以是在客户端根据服务器的IP地址进行批量筛选,也可以是根据服务器的作用或功能的分类进行筛选。
S602:响应于用户的第二配置操作,确定查询时待执行的查询命令。
在本公开实施例中,用户的第二配置操作可以是从已配置的命令中进行选择。其中,从已配置的命令中进行选择包括选择需要执行的osquery命令,或者选择常规内置命令(如,获取指定端口关联进程信息的命令,获取运行的Java进程信息的命令等)。用户的第二配置操作也可以是用户手动写入osquery命令。
S603:将查询命令发送至待查询的服务器列表对应的各服务器,查询命令用于指示各服务器通过执行程序对查询命令进行格式转化后,调用查询程序执行转化后的查询命令,以获取各服务器的查询数据。
S604:接收各服务器发送的查询数据。
在本公开实施例中,客户端接收各服务器发送的查询数据,并显示各服务器的查询数据,在每一条服务器的查询数据后面显示对于该服务器的配置操作按钮。用户可以通过操作配置操作按钮对相应的服务器进行操作。
如,若显示的各服务器的查询数据为服务器的进程信息,则在每一条服务器的进程信息后显示进程关闭操作按钮。若显示的各服务器的查询数据为服务器的端口信息,则在每一条服务器的端口信息后显示端口关闭操作按钮。
从上述描述可知,用户通过在客户端选择待查询的服务器列表,并配置查询时待执行的查询命令,将待执行的查询命令发送至待查询的服务器,实现对服务器进行高效的批量查询。
图8为本公开实施例提供的服务器控制方法的流程示意图六。在图5实施例的基础上,该服务器控制方法,还包括:
S701:接收外部数据源系统采集的服务器的运行信息,以及接收各服务器发送的服务器的查询数据。
在本公开实施例中,外部数据源系统可以是CMDB系统、监控系统、APM系统和流程系统。
接收的各服务器发送的服务器的查询数据,可以是图7实施例中,批量查询的服务器的查询数据。
S702:将运行信息和所述查询数据,输入决策模型中,得到服务器的执行操作信息。
在本公开实施例中,决策模型可以是DMN(Decision Model and Notation,决策模型标记)模型。
在一种实现方式中,运行信息包括服务器的故障率,查询数据包括服务器的CPU使用率、服务器的进程信息。具体地,将运行信息和查询数据输入决策模型中,决策模型首先判断服务器的CPU使用率是否超过了预设使用率阈值;若超过,则再根据服务器的进程信息判断运行的进程是否属于指定的进程类型;若属于,则根据运行信息中的该服务器的故障率,确定是否超过一定故障率阈值;若超过,则输出“关闭对应的服务器上的指定的进程”的执行操作信息。
在另一种实现方式中,查询数据包括出现故障的服务器列表,运行信息包括服务器上是否有应用运行、应用的级别以及应用的上游是否存在负载均衡的信息。具体地,将运行信息和查询数据输入决策模型中,决策模型首先判断故障的服务器列表是否正在使用;若正在使用,则判断服务器上是否有应用运行;若有应用运行,则判断应用的级别是否属于核心业务链以及应用的上游是否存在负载均衡;若应用的级别属于核心业务链且应用的上游存在负载均衡,则输出“关闭故障服务器的流量”的执行操作信息。
S703:根据执行操作信息对服务器进行相应的操作。
在本公开实施例中,将执行操作信息发送至对应的服务器,服务器上的执行程序根据执行操作信息对服务器进行相应的操作,完成对服务器的自动配置。
从上述描述可知,结合查询数据和外部数据源,按照自定义的策略,实行对服务器的配置的自动调整,能够减少人工的介入,实现服务器控制的自动化、智能化。
图9为本公开实施例提供的服务器控制装置的结构框图一。为了便于说明,仅示出了与本公开实施例相关的部分。参照图9,所述装置应用于服务器,所述服务器中设置有执行程序和查询程序,所述装置包括:脚本接收模块801和指令执行模块802。
其中,脚本接收模块801,用于通过所述执行程序接收客户端发送的控制脚本,其中所述控制脚本中包括N个子脚本,N为正整数;
查询模块802,用于若所述子脚本的类型为查询类型子脚本,则通过所述执行程序将所述查询类型子脚本转化为查询指令,通过所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,并通过所述执行程序将所述服务器的运行状态数据发送至所述客户端。
在本公开的一个实施例中,所述装置,还包括:配置模块803,用于若所述子脚本的类型为配置类型子脚本,则通过所述执行程序将所述配置类型子脚本写入所述服务器的指定目录并运行所述配置类型子脚本,以完成对所述服务器的配置操作。
在本公开的一个实施例中,所述查询模块802,包括:指令转化单元8021,用于通过所述执行程序将所述查询类型子脚本封装为与所述服务器的操作系统类型对应的查询指令。
在本公开的一个实施例中,所述指令转化单元8021,具体用于所述执行程序获取与所述服务器操作系统类型对应的编辑文件,其中所述编辑文件中包括封装规则信息;所述编辑文件将所述查询类型子脚本按照所述封装规则信息进行封装,得到所述查询指令。
在本公开的一个实施例中,所述查询程序为用户配置查询程序;所述查询模块802,还包括:调用模块8022,用于通过所述执行程序建立与所述用户配置查询程序的交互连接;所述执行程序将所述查询指令通过所述交互连接输入所述用户配置查询程序;通过所述用户配置查询程序执行所述查询指令以采集所述服务器的运行状态数据;通过所述执行程序关闭与所述用户配置查询程序的交互连接。
在本公开的一个实施例中,所述调用模块8022,具体用于通过所述执行程序发送连接请求报文至所述用户配置查询程序;所述用户配置查询程序响应所述连接请求报文发送连接响应报文至所述执行程序,其中所述连接响应报文包括连接方式信息和失效时间;所述执行程序根据所述连接方式信息和失效时间建立与所述用户配置查询程序的交互连接。
在本公开的一个实施例中,所述查询模块802,还包括:参数处理模块8023,用于所述通过所述执行程序建立与所述用户配置查询程序的交互连接之后,还包括:通过所述用户配置查询程序按照数据格式参数对应的格式提取所述服务器的运行状态数据,其中,所述数据格式参数是通过所述执行程序设置的。
在本公开的一个实施例中,所述参数处理模块8023,具体用于所述用户配置查询程序采集所述服务器的运行数据;所述用户配置查询程序根据所述数据格式参数对所述运行数据进行处理;所述用户配置查询程序从处理之后的所述运行数据中提取所述服务器的运行状态数据。
在本公开的一个实施例中,所述参数处理模块8023,还具体用于所述用户配置查询程序根据所述列表显示模式显示所述服务器的运行数据,和/或在所述运行数据的各项数据之间添加所述隔离字符。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图10为本公开实施例提供的服务器控制装置的结构框图二。为了便于说明,仅示出了与本公开实施例相关的部分。参照图10,所述装置应用于应用于客户端,所述装置包括:配置模块901、发送模块902和接收模块903。
配置模块901,用于获取控制脚本,其中所述制脚本中包括N个子脚本,N为正整数;
发送模块902,用于将所述控制脚本发送至待控制的服务器,其中所述服务器中设置有执行程序和查询程序,所述控制脚本用于指示所述服务器在确定所述子脚本的类型为查询类型子脚本的情况下,通过所述执行程序将所述查询类型子脚本转化为查询指令,通过所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,并将所述服务器的运行状态数据发送至所述客户端;
接收模块903,用于接收所述服务器发送的所述服务器的运行状态数据。
在本公开的一个实施例中,所述装置还包括:巡检处理模块904,用于响应于用户的第一选择操作,确定待巡检的服务器列表;响应于用户的第一配置操作,确定巡检时待执行的脚本或脚本集合,以及巡检的预设执行周期;响应于用户的执行操作,每隔所述预设执行周期将所述待执行的脚本或脚本集合发送至所述待巡检的服务器列表对应的各服务器,所述脚本或脚本集合用于指示各服务器通过所述执行程序将所述脚本或脚本集转化为查询指令,并通过调用所述查询程序执行所述查询指令,以获取各服务器的巡检数据;接收各服务器发送的巡检数据。
在本公开的一个实施例中,所巡检处理模块904,具体用于接收外部数据源系统采集的所有服务器的运行信息;响应于用户从所述所有服务器的运行信息中选择目标服务器的操作,将选择的目标服务器确定为待巡检的服务器,并生成所述待巡检的服务器列表。
在本公开的一个实施例中,所述装置还包括:批量查询模块905,用于响应于用户的第二选择操作,确定待查询的服务器列表;响应于用户的第二配置操作,确定查询时待执行的查询命令;将所述查询命令发送至所述待查询的服务器列表对应的各服务器,所述查询命令用于指示各服务器通过所述执行程序对所述查询命令进行格式转化后,调用所述查询程序执行转化后的查询命令,以获取所述各服务器的查询数据;接收所述各服务器发送的查询数据。
在本公开的一个实施例中,所述装置还包括:智能调整模块906,用于接收外部数据源系统采集的服务器的运行信息,以及接收各服务器发送的服务器的查询数据;将所述运行信息和所述查询数据,输入决策模型中,得到所述服务器的执行操作信息;根据所述执行操作信息对所述服务器进行相应的操作。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
继续参考图2,在本发明的一个实施例中,还提供一种服务器控制系统,,包括客户端和服务器,其中所述服务器中设置有执行程序和查询程序;
所述客户端,用于获取控制脚本,并将所述控制脚本发送至所述服务器,其中所述制脚本中包括N个子脚本,N为正整数;
所述服务器,用于在确定所述子脚本的类型为查询类型子脚本的情况下,通过所述执行程序将所述查询类型子脚本转化为查询指令,通过所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,并将所述服务器的运行状态数据发送至所述客户端。
从上述描述可知,通过在用户在客户端配置的控制脚本,待控制的服务器的执行程序接收用户在客户端配置的控制脚本,执行程序识别该控制脚本中的子脚本的类型,若为查询类型子脚本,则执行程序将该查询类型子脚本转化为服务器的查询程序可以执行的查询指令,再通过执行程序调用该查询程序执行查询指令,从而获得服务器的运行状态数据,并将运行状态数据返回至客户端。由于用户仅需要在客户端配置脚本,然后通过服务器中设置的执行程序和查询程序的协作处理获以获取服务器的运行状态,用户操作简便,不需要频繁的登录堡垒机和Ansible服务器,实现了用户对服务器的高效的批量控制。
图11为本公开实施例提供的服务器的硬件结构示意图。如图11所示,本实施例的服务器100包括:处理器1001以及存储器1002;其中
存储器1002,用于存储计算机执行指令;
处理器1001,用于执行存储器存储的计算机执行指令,以实现上述实施例中接收设备所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器1002既可以是独立的,也可以跟处理器1001集成在一起。
当存储器1002独立设置时,该服务器还包括总线1003,用于连接所述存储器1002和处理器1001。
图12为本公开实施例提供的客户端设备的硬件结构示意图。如图12所示,本实施例的客户端设备110包括:处理器1101以及存储器1102;其中
存储器1102,用于存储计算机执行指令;
处理器1101,用于执行存储器存储的计算机执行指令,以实现上述实施例中接收设备所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器1102既可以是独立的,也可以跟处理器1101集成在一起。
当存储器1102独立设置时,该客户端设备还包括总线1103,用于连接所述存储器1102和处理器1101。
本公开实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上所述的服务器控制方法。
本公开实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上所述的服务器控制方法。
在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
另外,在本公开各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外部设备互连(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。
Claims (17)
1.一种服务器控制方法,其特征在于,应用于服务器,所述服务器中设置有执行程序和查询程序,所述方法包括:
通过所述执行程序接收客户端发送的控制脚本,其中所述控制脚本中包括N个子脚本,N为正整数;
若所述子脚本的类型为查询类型子脚本,则通过所述执行程序将所述查询类型子脚本转化为查询指令,通过所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,并通过所述执行程序将所述服务器的运行状态数据发送至所述客户端;
所述通过所述执行程序将所述查询类型子脚本转化为查询指令,包括:
所述执行程序获取与所述服务器操作系统类型对应的编辑文件,其中所述编辑文件中包括封装规则信息;
所述编辑文件将所述查询类型子脚本按照所述封装规则信息进行封装,得到所述查询指令。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述子脚本的类型为配置类型子脚本,则通过所述执行程序将所述配置类型子脚本写入所述服务器的指定目录并运行所述配置类型子脚本,以完成对所述服务器的配置操作。
3.根据权利要求1所述的方法,其特征在于,所述查询程序为用户配置查询程序;
相应地,所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,包括:
通过所述执行程序建立与所述用户配置查询程序的交互连接;
所述执行程序将所述查询指令通过所述交互连接输入所述用户配置查询程序;
通过所述用户配置查询程序执行所述查询指令以采集所述服务器的运行状态数据;
通过所述执行程序关闭与所述用户配置查询程序的交互连接。
4.根据权利要求3所述的方法,其特征在于,所述通过所述执行程序建立与所述用户配置查询程序的交互连接,包括:
通过所述执行程序发送连接请求报文至所述用户配置查询程序;
所述用户配置查询程序响应所述连接请求报文发送连接响应报文至所述执行程序,其中所述连接响应报文包括连接方式信息和失效时间;
所述执行程序根据所述连接方式信息和失效时间建立与所述用户配置查询程序的交互连接。
5.根据权利要求3所述的方法,其特征在于,所述通过所述执行程序建立与所述用户配置查询程序的交互连接之后,还包括:
通过所述用户配置查询程序按照数据格式参数对应的格式提取所述服务器的运行状态数据,其中,所述数据格式参数是通过所述执行程序设置的。
6.根据权利要求5所述的方法,其特征在于,所述通过所述用户配置查询程序按照数据格式参数对应的格式提取所述服务器的运行状态数据,包括:
所述用户配置查询程序采集所述服务器的运行数据;
所述用户配置查询程序根据所述数据格式参数对所述运行数据进行处理;
所述用户配置查询程序从处理之后的所述运行数据中提取所述服务器的运行状态数据。
7.根据权利要求6所述的方法,其特征在于,所述数据格式参数包括列表显示模式和隔离字符,所述述用户配置查询程序根据所述数据格式参数对所述运行数据进行处理,包括:
所述用户配置查询程序根据所述列表显示模式显示所述服务器的运行数据,和/或在所述运行数据的各项数据之间添加所述隔离字符。
8.一种服务器控制方法,其特征在于,应用于客户端,所述方法包括:
获取控制脚本,其中所述制脚本中包括N个子脚本,N为正整数;
将所述控制脚本发送至待控制的服务器,其中所述服务器中设置有执行程序和查询程序,所述控制脚本用于指示所述服务器在确定所述子脚本的类型为查询类型子脚本的情况下,通过所述执行程序将所述查询类型子脚本转化为查询指令,通过所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,并将所述服务器的运行状态数据发送至所述客户端;
接收所述服务器发送的所述服务器的运行状态数据;
所述通过所述执行程序将所述查询类型子脚本转化为查询指令,包括:
所述执行程序获取与所述服务器操作系统类型对应的编辑文件,其中所述编辑文件中包括封装规则信息;
所述编辑文件将所述查询类型子脚本按照所述封装规则信息进行封装,得到所述查询指令。
9.根据权利要求8所述的方法,其特征在于,还包括:
响应于用户的第一选择操作,确定待巡检的服务器列表;
响应于用户的第一配置操作,确定巡检时待执行的脚本或脚本集合,以及巡检的预设执行周期;
响应于用户的执行操作,每隔所述预设执行周期将所述待执行的脚本或脚本集合发送至所述待巡检的服务器列表对应的各服务器,所述脚本或脚本集合用于指示各服务器通过所述执行程序将所述脚本或脚本集转化为查询指令,并通过调用所述查询程序执行所述查询指令,以获取各服务器的巡检数据;
接收各服务器发送的巡检数据。
10.根据权利要求9所述的方法,其特征在于,所述响应于用户的第一选择操作,确定待巡检的服务器列表,包括:
接收外部数据源系统采集的所有服务器的运行信息;
响应于用户从所述所有服务器的运行信息中选择目标服务器的操作,将选择的目标服务器确定为待巡检的服务器,并生成所述待巡检的服务器列表。
11.根据权利要求8所述的方法,其特征在于,还包括:
响应于用户的第二选择操作,确定待查询的服务器列表;
响应于用户的第二配置操作,确定查询时待执行的查询命令;
将所述查询命令发送至所述待查询的服务器列表对应的各服务器,所述查询命令用于指示各服务器通过所述执行程序对所述查询命令进行格式转化后,调用所述查询程序执行转化后的查询命令,以获取所述各服务器的查询数据;
接收所述各服务器发送的查询数据。
12.根据权利要求8所述的方法,其特征在于,还包括:
接收外部数据源系统采集的服务器的运行信息,以及接收各服务器发送的服务器的查询数据;
将所述运行信息和所述查询数据,输入决策模型中,得到所述服务器的执行操作信息;
根据所述执行操作信息对所述服务器进行相应的操作。
13.一种服务器控制装置,其特征在于,应用于服务器,所述服务器中设置有执行程序和查询程序,包括:
其中,脚本接收模块,用于通过所述执行程序接收客户端发送的控制脚本,其中所述控制脚本中包括N个子脚本,N为正整数;
查询模块,用于若所述子脚本的类型为查询类型子脚本,则通过所述执行程序将所述查询类型子脚本转化为查询指令,通过所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,并通过所述执行程序将所述服务器的运行状态数据发送至所述客户端;
所述查询模块,包括:指令转化单元,所述指令转化单元,具体用于所述执行程序获取与所述服务器操作系统类型对应的编辑文件,其中所述编辑文件中包括封装规则信息;所述编辑文件将所述查询类型子脚本按照所述封装规则信息进行封装,得到所述查询指令。
14.一种服务器控制系统,其特征在于,包括客户端和服务器,其中所述服务器中设置有执行程序和查询程序;
所述客户端,用于获取控制脚本,并将所述控制脚本发送至所述服务器,其中所述制脚本中包括N个子脚本,N为正整数;
所述服务器,用于在确定所述子脚本的类型为查询类型子脚本的情况下,通过所述执行程序将所述查询类型子脚本转化为查询指令,通过所述执行程序调用所述查询程序,并通过所述查询程序执行所述查询指令,以获取所述服务器的运行状态数据,并将所述服务器的运行状态数据发送至所述客户端;
所述通过所述执行程序将所述查询类型子脚本转化为查询指令,包括:
所述执行程序获取与所述服务器操作系统类型对应的编辑文件,其中所述编辑文件中包括封装规则信息;
所述编辑文件将所述查询类型子脚本按照所述封装规则信息进行封装,得到所述查询指令。
15.一种服务器,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至7任一项所述的服务器控制方法。
16.一种客户端设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求8至12任一项所述的服务器控制方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至9任一项所述的服务器控制方法或实现如权利要求8至12任一项所述的服务器控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110713735.9A CN113282374B (zh) | 2021-06-25 | 2021-06-25 | 一种服务器控制方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110713735.9A CN113282374B (zh) | 2021-06-25 | 2021-06-25 | 一种服务器控制方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113282374A CN113282374A (zh) | 2021-08-20 |
CN113282374B true CN113282374B (zh) | 2023-04-07 |
Family
ID=77285907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110713735.9A Active CN113282374B (zh) | 2021-06-25 | 2021-06-25 | 一种服务器控制方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113282374B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553660A (zh) * | 2022-01-10 | 2022-05-27 | 北京思特奇信息技术股份有限公司 | 一种高效运维的分布式系统以及运维方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013006725A2 (en) * | 2011-07-05 | 2013-01-10 | Visa International Service Association | Electronic wallet checkout platform apparatuses, methods and systems |
CN104461522A (zh) * | 2014-11-26 | 2015-03-25 | 盈世信息科技(北京)有限公司 | 基于脚本的辅助业务实现方法 |
CN106031092A (zh) * | 2014-03-13 | 2016-10-12 | 希斯泰克公司 | 使用虚拟网关和通配符的网关管理 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002014963A (ja) * | 2000-04-24 | 2002-01-18 | Opro Japan Co Ltd | データベース管理システム及びその開発システム |
CN110806922B (zh) * | 2019-10-14 | 2022-06-21 | 广州微算互联信息技术有限公司 | 一种执行脚本方法、装置、设备及存储介质 |
CN110781143B (zh) * | 2019-11-05 | 2022-03-15 | 北纬通信科技南京有限责任公司 | 一种服务器日志查询提取的方法及装置 |
CN111061466A (zh) * | 2019-11-28 | 2020-04-24 | 南京崔斯特文化创意有限公司 | 行为控制脚本语言的自动化转化方法、系统、终端及介质 |
CN111459631A (zh) * | 2020-03-27 | 2020-07-28 | 厦门梦加网络科技股份有限公司 | 服务器自动化批处理方法及系统 |
-
2021
- 2021-06-25 CN CN202110713735.9A patent/CN113282374B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013006725A2 (en) * | 2011-07-05 | 2013-01-10 | Visa International Service Association | Electronic wallet checkout platform apparatuses, methods and systems |
CN106031092A (zh) * | 2014-03-13 | 2016-10-12 | 希斯泰克公司 | 使用虚拟网关和通配符的网关管理 |
CN104461522A (zh) * | 2014-11-26 | 2015-03-25 | 盈世信息科技(北京)有限公司 | 基于脚本的辅助业务实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113282374A (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3373518B1 (en) | Service configuration method and device for network service | |
US20170331862A1 (en) | Method for accessing cloud service and access device | |
CN101894059B (zh) | 一种运行状态的检测方法及系统 | |
CN110913024B (zh) | 云平台信息同步方法、系统、控制设备及存储介质 | |
CN104993947A (zh) | 批量升级固件的方法 | |
CN111064626B (zh) | 配置更新方法、装置、服务器及可读存储介质 | |
CN111984561B (zh) | 一种bmc的ipmi命令处理方法、系统、设备以及介质 | |
US10333797B2 (en) | Centralized troubleshooting tool in distributed virtual network | |
WO2024148833A1 (zh) | 一种容器多网卡网络配置方法、装置、设备及存储介质 | |
CN109344075A (zh) | 配置方法、测试方法、配置服务器及服务节点设备 | |
CN111246406A (zh) | 一种短信发送方法、系统、存储介质及终端设备 | |
CN114741060A (zh) | 基于中台的业务系统开发方法及装置 | |
CN113282374B (zh) | 一种服务器控制方法、装置及系统 | |
CN114172978A (zh) | 多协议设备接入方法及相关装置 | |
CN110597783A (zh) | 数据库管理方法、装置、设备及存储介质 | |
US10218560B2 (en) | Centralized troubleshooting tool in distributed virtual network | |
CN110912725A (zh) | 一种OpenFlow虚拟交换机的配置方法及配置装置 | |
WO2023159956A1 (zh) | 一种裸金属服务器检查及部署方法、装置、设备、介质 | |
US10904098B2 (en) | Health check automation for virtual network functions | |
CN115174340B (zh) | 支持多种协议类型与物联网操作系统交互的通信方法 | |
CN116016209A (zh) | 一种网络自动化方法及装置 | |
CN114070824A (zh) | 物联网设备的注册方法、注册云服务、介质及程序产品 | |
CN114936166A (zh) | SAI Thrift自动化测试框架的构建方法 | |
CN114172807A (zh) | 一种整机系统及其智能网卡的固件升级方法 | |
CN109347656B (zh) | 一种虚拟主机上行链路网卡配置的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |