被控端自动恢复方法和装置与流程

文档序号:17287663发布日期:2019-04-03 03:41阅读:177来源:国知局
被控端自动恢复方法和装置与流程

本发明涉及计算机技术领域,更具体地说,涉及被控端自动恢复方法和装置。



背景技术:

运维管理工具(例如saltstack、zabbix)中包括主控端和多个被控端,主控端同时与多个被控端存在通信连接,使得主控端所在主机能够同时对多个被控端所在主机进行状态监控或数据管理等运维管理工作。

当所述运维管理工具中的某一个或某几个被控端出现问题(例如被控端的某个文件被误删,或者被控端配置参数错误等)而无法与主控端正常通信时(即被控端不可用时),一般只能由人工登陆到被控端不可用的主机进行处理,使这些主机上配置的被控端恢复运行。但这种人工登陆、处理方式必然存在人力成本高、处理不及时的问题。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的被控端自动恢复方法和装置,方案如下:

一种被控端自动恢复方法,包括:

排查运维管理工具中不可用的被控端;

根据排查结果,生成被控端不可用的主机列表;

对所述主机列表中的每一个主机执行自动恢复脚本;

其中,所述自动恢复脚本的内容包括:向所述主机发送登陆请求,在登陆成功后,对所述主机重新安装、配置被控端。

可选的,所述对所述主机列表中的每一个主机执行自动恢复脚本,包括:

确定所述主机列表中的每一个主机采用的计算机操作系统;

如果所述主机列表中有至少一个主机具有与所述被控端自动恢复方法的执行主机相同的计算机操作系统,使用远程执行工具对所述至少一个主机执行自动恢复脚本。

可选的,所述确定所述主机列表中的每一个主机采用的计算机操作系统之后,还包括:

如果所述主机列表中有多个主机具有与所述执行主机相同的计算机操作系统,使用批量执行工具同时控制所述多个主机执行自动恢复脚本。

其中,当所述运维管理工具为saltstack时,其主控端和被控端分别为salt-master端和salt-minion端;

对应的,所述排查运维管理工具中不可用的被控端,包括:

向saltstack的salt-api模块发送监控指令,用以控制salt-master端对各个指定的salt-minion端执行test.ping操作,并接收各个指定的salt-minion端返回的状态信息,所述状态信息用于反映本salt-minion端的可用性。

可选的,所述生成被控端不可用的主机列表之后,还包括:

判断连续n次生成的被控端不可用的主机列表中是否都包含同一主机,其中n≥2,如果是,输出报警信息。

一种被控端自动恢复装置,包括:

排查单元,用于排查运维管理工具中不可用的被控端;

列表生成单元,用于根据排查结果,生成被控端不可用的主机列表;

自动恢复单元,用于对所述主机列表中的每一个主机执行自动恢复脚本;

其中,所述自动恢复脚本的内容包括:向所述主机发送登陆请求,在登陆成功后,对所述主机重新安装、配置被控端。

其中,当所述运维管理工具为saltstack时,其主控端和被控端分别为salt-master端和salt-minion端;

对应的,所述排查单元用于向saltstack的salt-api模块发送监控指令,用以控制salt-master端对各个指定的salt-minion端执行test.ping操作,并接收各个指定的salt-minion端返回的状态信息,所述状态信息用于反映本salt-minion端的可用性。

可选的,所述被控端自动恢复装置还包括报警单元,用于判断连续n次生成的被控端不可用的主机列表中是否都包含同一主机,其中n≥2,如果是,输出报警信息。

一种存储介质,其上存储有程序,该程序被处理器执行时实现上述任一种被控端自动恢复方法。

一种处理器,所述处理器用于运行程序,所述程序运行时执行上述任一种被控端自动恢复方法。

借由上述技术方案,本发明提供的被控端自动恢复方法和装置,可以周期性排查运维管理工具中不可用的被控端,根据排查结果,对被控端不可用的主机重新安装、配置被控端,从而达到被控端自动恢复运行的目的,整个处理过程高效且不需要人为干预,解决了现有技术中人力成本高、处理不及时的问题。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种被控端自动恢复方法流程图;

图2示出了本发明实施例提供的又一种被控端自动恢复方法流程图;

图3示出了本发明实施例提供的一种被控端自动恢复装置结构示意图;

图4示出了本发明实施例提供的又一种被控端自动恢复装置结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

如图1所示,本发明实施例提供的一种被控端自动恢复方法,包括:

步骤s01:排查运维管理工具中不可用的被控端。

具体的,运维管理工具中包括主控端和多个被控端,主控端同时与多个被控端存在通信连接,当某个被控端出现问题(例如该被控端的某个文件被误删,或者该被控端配置参数错误等)而无法与主控端正常通信时,称为该被控端不可用。而运维管理工具要求保证各个被控端24小时可用,因此有必要排查运维管理工具中不可用的被控端,以便及时发现问题,从而尽早解决问题。

其中需要说明的是,现有的运维管理工具有saltstack、zabbix等。由于不同类型的运维管理工具采用的系统架构和原理存在一定差异,所以本发明实施例在排查某一类型的运维管理工具中不可用的被控端时,需要结合该类型的运维管理工具的系统架构和原理采取相应的排查手段。下面,以saltstack为例进行说明。

saltstack是企业用于对大规模服务器进行配置管理和远程执行的基础设施管理工具,其系统架构和原理如下:saltstack中的主控端和被控端分别是salt-master端和salt-minion端,salt-master端同时与多个salt-minion端存在通信连接。具体的,salt-master端监听两个端口,分别是消息发布系统和与salt-minion端通信的端口;salt-minion端不监听端口,其启动后,会主动连接到salt-master端进行注册,然后一直与salt-master端保持通信连接,响应salt-master端的请求。

基于saltstack的系统架构和原理,在排查saltstack中不可用的被控端时,主要使用saltstack中包含的salt-api和test.ping两个功能模块。salt-api模块是saltstack提供的restapi格式web接口,将使saltstack与第三方系统集成变得尤为简单、方便。test.ping模块是saltstack自带的用于对salt-minion端的可用性进行检测的模块。

使用salt-api模块和test.ping模块排查saltstack中不可用的被控端的过程,具体包括:向saltstack的salt-api模块发送监控指令,本监控指令用以控制salt-master端对本监控指令指定的各个salt-minion端(例如指定saltstack中所有的salt-minion端)执行test.ping操作,并接收各个指定的salt-minion端返回的状态信息,所述状态信息用于反映本salt-minion端的可用性。

本监控指令指定的各个salt-minion端,除了包括已连接到salt-master端进行注册的salt-minion端,也可能包括未注册的salt-minion端。对已注册的salt-minion端执行test.ping操作,如果该salt-minion端不可用,则返回内容为“true”的状态信息,如果该salt-minion端可用,则返回内容为“false”的状态信息;而未注册的salt-minion端不会对test.ping操作返回任何信息,其也被视为不可用的salt-minion端。可见,根据接收到的各个指定的salt-minion端返回的状态信息,可以确定各个指定的salt-minion端的可用性。

可选的,为保证运维管理工具中各个被控端长期可靠运行,本发明实施例将排查运维管理工具中不可用的被控端这一指令设置为周期性被执行的指令。当本发明实施例公开的被控端自动恢复方法的执行主机为linux主机时,可以用crontab命令设置周期性被执行的指令,当所述执行主机为采用其他计算机操作系统的主机时,使用相应计算机操作系统下支持的命令设置周期性被执行的指令即可。

步骤s02:根据排查结果,生成被控端不可用的主机列表。

具体的,根据排查结果直接得到的是被控端不可用的主机id列表,而被控端所在主机的id只能供运维管理工具中的主控端识别该主机身份,本发明实施例公开的被控端自动恢复方法的执行主机则无法识别。所以,需要根据预先存储的被控端所在主机的id与ip之间的对应关系表,将所述被控端不可用的主机id列表转换成被控端不可用的主机ip列表,以使得所述执行主机能够根据被控端所在主机的ip识别被控端不可用的各个主机的身份,从而方便后续所述执行主机对被控端不可用的各个主机执行相应操作。

步骤s03:对所述主机列表(即所述被控端不可用的主机ip列表)中的每一个主机执行自动恢复脚本,其中,所述自动恢复脚本的内容包括:向所述主机发送登陆请求,在登陆成功后,对所述主机重新安装、配置被控端。

具体的,为安全起见,除主控端所在主机以外的其他主机访问被控端所在主机时,必须进行安全登陆认证。所以,所述被控端自动恢复方法的执行主机在对所述主机列表中的每一个主机执行自动恢复脚本时,首先要进行安全登陆认证,在登陆成功后,再将可控端安装包下载到所登陆的主机上,对其重新安装、配置被控端,达到被控端自动恢复运行的目的。

其中需要说明的是,目前常用的计算机操作系统有windows、linux、unix等,安装不同计算机操作系统的主机之间无法直接通讯,需要借助远程执行工具,该远程执行工具的类型由通信双方的计算机操作系统的类型决定。举例说明,linux主机无法直接访问windows主机,通常是使用远程执行工具winexe与windows主机进行通信。

对应的,所述被控端自动恢复方法的执行主机对所述主机列表中的每一个主机执行自动恢复脚本的过程,具体包括:

确定所述主机列表中的每一个主机采用的计算机操作系统;

如果所述主机列表中有至少一个主机具有与所述执行主机相同的计算机操作系统,使用远程执行工具对所述至少一个主机执行自动恢复脚本,该远程执行工具的类型由通信双方的计算机操作系统的类型决定,所述执行主机上可以同时安装多种远程执行工具。

可见,本发明实施例对所述执行主机的计算机操作系统的类型没有限制。

可选的,所述确定所述主机列表中的每一个主机采用的计算机操作系统之后,还包括:

如果所述主机列表中有多个主机具有与所述执行主机具有相同计算机操作系统,使用批量执行工具同时控制所述多个主机执行自动恢复脚本,以提高处理效率,而在此之前,所述执行主机只能逐一对所述主机列表中的每一个主机执行自动恢复脚本,效率相对较低。

其中,该批量执行工具的类型由所述执行主机的计算机操作系统的类型决定。举例说明,当所述执行主机为linux主机时,可以使用批量执行工具ansible同时对多个被控端不可用的linux主机执行自动恢复脚本。

综合以上描述可知,本发明实施例提供的上述被控端自动恢复方法可以周期性排查运维管理工具中不可用的被控端,根据排查结果,对被控端不可用的主机重新安装、配置被控端,从而达到被控端自动恢复运行的目的,整个处理过程高效且不需要人为干预,解决了现有技术中人力成本高、处理不及时的问题。

如图2所示,本发明实施例还公开了又一种被控端自动恢复方法,包括:

步骤s01:排查运维管理工具中不可用的被控端。

步骤s02:根据排查结果,生成被控端不可用的主机列表。

步骤s021:判断连续n(n≥2)次生成的被控端不可用的主机列表中是否都包含同一主机;若是,进入步骤s022;若否,进入步骤s03。

步骤s022;输出报警信息,之后进入步骤s03。

步骤s03:对所述主机列表中的每一个主机执行自动恢复脚本;

其中,所述自动恢复脚本的内容包括:向所述主机发送登陆请求,在登陆成功后,对所述主机重新安装、配置被控端。

图2所示技术方案与图1所示技术方案的区别之处主要在于,增加了步骤s021和步骤s022。增加步骤s021和步骤s022的目的如下:如果连续n(n≥2)次生成的被控端不可用的主机列表中都包含同一主机,说明该主机的被控端连续n次自动恢复失败,这可能是重新安装、配置的被控端与该主机上其他软件不兼容等问题导致的,此时需要发出报警信号通知人工处理。

需要说明的是,图2所示技术方案中步骤s022和步骤s03的执行顺序也可以对调。

与上述方法实施例相对应,如图3所示,本发明还提供了一种被控端自动恢复装置,包括:

排查单元100,用于排查运维管理工具中不可用的被控端;

列表生成单元200,用于根据排查结果,生成被控端不可用的主机列表;

自动恢复单元300,用于对所述主机列表中的每一个主机执行自动恢复脚本;

其中,所述自动恢复脚本的内容包括:向所述主机发送登陆请求,在登陆成功后,对所述主机重新安装、配置被控端。

可选的,自动恢复单元300用于确定所述主机列表中的每一个主机采用的计算机操作系统;如果所述主机列表中有至少一个主机具有与所述被控端自动恢复方法的执行主机相同的计算机操作系统,使用远程执行工具对所述至少一个主机执行自动恢复脚本。

可选的,自动恢复单元300在确定所述主机列表中的各个主机采用的计算机操作系统之后,还用于在所述主机列表中有多个主机具有与所述执行主机相同的计算机操作系统的情况下,使用批量执行工具同时控制所述多个主机执行自动恢复脚本。

可选的,当所述运维管理工具为saltstack时,其主控端和被控端分别为salt-master端和salt-minion端;

此时,排查单元100用于向saltstack的salt-api模块发送监控指令,用以控制salt-master端对各个指定的salt-minion端执行test.ping操作,并接收各个指定的salt-minion端返回的状态信息,所述状态信息用于反映本salt-minion端的可用性。

可选的,如图4所示,所述被控端自动恢复装置还包括报警单元400,用于判断连续n次生成的被控端不可用的主机列表中是否都包含同一主机,其中n≥2,如果是,输出报警信息。

上述公开的任一种被控端自动恢复装置包括处理器和存储器,上述排查单元100、列表生成单元200、自动恢复单元300等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来达到被控端自动恢复的目的。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现上述公开的任一种被控端自动恢复方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述公开的任一种被控端自动恢复方法。

本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:

排查运维管理工具中不可用的被控端;

根据排查结果,生成被控端不可用的主机列表;

对所述主机列表中的每一个主机执行自动恢复脚本;

其中,所述自动恢复脚本的内容包括:向所述主机发送登陆请求,在登陆成功后,对所述主机重新安装、配置被控端。

可选的,所述对所述主机列表中的每一个主机执行自动恢复脚本,包括:

确定所述主机列表中的每一个主机采用的计算机操作系统;

如果所述主机列表中有至少一个主机具有与所述被控端自动恢复方法的执行主机相同的计算机操作系统,使用远程执行工具对所述至少一个主机执行自动恢复脚本。该远程执行工具的类型由通信双方的计算机操作系统的类型决定,所述执行主机上可以同时安装多种远程执行工具。

可选的,所述确定所述主机列表中的每一个主机采用的计算机操作系统之后,还包括:

如果所述主机列表中有多个主机具有与所述执行主机相同的计算机操作系统,使用批量执行工具同时控制所述多个主机执行自动恢复脚本。该批量执行工具的类型由所述执行主机的计算机操作系统的类型决定。举例说明,当所述执行主机为linux主机时,可以使用批量执行工具ansible同时对多个被控端不可用的linux主机执行自动恢复脚本。

可选的,当所述运维管理工具为saltstack时,其主控端和被控端分别为salt-master端和salt-minion端;

对应的,所述排查运维管理工具中不可用的被控端,包括:

向saltstack的salt-api模块发送监控指令,用以控制salt-master端对各个指定的salt-minion端执行test.ping操作,并接收各个指定的salt-minion端返回的状态信息,所述状态信息用于反映本salt-minion端的可用性。

可选的,所述生成被控端不可用的主机列表之后,还包括:

判断连续n次生成的被控端不可用的主机列表中是否都包含同一主机,其中n≥2,如果是,输出报警信息。

本文中的设备可以是服务器、pc、pad、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:

排查运维管理工具中不可用的被控端;

根据排查结果,生成被控端不可用的主机列表;

对所述主机列表中的每一个主机执行自动恢复脚本;

其中,所述自动恢复脚本的内容包括:向所述主机发送登陆请求,在登陆成功后,对所述主机重新安装、配置被控端。

可选的,所述对所述主机列表中的每一个主机执行自动恢复脚本,包括:

确定所述主机列表中的每一个主机采用的计算机操作系统;

如果所述主机列表中有至少一个主机具有与所述被控端自动恢复方法的执行主机相同的计算机操作系统,使用远程执行工具对所述至少一个主机执行自动恢复脚本。该远程执行工具的类型由通信双方的计算机操作系统的类型决定,所述执行主机上可以同时安装多种远程执行工具。

可选的,所述确定所述主机列表中的每一个主机采用的计算机操作系统之后,还包括:

如果所述主机列表中有多个主机具有与所述执行主机相同的计算机操作系统,使用批量执行工具同时控制所述多个主机执行自动恢复脚本。该批量执行工具的类型由所述执行主机的计算机操作系统的类型决定。举例说明,当所述执行主机为linux主机时,可以使用批量执行工具ansible同时对多个被控端不可用的linux主机执行自动恢复脚本。

可选的,当所述运维管理工具为saltstack时,其主控端和被控端分别为salt-master端和salt-minion端;

对应的,所述排查运维管理工具中不可用的被控端,包括:

向saltstack的salt-api模块发送监控指令,用以控制salt-master端对各个指定的salt-minion端执行test.ping操作,并接收各个指定的salt-minion端返回的状态信息,所述状态信息用于反映本salt-minion端的可用性。

可选的,所述生成被控端不可用的主机列表之后,还包括:

判断连续n次生成的被控端不可用的主机列表中是否都包含同一主机,其中n≥2,如果是,输出报警信息。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1