CN110098963A - 一种服务器运维管控方法及系统 - Google Patents
一种服务器运维管控方法及系统 Download PDFInfo
- Publication number
- CN110098963A CN110098963A CN201910342507.8A CN201910342507A CN110098963A CN 110098963 A CN110098963 A CN 110098963A CN 201910342507 A CN201910342507 A CN 201910342507A CN 110098963 A CN110098963 A CN 110098963A
- Authority
- CN
- China
- Prior art keywords
- server
- command line
- management server
- target class
- line parameter
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例涉及服务器运维技术领域,公开了一种服务器运维管控方法及系统,该方法包括:管理服务器获取目标服务器的初始化属性,并根据初始化属性确定出目标服务器的配置项信息;其中,目标服务器为接入层服务器、逻辑层服务器、数据层服务器或缓存层服务器中的任一服务器;管理服务器获取针对目标服务器的待执行的命令行参数,并根据命令行参数确定出对应的目标类方法;管理服务器根据配置项信息执行对应的目标类方法,并判断对应的目标类方法是否存在重写实现;若存在,管理服务器根据命令行参数执行目标类方法包括的子类方法,以实现对目标服务器的管控功能。实施本发明实施例,有利于提高服务器的维护效率。
Description
技术领域
本发明涉及服务器运维技术领域,具体涉及一种服务器运维管控方法及系统。
背景技术
随着互联网行业的快速发展,需要运维工程师维护的服务器数量越来越多,每台服务器所提供的业务服务也越来越复杂。目前面对大量需要维护的服务器,运维工程师一般通过比较零散地编写多种不同功能的自动脚本以达到不同的维护功能,进而辅助其的运维工作。
在实践中发现,随着业务需求的发展,工程师编写的脚本也越来越多,慢慢就会累积下大量不同的脚本文件,而且由于这些脚本文件都是运维工程师为了应对当前的维护工作零散地编写的,所以这些脚本文件之间不存在严密的联系,导致这些脚本文件存在重复代码多、容易出现逻辑异常等问题,进而不利用于提高服务器的维护效率。
发明内容
本发明实施例公开了一种服务器运维管控方法及系统,有利于提高服务器的维护效率。
本发明实施例第一方面公开一种服务器运维管控方法,包括:
管理服务器获取目标服务器的初始化属性,并根据所述初始化属性确定出所述目标服务器的配置项信息;其中,所述目标服务器为接入层服务器、逻辑层服务器、数据层服务器或缓存层服务器中的任一服务器;所述初始化属性至少包括所述目标服务器的IP地址;所述配置项信息至少包括所述目标服务器的角色信息和项目信息;
管理服务器获取针对所述目标服务器的待执行的命令行参数,并根据所述命令行参数确定出对应的目标类方法;
管理服务器根据所述配置项信息执行所述对应的目标类方法,并判断所述对应的目标类方法是否存在重写实现;
若存在,管理服务器根据所述命令行参数执行所述目标类方法包括的子类方法,以实现对所述目标服务器的管控功能。
作为一种可选的实施方式,在本发明实施例第一方面中,所述方法还包括:
若判断出所述对应的目标类方法不存在重写实现,管理服务器根据所述命令行参数执行所述目标类方法包括的父类方法,以实现对所述目标服务器的管控功能。
作为一种可选的实施方式,在本发明实施例第一方面中,所述管理服务器获取目标服务器的初始化属性,并根据所述初始化属性确定出所述目标服务器的配置项信息,包括:
管理服务器获取目标服务器的初始化属性,并根据所述初始化属性包括的所述目标服务器的IP地址在预设的配置文件中确定出所述目标服务器所需要的配置项信息。
作为一种可选的实施方式,在本发明实施例第一方面中,所述管理服务器获取针对所述目标服务器的待执行的命令行参数,并根据所述命令行参数确定出对应的目标类方法,包括:
管理服务器获取针对所述目标服务器的待执行的命令行参数;
所述管理服务器根据所述待执行的命令行参数包括的类名称,在所述管理服务器包括的项目功能模块的若干个单元对应的若干个类中确定出目标类;所述若干个单元至少包括文件控制单元、日志处理单元、系统配置单元、程序启停单元和防火墙控制单元;
所述管理服务器根据所述待执行的命令行参数包括的方法名称,在所述目标类包括的若干个类方法中确定出目标类方法,作为所述命令行参数对应的目标类方法。
作为一种可选的实施方式,在本发明实施例第一方面中,所述管理服务器根据所述命令行参数执行所述目标类方法包括的子类方法,以实现对所述目标服务器的管控功能,包括:
管理服务器根据所述命令行参数在继承于所述目标类的特殊项目类中确定出所述目标类方法对应的子类方法;
管理服务器根据所述命令行参数包括的方法参数执行所述子类方法,以实现对所述目标服务器的管控功能。
作为一种可选的实施方式,在本发明实施例第一方面中,所述管理服务器根据所述命令行参数执行所述目标类方法包括的父类方法,以实现对所述目标服务器的管控功能,包括:
管理服务器根据所述命令行参数确定出所述目标类方法包括的父类方法;
管理服务器根据所述命令行参数包括的方法参数执行所述父类方法,以实现对所述目标服务器的管控功能。
本发明实施例第二方面公开一种服务器运维管控系统,所述系统至少包括:管理服务器、接入层服务器、逻辑层服务器、数据层服务器和缓存层服务器;其中:
所述管理服务器,用于获取目标服务器的初始化属性,并根据所述初始化属性确定出所述目标服务器的配置项信息;其中,所述目标服务器为所述接入层服务器、所述逻辑层服务器、所述数据层服务器或所述缓存层服务器中的任一服务器;所述初始化属性至少包括所述目标服务器的IP地址;所述配置项信息至少包括所述目标服务器的角色信息和项目信息;
所述管理服务器,还用于获取针对所述目标服务器的待执行的命令行参数,并根据所述命令行参数确定出对应的目标类方法;
所述管理服务器,还用于根据所述配置项信息执行所述对应的目标类方法,并判断所述对应的目标类方法是否存在重写实现;
所述管理服务器,还用于在判断出所述对应的目标类方法存在重写实现时,根据所述命令行参数执行所述目标类方法包括的子类方法,以实现对所述目标服务器的管控功能。
作为一种可选的实施方式,在本发明实施例第二方面中,所述管理服务器还用于在判断出所述对应的目标类方法不存在重写实现时,根据所述命令行参数执行所述目标类方法包括的父类方法,以实现对所述目标服务器的管控功能。
本发明实施例第三方面公开一种服务器运维管控系统,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明实施例第一方面公开的一种服务器运维管控方法。
本发明实施例第四方面公开一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行本发明实施例第一方面公开的一种服务器运维管控方法。
本发明实施例第五方面公开一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本发明实施例第一方面的任意一种方法的部分或全部步骤。
本发明实施例第六方面公开一种应用发布平台,所述应用发布平台用于发布计算机程序产品,其中,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本发明实施例第一方面的任意一种方法的部分或全部步骤。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,运维管控系统可以获取本机的初始化属性,例如IP地址、配置文件路径等,进而根据本机的初始化属性确定出本机IP所需要的配置项信息以完成机器的自检环节;其中,该配置项信息可以包括项目代号、角色信息等。使用上述的服务器管控方式使得运维管控系统可以根据项目代号、角色信息等属性对机器进行分类,并确定出机器具体需要执行的操作;自检环节完成后,运维管控系统可以获取待执行的命令行参数,并根据命令行参数确定出对应的类方法;进而结合上述的配置项信息执行该类方法,并判断对应的类方法的子类方法是否存在重写实现,若存在,则调用该类方法对应的子类方法并执行,若不存在,则调用该类方法对应的父类方法并执行。实施本发明实施例,构造出一个完整的服务器管控框架,可以避免一位或多位运维工程师的各自编写的零散脚本无法复用、无法扩展的情况,且通过方法重写的方式,可以减少大量重复的程序代码实现,提高了脚本程序的运行质量,进而有利于提高服务器的维护效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种服务器运维管控方法的流程示意图;
图2是本发明实施例公开的一种服务器管控架构的示意图;
图3是本发明实施例公开的一种服务器分类信息的示意图;
图4是本发明实施例公开的一种进行面向对象编程时所运用到的类关系示意图;
图5是本发明实施例公开的一种辅助说明派生类的示意图;
图6是本发明实施例公开的另一种服务器运维管控方法的流程示意图;
图7是本发明实施例公开的一种服务器运维管控系统的结构示意图;
图8是本发明实施例公开的另一种服务器运维管控系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定顺序。本发明实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例公开了一种服务器运维管控方法,有利于提高服务器的维护效率。本发明实施例相应地还公开了一种服务器运维管控系统。
下面将结合具体实施例对本发明技术方案进行详细说明。
实施例一
请参阅图1,图1是本发明实施例公开的一种服务器运维管控方法的流程示意图。如图1所示,该服务器运维管控方法可以包括以下步骤:
101、管理服务器获取目标服务器的初始化属性,并根据初始化属性确定出目标服务器的配置项信息。
本发明实施例中,管理服务器可以是需要维护的若干台服务器外的任一台服务器,其通过Linux系统的SSH(SecureShell,安全外壳协议)免密码登录的方式与其他需要维护的若干台服务器连接,进而可以通过管理服务器对其他需要维护的若干台服务器进行统一的管控;如图2所示,其中,除管理服务器201外,其他需要维护的若干台服务器可以按照一定的划分维度划分为接入层服务器202、逻辑层服务器203、数据层服务器204和缓存层服务器205,且每一层级中可以包括若干台从属该层级的服务器。本发明实施例中,目标服务器可以是接入层服务器202、逻辑层服务器203、数据层服务器204或缓存层服务器205中的任一服务器。
本发明实施例中,按照一定的划分维度对若干台服务器进行划分之后,还可以按照服务器对应的IP地址(如图3中“1.1.1.2”)、项目信息(如图3中“项目B”)和角色信息(如图3中“接入层”)进分类。如图3所示,主机1是管理服务器,由于其负责对其他服务器进行统一的管控,所以其不属于任意的项目;其他服务器也有其对应的项目信息和角色信息,进而可以根据每个服务器的这两个属性信息(项目信息和角色信息)来判断出对应服务器应该执行的操作;另外,项目A、项目B和项目C等具有一定的关联性和差异性,即它们之间可能存在部分重复的操作步骤,也可能因为项目需求不同而存在部分不同的操作步骤,本发明实施例不作限定。
基于上述的服务器架构以及管控设置方式,管理服务器所获取的目标服务器的初始化属性可以包括但不限于:目标服务器的IP地址、目标服务器的配置文件路径等;配置项信息可以包括但不限于:项目信息、角色信息、程序文件源目录、程序文件目标目录、程序占用端口、程序启动脚本和程序停止脚本等。
作为一种可选的实施方式,管理服务器获取目标服务器的初始化属性,并根据初始化属性确定出目标服务器的配置项信息的方式可以是:管理服务器根据初始化属性包括的目标服务器的IP地址,结合目标服务器的配置文件路径,在预设的配置文件中确定出目标服务器的项目信息、角色信息、程序文件源目录、程序文件目标目录、程序占用端口、程序启动脚本和程序停止脚本等配置项信息。
实施上述方法,通过对不同的服务器设置不同的初始化属性,例如设置不同的项目信息和不同的角色信息,进而可以根据不同服务器对应的不同项目信息和角色信息执行不同的管控操作,方便管理,进而提高了对服务器的管控效率。
102、管理服务器获取针对目标服务器的待执行的命令行参数,并根据命令行参数确定出对应的目标类方法。
本发明实施例中,管理服务器中可以内置有预设的自动化脚本框架,可以将图3所示的服务器分类信息表以XML格式或者Json格式存储至该自动化脚本框架中,进而管理服务器可以通过该自动化脚本框架对服务器分类信息表中不同角色、不同项目的服务器进行分类管控。
该自动化脚本框架中至少可以包括“通用项目功能模块”和“特殊项目功能模块”。“通用项目功能模块”可以包括但不限于:文件控制单元、日志处理单元、系统配置单元、程序启停单元、防火墙控制单元和其他待扩展单元;其中,文件控制单元用于负责日常代码文件发布、更新、同步等操作;日志处理单元,用于负责各种系统、应用程序的日志收集、上传、下载、压缩、备份等操作;系统配置单元,用于负责系统部分配置项的修改和配置;程序启停单元,用于负责业务应用程序的启动、关闭、重启等操作;防火墙控制单元,用于负责系统防火墙的启动、关闭,修改IP白名单等操作;其他待扩展单元可以是具备其他功能的控制单元,其可以是开发人员根据后续的运维需求自行扩展的单元。
需要说明的是:通过内置有上述5种控制单元的“通用项目功能模块”已经可以应对大部分运维工作场景,但“通用项目功能模块”中不限于只内置有上述5种控制单元,本发明以“通用项目功能模块”中内置有上述5种控制单元为例进行说明,不应对本发明实施例构成限定。
需要进一步说明的是:“特殊项目功能模块”中也可以包含跟“通用项目功能模块”相同数量和相同种类的控制单元,这是为了将差异化的操作和通用化的操作进行一一对应关系,如果在实际维护工作中不需要特殊操作,则可以默认使用通用操作。
本发明实施例中,开发人员可以通过面向对象的编程语言预先编写好脚本程序,以驱动上述“通用项目功能模块”或者“特殊项目功能模块”中的控制单元;如图4所示,图4是本发明实施例公开的一种进行面向对象编程时所运用到的类关系图,开发人员可以根据该类关系图编写出对应的脚本程序,以实现对上述“通用项目功能模块”或者“特殊项目功能模块”中的控制单元的驱动;需要说明的是:类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义类型,也称类类型;每个类包含数据说明和一组操作数据或传递消息的函数;类的实例称为对象。
如图4所示,图4中的“Base”是基础类,其可以包括但不限于:项目ID(projectID)、项目信息(projectName)、角色信息(role)、参数(args)、模块(module)、执行函数(function)和执行函数参数(functionArgs)等主要的成员变量;另外,基础类“Base”还可以包括但不限于以下3个主要的成员方法,即:命令执行(sshExecute())、记录日志(log())和获取目标服务器IP(getIP())。
需要说明的是:基础类“Base”是把所有的运维操作进行通用抽象,以构成一个类整体作为其他具体功能的实现基础,如图4所示,其他类(如:“FileControl”、“AppControl”等)需要通过继承基础类“Base”来进行实例化操作;其中,“继承”是面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。
如图4所示,继承于基础类“Base”的类可以有3个但不限于3个;其中,“FileControl”对应上述“通用项目功能模块”或者“特殊项目功能模块”中的文件控制单元,“AppControl”对应上述“通用项目功能模块”或者“特殊项目功能模块”中的程序启停单元,“LogControl”对应上述“通用项目功能模块”或者“特殊项目功能模块”中的日志处理单元。可以理解的是:本发明实施例中公开的“通用项目功能模块”或者“特殊项目功能模块”中的每一个控制单元都可以对应有一个继承于基础类“Base”的类,因为控制单元的数量也是不限数量的,进而第二行中继承于基础类“Base”的派生类的数量也可以是不限量的;以下以其中3种控制单元对应的类进行说明,不应对本发明实施例构成限定。需要说明的是:“FileControl”、“AppControl”和“LogControl”作为继承于基础类“Base”的派生类,其继承了基础类“Base”进行具体的编码实现。
结合图5对“FileControl”、“AppControl”和“LogControl”三个派生类进行说明。其中,图5中的第一纵列包括的“FileControl”、“AppControl”和“LogControl”等为类名称;第二纵列包括的“syncCode()”、“appStart()”和“logUpload()”等为三个派生类对应的成员方法名称;第三纵列包括的备注信息是对第二纵列包括的成员方法的解释。
基于上述的自动化脚本框架的设置方式以及类的编写方法,管理服务器可以获取针对目标服务器的待执行的命令行参数,并根据命令行参数确定出对应的目标类方法,并通过该目标类方法驱动自动化脚本框架中的控制单元以实现后续对目标服务器的管控功能。
作为一种可选的实施方式,管理服务器获取针对目标服务器的待执行的命令行参数,并根据命令行参数确定出对应的目标类方法的方式可以是:管理服务器获取针对目标服务器的待执行的命令行参数;并根据待执行的命令行参数包括的类名称,在管理服务器包括的项目功能模块的若干个单元对应的若干个类中确定出目标类;上述若干个单元至少包括文件控制单元、日志处理单元、系统配置单元、程序启停单元和防火墙控制单元;进而,管理服务器可以根据待执行的命令行参数包括的方法名称,在目标类包括的若干个类方法中确定出目标类方法,作为命令行参数对应的目标类方法。
需要说明的是,管理服务器通过自动化脚本框架实现管控功能时,需要带命令行参数(在命令行中给定的参数称为命令行参数),该命令行参数至少包括但不限于:类名称、方法名称和方法参数。
结合图5举例来说:管理服务器所获取的针对目标服务器的待执行的命令行参数为“AppControlrestart10”,其中,“AppControl”为类名称;“restart”为方法名称;“10”为方法参数;则自动化脚本框架中的程序可以根据类名称“AppControl”在管理服务器包括的项目功能模块的若干个单元对应的若干个类中确定出目标类“AppControl”,并根据“restart”在目标类“AppControl”中确定出目标类方法“appRestart()”作为该命令行参数对应的目标类方法。
实施上述方法,使用了面向对象的继承关系以及反射机制,尤其是反射机制的使用,它的核心本质其实就是利用字符串的形式来对类实例进行操作的调用(查找/获取/删除/添加),简单而言是一种基于字符串的事件驱动模式,可以使得不同类方法的调用更加高效便捷,避免不必要的冗余代码。
103、管理服务器根据配置项信息执行对应的目标类方法,并在判断出对应的目标类方法存在重写实现时,根据命令行参数执行目标类方法包括的子类方法,以实现对目标服务器的管控功能。
本发明实施例中,配置项信息至少包括但不限于:项目信息、角色信息、程序文件源目录、程序文件目标目录、程序占用端口、程序启动脚本和程序停止脚本等。进而管理服务器可以根据配置项信息选择执行对应的目标类方法,并在判断出对应的目标类方法存在重写实现时,根据命令行参数执行目标类方法包括的子类方法,以实现对目标服务器的管控功能。
其中,重写实现也称为方法重写,指的是在一些高级面向对象的编程语言中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。
本发明实施例中,基于步骤102中描述类的编写方法以及结合图4所示的类关系图,需要说明的是:其中第三行的“projectXX-FileControl”、“projectXX-APPControl”和“projectXX-LogControl”为特殊项目的类;其中,“projectXX-FileControl”继承于“FileControl”;“projectXX-APPControl”继承于“AppControl”;“projectXX-LogControl”继承于“LogControl”;进而可以把项目有差异化的部分在这些特殊项目类中的方法进行编码,可以看出第二行的派生类与第三行的特殊项目类所拥有的成员方法是相同的,但特殊项目类中的成员方法是可以多于第二行的派生类中的方法的,即如果具体项目中有具体的逻辑差异时,可以在特殊项目类中进行方法重写以更改成员方法,进而实现特殊的项目管控需求。
作为一种可选的实施方式,管理服务器根据命令行参数执行目标类方法包括的子类方法,以实现对目标服务器的管控功能的方式可以是:管理服务器根据命令行参数在继承于目标类的特殊项目类中确定出目标类方法对应的子类方法;并根据命令行参数包括的方法参数执行子类方法,以实现对目标服务器的管控功能。
需要说明的是,目标类即为步骤102所确定出来的命令行参数对应的目标类,也就是图4中第二行的所示的派生类中的任一派生类;如果特殊的项目需要特殊的项目管控需求,则开发人员可以通过输入命令行参数,针对特殊项目中的差异化部分对特殊项目类中的方法进行重写,进而管理服务器可以根据命令行参数中的参数指令在继承于目标类的特殊项目类中确定出目标类方法对应的子类方法;其中,由于特殊项目类是继承于目标类的(即图4中第三行的特殊项目类是继承于第二行所示的派生类的),所以特殊项目类中的成员方法也是继承于目标类中的目标类方法的,所以特殊项目类中的成员方法也称为目标类方法的子类方法。另外,步骤102中提到命令行参数至少还包括:方法参数,假设该方法参数为“10”,则管理服务器可以将方法参数“10”传入所确定出的子类方法中,以实现对目标服务器的管控功能。
实施上述方法,可以通过方法重写实现的方式来实现特殊项目的特殊管控需求,使得管理服务器的管控方式更加灵活;另外,利用面向对象编程的继承可以使得子类具有父类的属性和方法,还可以对子类进行重新定义、追加属性和方法等;而利用反射功能则可以通过对象的内部执行,如:检查是否含有某成员、获取成员、设置成员、删除成员等方式,实现具体类方法的调用,进而可以减少众多无意义的代码,精简代码架构体系,大大方便后续功能开发的扩展。
作为一种可选的实施方式,请参阅图6,图6是本发明实施例公开的另一种服务器运维管控方法的流程示意图,如图6所示,若判断出对应的目标类方法不存在重写实现时,管理服务器还可以根据命令行参数执行目标类方法包括的父类方法,以实现对目标服务器的管控功能。
作为另一种可选的实施方式,管理服务器根据命令行参数执行目标类方法包括的父类方法,以实现对目标服务器的管控功能的方式可以是:管理服务器根据命令行参数确定出目标类方法包括的父类方法;并根据命令行参数包括的方法参数执行父类方法,以实现对目标服务器的管控功能。
需要说明都是:若获取的命令行参数中不存在指示对目标类方法进行方法重写的参数指令时,则可以直接调用目标类方法的父类方法,即就是调用目标类方法本身(即图4中第二行的所示派生类中的成员方法),进而管理服务器可以将命令行参数包括的方法参数传入所确定出的父类方法中,以实现对目标服务器的管控功能。
实施上述方法,可以避免了各种运维场景中的常见的逻辑异常故障,进而可以让业务系统的服务可用性大大提高。
可见,实施图1所示的方法,构造出一个完整的服务器管控框架,可以避免一位或多位运维工程师的各自编写的零散脚本无法复用、无法扩展的情况,且通过方法重写的方式,可以减少大量重复的程序代码实现,提高了脚本程序的运行质量,进而有利于提高服务器的维护效率。
实施例二
请参阅图7,图7是本发明实施例公开的一种服务器运维管控系统的结构示意图。该系统至少包括但不限于:管理服务器701、接入层服务器702、逻辑层服务器703、数据层服务器704和缓存层服务器705。其中:
管理服务器701,用于获取目标服务器的初始化属性,并根据初始化属性确定出目标服务器的配置项信息;其中,目标服务器为接入层服务器702、逻辑层服务器703、数据层服务器704或缓存层服务器705中的任一服务器;初始化属性至少包括目标服务器的IP地址;配置项信息至少包括目标服务器的角色信息和项目信息;
管理服务器701,还用于获取针对目标服务器的待执行的命令行参数,并根据命令行参数确定出对应的目标类方法;
管理服务器701,还用于根据配置项信息执行对应的目标类方法,并判断对应的目标类方法是否存在重写实现;
管理服务器701,还用于在判断出对应的目标类方法存在重写实现时,根据命令行参数执行目标类方法包括的子类方法,以实现对目标服务器的管控功能。
作为一种可选的实施方式,管理服务器701,还用于在判断出对应的目标类方法不存在重写实现时,根据命令行参数执行目标类方法包括的父类方法,以实现对目标服务器的管控功能。
实施上述方法,可以避免了各种运维场景中的常见的逻辑异常故障,进而可以让业务系统的服务可用性大大提高。
作为一种可选的实施方式,管理服务器701用于获取目标服务器的初始化属性,并根据初始化属性确定出目标服务器的配置项信息的方式具体为:
管理服务器701,用于获取目标服务器的初始化属性,并根据初始化属性包括的目标服务器的IP地址在预设的配置文件中确定出目标服务器所需要的配置项信息。
实施上述方法,通过对不同的服务器设置不同的初始化属性,例如设置不同的项目信息和不同的角色信息,进而可以根据不同服务器对应的不同项目信息和角色信息执行不同的管控操作,方便管理,进而提高了对服务器的管控效率。
作为一种可选的实施方式,管理服务器701用于获取针对目标服务器的待执行的命令行参数,并根据命令行参数确定出对应的目标类方法的方式具体为:
管理服务器701,用于获取针对目标服务器的待执行的命令行参数;以及,根据待执行的命令行参数包括的类名称,在管理服务器包括的项目功能模块的若干个单元对应的若干个类中确定出目标类;上述若干个单元至少包括文件控制单元、日志处理单元、系统配置单元、程序启停单元和防火墙控制单元;以及,根据待执行的命令行参数包括的方法名称,在目标类包括的若干个类方法中确定出目标类方法,作为命令行参数对应的目标类方法。
实施上述方法,使用了面向对象的继承关系以及反射机制,尤其是反射机制的使用,它的核心本质其实就是利用字符串的形式来对类实例进行操作的调用(查找/获取/删除/添加),简单而言是一种基于字符串的事件驱动模式,可以使得不同类方法的调用更加高效便捷,避免不必要的冗余代码。
作为一种可选的实施方式,管理服务器701用于在判断出对应的目标类方法存在重写实现时,根据命令行参数执行目标类方法包括的子类方法,以实现对目标服务器的管控功能的方式具体为:
管理服务器701,用于在判断出对应的目标类方法存在重写实现时,根据命令行参数在继承于目标类的特殊项目类中确定出目标类方法对应的子类方法;以及,根据命令行参数包括的方法参数执行子类方法,以实现对目标服务器的管控功能。
实施上述方法,可以通过方法重写实现的方式来实现特殊项目的特殊管控需求,使得管理服务器的管控方式更加灵活;另外,利用面向对象编程的继承可以使得子类具有父类的属性和方法,还可以对子类进行重新定义、追加属性和方法等;而利用反射功能则可以通过对象的内部执行,如:检查是否含有某成员、获取成员、设置成员、删除成员等方式,实现具体类方法的调用,进而可以减少众多无意义的代码,精简代码架构体系,大大方便后续功能开发的扩展。
作为一种可选的实施方式,管理服务器701用于在判断出对应的目标类方法不存在重写实现时,根据命令行参数执行目标类方法包括的父类方法,以实现对目标服务器的管控功能的方式具体为:
管理服务器701,用于在判断出对应的目标类方法不存在重写实现时,根据命令行参数确定出目标类方法包括的父类方法;以及,根据命令行参数包括的方法参数执行父类方法,以实现对目标服务器的管控功能。
实施上述方法,可以避免了各种运维场景中的常见的逻辑异常故障,进而可以让业务系统的服务可用性大大提高。
可见,实施图7所描述的系统,其构造出一个完整的服务器管控框架,可以避免一位或多位运维工程师的各自编写的零散脚本无法复用、无法扩展的情况,且通过方法重写的方式,可以减少大量重复的程序代码实现,提高了脚本程序的运行质量,进而有利于提高服务器的维护效率。
实施例三
请参阅图8,图8是本发明实施例公开的另一种服务器运维管控系统的结构示意图。如图8所示,该服务器运维管控系统可以包括:
存储有可执行程序代码的存储器801;
与存储器801耦合的处理器802;
其中,处理器802调用存储器801中存储的可执行程序代码,执行图1所描述的一种服务器运维管控方法。
本发明实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序使得计算机执行图1所描述的一种服务器运维管控方法。
本发明实施例还公开一种应用发布平台,其中,应用发布平台用于发布计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行如以上各方法实施例中的方法的部分或全部步骤。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定特征、结构或特性可以以任意适合的方式结合在一个或多个实施例中。本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在本发明的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本发明的各个实施例上述方法的部分或全部步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上对本发明实施例公开的一种服务器运维管控方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种服务器运维管控方法,其特征在于,所述方法包括:
管理服务器获取目标服务器的初始化属性,并根据所述初始化属性确定出所述目标服务器的配置项信息;其中,所述目标服务器为接入层服务器、逻辑层服务器、数据层服务器或缓存层服务器中的任一服务器;所述初始化属性至少包括所述目标服务器的IP地址;所述配置项信息至少包括所述目标服务器的角色信息和项目信息;
管理服务器获取针对所述目标服务器的待执行的命令行参数,并根据所述命令行参数确定出对应的目标类方法;
管理服务器根据所述配置项信息执行所述对应的目标类方法,并判断所述对应的目标类方法是否存在重写实现;
若存在,管理服务器根据所述命令行参数执行所述目标类方法包括的子类方法,以实现对所述目标服务器的管控功能。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若判断出所述对应的目标类方法不存在重写实现,管理服务器根据所述命令行参数执行所述目标类方法包括的父类方法,以实现对所述目标服务器的管控功能。
3.根据权利要求2所述的方法,其特征在于,所述管理服务器获取目标服务器的初始化属性,并根据所述初始化属性确定出所述目标服务器的配置项信息,包括:
管理服务器获取目标服务器的初始化属性,并根据所述初始化属性包括的所述目标服务器的IP地址在预设的配置文件中确定出所述目标服务器所需要的配置项信息。
4.根据权利要求1、2或3所述的方法,其特征在于,所述管理服务器获取针对所述目标服务器的待执行的命令行参数,并根据所述命令行参数确定出对应的目标类方法,包括:
管理服务器获取针对所述目标服务器的待执行的命令行参数;
所述管理服务器根据所述待执行的命令行参数包括的类名称,在所述管理服务器包括的项目功能模块的若干个单元对应的若干个类中确定出目标类;所述若干个单元至少包括文件控制单元、日志处理单元、系统配置单元、程序启停单元和防火墙控制单元;
所述管理服务器根据所述待执行的命令行参数包括的方法名称,在所述目标类包括的若干个类方法中确定出目标类方法,作为所述命令行参数对应的目标类方法。
5.根据权利要求4所述的方法,其特征在于,所述管理服务器根据所述命令行参数执行所述目标类方法包括的子类方法,以实现对所述目标服务器的管控功能,包括:
管理服务器根据所述命令行参数在继承于所述目标类的特殊项目类中确定出所述目标类方法对应的子类方法;
管理服务器根据所述命令行参数包括的方法参数执行所述子类方法,以实现对所述目标服务器的管控功能。
6.根据权利要求4所述的方法,其特征在于,所述管理服务器根据所述命令行参数执行所述目标类方法包括的父类方法,以实现对所述目标服务器的管控功能,包括:
管理服务器根据所述命令行参数确定出所述目标类方法包括的父类方法;
管理服务器根据所述命令行参数包括的方法参数执行所述父类方法,以实现对所述目标服务器的管控功能。
7.一种服务器运维管控系统,其特征在于,所述系统至少包括:管理服务器、接入层服务器、逻辑层服务器、数据层服务器和缓存层服务器;其中:
所述管理服务器,用于获取目标服务器的初始化属性,并根据所述初始化属性确定出所述目标服务器的配置项信息;其中,所述目标服务器为所述接入层服务器、所述逻辑层服务器、所述数据层服务器或所述缓存层服务器中的任一服务器;所述初始化属性至少包括所述目标服务器的IP地址;所述配置项信息至少包括所述目标服务器的角色信息和项目信息;
所述管理服务器,还用于获取针对所述目标服务器的待执行的命令行参数,并根据所述命令行参数确定出对应的目标类方法;
所述管理服务器,还用于根据所述配置项信息执行所述对应的目标类方法,并判断所述对应的目标类方法是否存在重写实现;
所述管理服务器,还用于在判断出所述对应的目标类方法存在重写实现时,根据所述命令行参数执行所述目标类方法包括的子类方法,以实现对所述目标服务器的管控功能。
8.根据权利要求7所述的系统,其特征在于,所述管理服务器还用于在判断出所述对应的目标类方法不存在重写实现时,根据所述命令行参数执行所述目标类方法包括的父类方法,以实现对所述目标服务器的管控功能。
9.一种服务器运维管控系统,其特征在于,所述系统包括存储有可执行程序代码的存储器,以及与所述存储器耦合的处理器;其中,所述处理器调用所述存储器中存储的所述可执行程序代码,执行权利要求1~6任一项所述的服务器运维管控方法。
10.一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行权利要求1~6任一项所述的服务器运维管控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910342507.8A CN110098963B (zh) | 2019-04-25 | 2019-04-25 | 一种服务器运维管控方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910342507.8A CN110098963B (zh) | 2019-04-25 | 2019-04-25 | 一种服务器运维管控方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110098963A true CN110098963A (zh) | 2019-08-06 |
CN110098963B CN110098963B (zh) | 2022-05-13 |
Family
ID=67445925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910342507.8A Active CN110098963B (zh) | 2019-04-25 | 2019-04-25 | 一种服务器运维管控方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110098963B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120233248A1 (en) * | 2009-11-24 | 2012-09-13 | Huawei Technologies Co., Ltd. | Method and system for processing request message, and load balancer device |
CN105119757A (zh) * | 2015-09-14 | 2015-12-02 | 沈文策 | 一种企业服务器运维自动化的方法与系统 |
CN105703926A (zh) * | 2014-11-26 | 2016-06-22 | 安徽中杰信息科技有限公司 | 一种基于shell的服务器运维监控方法 |
CN109032582A (zh) * | 2018-07-19 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种生成服务器运维脚本的方法及装置 |
-
2019
- 2019-04-25 CN CN201910342507.8A patent/CN110098963B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120233248A1 (en) * | 2009-11-24 | 2012-09-13 | Huawei Technologies Co., Ltd. | Method and system for processing request message, and load balancer device |
CN105703926A (zh) * | 2014-11-26 | 2016-06-22 | 安徽中杰信息科技有限公司 | 一种基于shell的服务器运维监控方法 |
CN105119757A (zh) * | 2015-09-14 | 2015-12-02 | 沈文策 | 一种企业服务器运维自动化的方法与系统 |
CN109032582A (zh) * | 2018-07-19 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种生成服务器运维脚本的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110098963B (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562513B (zh) | 一种基于java的智能合约生命周期的管理方法 | |
JP4603106B2 (ja) | オブジェクトの遠隔的ブラウズ方法及びシステム | |
CN104714828B (zh) | 应用安装、运行方法及装置 | |
CN106506703B (zh) | 基于共享内存的服务发现方法、装置及系统、服务器 | |
US7505995B2 (en) | Object-relational model based user interfaces | |
CN100580622C (zh) | 一种基于统一建模语言的电信领域建模工具及建模方法 | |
CN106325951A (zh) | 一种支持多数据库、多中间件类型的应用系统自动化部署方法 | |
US20020144256A1 (en) | Method of deployment for concurrent execution of multiple versions of an integration model on an integration server | |
US20180165071A1 (en) | Post-deployment modification of information-technology application using lifecycle blueprint | |
CN109344000A (zh) | 区块链网络服务平台、恢复工具及其故障处理方法、存储介质 | |
US20070083551A1 (en) | Extensible mechanism for object composition | |
JP2003533812A (ja) | コンピュータ・ネットワークにおいてデータを自動的にディプロイし、および同時にコンピュータ・プログラム・スクリプトを実行するための方法および装置 | |
CN110297721B (zh) | 一种基于java的智能合约的跨合约调用方法 | |
US20120151464A1 (en) | Running Injected Code Prior to Execution of an Application | |
US8078971B2 (en) | System and method for scripting explorer for server configuration | |
US20160292581A1 (en) | Minimized processing of streaming changes into a semantic reasoner | |
CN114064213A (zh) | 基于Kubernets容器环境的快速编排服务方法及系统 | |
CA3203793C (en) | System and method for real-time, dynamic creation, delivery, and use of customizable web applications | |
CN103309696B (zh) | 一种Java卡扩展库更新方法、装置和Java卡 | |
CN102169436B (zh) | 用于集成电路制造设备的通用控制内核系统 | |
CN106990974A (zh) | 一种app应用更新方法、装置及电子设备 | |
CN111813836A (zh) | 一种提高Ethereum区块链系统扩展性的方法 | |
US10547565B2 (en) | Automatic determination and just-in-time acquisition of data for semantic reasoning | |
Sato et al. | Formal requirement enforcement on smart contracts based on linear dynamic logic | |
CN110098963A (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 |