一种集群环境下的自动化运维方法
技术领域
本发明涉及运维管理技术领域,具体地说是一种实用性强、集群环境下的自动化运维方法。
背景技术
随着中国信息化进程的推进,政府、企业等大型组织机构的信息化水平和程度大大提高,应用系统的规模和复杂度同样水涨船高。传统运维的管理模式需要管理人员人工监控系统状况,对应用系统中出现的日常管理操作进行手工处理,成本高,效率低且缺乏实时性,已经不适用于大型应用系统。尤其是对于高度集群化的企业应用管理场景,自动化运维管理方式必不可少。
所谓运维管理的自动化是指通过将日常运维中大量的重复性工作(小到简单的日常检查、配置变更和软件安装及更新,大到整个变更流程的组织调度)由过去的手工执行转为基于预制管理策略的自动化操作,从而减少乃至消除运维中的延迟,实现“零延时”的运维。
基于此,现提供一种集群环境下基于消息的自动化运维方法,旨在为企业应用系统提供一套快速、高效、实时的运维管理方法,提升系统运维的效率,降低人工成本。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、集群环境下的自动化运维方法。
一种集群环境下的自动化运维方法,其具体实现过程为:
一、首先构建运维平台系统,该系统由一台控制服务器和多台受控服务器组成;其中控制服务器内部署总控制器、资源服务、健康服务及管理控制台四部分模块组成;受控服务器部署控制服务代理和健康服务代理两部分模块;
二、受控服务器向控制服务器发送消息注册服务器信息,建立多服务器之间的消息通讯通道;
三、该运维平台系统完成日常系统维护动作:
管理人员通过管理控制台为总控制器输入任务消息;
总控制器将操作命令消息发送给资源服务;
资源服务生成命令集消息,发送给受控服务器的控制服务代理模块,完成日常维护;
四、该运维平台系统完成健康故障处理动作:
受控服务器内的健康服务代理模块则将健康数据消息发送给总控制器的健康服务;
健康服务发现预警消息时,将该消息发送给总控制器,总控制器完成预警处理。
所述控制服务器中,总控制器负责系统内所有受控服务器信息的管理,处理控制台操作任务和健康预警消息;健康服务负责收集和处理受控服务器健康状况信息并向总控制器发送健康预警消息;资源服务负责接收总控制器任务消息,分解为具体执行命令集发送给指定受控服务器执行;管理控制台为系统管理员入口。
所述受控服务器中,控制服务代理负责接收控制服务器发送的命令集并执行;健康服务代理负责服务器健康状况的实时监控,并以健康服务下发的健康策略为依据,定期将健康信息以消息的方式上报给健康服务。
所述控制服务代理接受控制服务器发送的命令集,该控制服务代理由消息组件、命令执行组件两部分组成:消息组件用于接收控制服务器命令集消息,反馈命令集执行情况;命令执行组件用于命令的具体执行,该命令执行组件包括:执行指令、回滚指令、终止指令三类操作。
所述步骤三的详细过程为:
管理员通过管理控制台向控制服务器发送集群环境内运维管理操作任务消息;
总控制器接收任务消息,根据策略生成处理方案,发送给资源服务;
资源服务将处理方案解析为受控服务器可执行的操作命令集,发送给指定受控服务器内的控制服务代理;
控制服务代理根据命令集执行相关操作,一旦发生错误,向控制服务器发送失败消息并回滚执行。
所述步骤四的详细过程为:
健康服务代理获取受控服务器实时健康数据,通过消息发送给控制服务器上的健康服务进行健康监控;
当受控服务器发生故障,控制服务器接收到的健康数据异常,或者无法接收健康数据时,健康服务根据预置策略触发健康预警,向总控制器发送预警消息;
总控制器接收预警消息,根据处理策略生成处理方案,此时如果出现故障的受控服务器仍可通信,处理方案通过消息发送给资源服务并执行下述步骤,如果不可通信,解决方案由总控制器自行执行;
资源服务将处理方案解析为可执行的操作命令集,发送给故障受控服务器内的控制服务代理执行;
控制服务代理根据命令集执行相关操作,解决服务器健康故障;一旦发生错误,向控制服务器发送失败消息并回滚执行。
本发明的一种集群环境下的自动化运维方法,具有以下优点:
本发明提出的一种集群环境下的自动化运维方法,根据事先定义的运维策略实现受控系统的自动化运维,无需人工干预,大大降低业务系统运维管理的成本;另外提供了全面的监控管理和问题分析手段来帮助企业信息管理部门及时识别和发现IT问题;通过受控服务器的服务代理,控制服务器可以对集群内部的所有服务器进行实时监控和自动化运维,对于在集群内部针对多台服务器的重复性工作,自动化运维节省人工维护成本,提升效率;基于消息的通信方式可以实现跨平台,跨操作系统的命令执行,执行过程中,只要有一台服务器上的命令集执行失败,执行过程会自动回滚,以保证集群环境中各个服务器的一致性,实用性强,易于推广。
附图说明
附图1为本发明的运维平台系统示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
本发明提供一种集群环境下的自动化运维方法,通过提供一套架构和方法,解决企业应用架构中集群环境下服务器和虚拟机运维管理人工成本高,效率低下的问题。如附图1所示,其具体实现过程为:
一、首先构建运维平台系统,该系统由一台控制服务器和多台受控服务器组成;其中控制服务器内部署总控制器、资源服务、健康服务及管理控制台四部分模块组成;受控服务器部署控制服务代理和健康服务代理两部分模块。
控制服务器提供应用系统自动化运维的核心功能。总控制器负责系统内所有受控服务器信息的管理,处理控制台操作任务和健康预警消息;健康服务负责收集和处理受控服务器健康状况信息并向总控制器发送健康预警消息;资源服务负责接收总控制器任务消息,分解为具体执行命令集发送给指定受控服务器执行;管理控制台为系统管理员入口。
控制服务器上部署的总控制器在整个方法中起到调度控制作用,其功能是接收在集群内的所有受控服务器的注册并进行统一管理,接收管理员从管理控制台设定的任务指令或健康预警消息并做出相应处理,将处理结果通过消息发送给资源服务。
控制服务器上的资源服务负责接收总控制器的任务消息,解析为受控服务器需要的可执行命令集,再通过消息发送给受控服务器中的控制服务代理执行,或由控制服务代理调用受控服务器业务系统的相关服务执行。
受控服务器上的控制服务代理负责接收控制服务器发送的命令集并执行,健康服务代理负责服务器健康状况的实时监控,并以健康服务下发的健康策略为依据,定期将健康信息以消息的方式上报给健康服务。
控制服务代理只接受控制服务器发送的命令集,其有消息组件、命令执行组件两部分组成。消息组件用于接收控制服务器命令集消息,反馈命令集执行情况;命令执行组件用于命令的具体执行。该命令执行组件包括:执行指令、回滚指令、终止指令三类操作。
当资源服务向各控制服务代理发送执行指令时,会按照执行步骤对各个受控服务器的指令进行排序,形成每个受控服务器的指令集。
命令反馈有两种反馈结果:成功、失败。反馈的失败信息中带有明确的失败原因。
同一个控制服务代理的指令集是顺序执行的。当资源服务从控制服务代理获取到反馈结果为失败时,会终止所有控制服务代理的工作,并发送更新回滚指令。
二、所有被纳入自动化运维管理的受控服务器,都要部署控制服务代理和健康服务代理,且所有的受控服务器都要在控制服务器内注册,用于建立多服务器之间的消息通讯通道。
三、该运维平台系统完成日常系统维护动作:
管理人员通过管理控制台为总控制器输入任务消息;
总控制器将操作命令消息发送给资源服务;
资源服务生成命令集消息,发送给受控服务器的控制服务代理模块,完成日常维护。
四、该运维平台系统完成健康故障处理动作:
受控服务器内的健康服务代理模块则将健康数据消息发送给总控制器的健康服务;
健康服务发现预警消息时,将该消息发送给总控制器,总控制器完成预警处理。
所述步骤三的详细过程为:
管理员通过管理控制台向控制服务器发送集群环境内运维管理操作任务消息;
总控制器接收任务消息,根据策略生成处理方案,发送给资源服务;
资源服务将处理方案解析为受控服务器可执行的操作命令集,发送给指定受控服务器内的控制服务代理;
控制服务代理根据命令集执行相关操作,一旦发生错误,向控制服务器发送失败消息并回滚执行。
所述步骤四的详细过程为:
健康服务代理获取受控服务器实时健康数据,通过消息发送给控制服务器上的健康服务进行健康监控;
当受控服务器发生故障,控制服务器接收到的健康数据异常,或者无法接收健康数据时,健康服务根据预置策略触发健康预警,向总控制器发送预警消息;
总控制器接收预警消息,根据处理策略生成处理方案,此时如果出现故障的受控服务器仍可通信,处理方案通过消息发送给资源服务并执行下述步骤,如果不可通信,解决方案由总控制器自行执行;
资源服务将处理方案解析为可执行的操作命令集,发送给故障受控服务器内的控制服务代理执行;
控制服务代理根据命令集执行相关操作,解决服务器健康故障;一旦发生错误,向控制服务器发送失败消息并回滚执行。
实施例:
场景1:XX集团旗下有多个产业单位,统一部署了xx ERP产品进行企业信息化管理。为解决在各个产业单位的资源的统一运维管理问题,xx集团同时部署了一套集群环境下基于消息的自动化运维平台。使用一段时间后,xx ERP发布最新版本,集团信息管理部决定对集群内产业单位A的所有服务器进行统一升级操作。管理员张三登陆控制服务器上的管理控制台,在控制台中设定产业单位A服务器软件升级任务,立即执行,步骤如下:
1、管理控制台向控制服务器发送任务消息,控制服务器接收后由总控制器初步处理,确定需要执行操作的服务器A01,A02,连同任务信息一同发送给资源服务;
2、资源服务将处理方案解析为受控服务器可执行的操作命令集,发送给服务器A01,A02内的控制服务代理,命令集如下:
3、A01、A02服务器上的控制服务代理接收资源服务发送的消息,根据命令集调用xx ERP的自更新服务开始对软件进行升级操作,A01服务器升级成功,A02升级中集团网络出现问题,升级失败;
4、A02受控服务器检测到命令集执行失败,回滚A02上的操作,并向控制服务器发送错误消息,管理控制台接收错误消息;
5、管理员通过控制台监控到A02执行失败消息,重新设定A02升级任务。
场景2:XX集团旗下有多个产业单位,统一部署了xx ERP产品进行企业信息化管理。为解决在各个产业单位的资源的统一运维管理问题,xx集团同时部署了一套集群环境下基于消息的自动化运维平台。使用一段时间后,产业单位B的服务器B01上出现死锁,CPU占用率过高,受控服务器健康服务发送健康数据至控制服务器,控制服务器处理步骤如下:
1)控制服务器健康服务接收B01受控服务器CPU占用等健康数据,根据预置健康策略判断CPU占用异常,需进行故障排除,发送受控服务器信息及健康预警消息至总控制器;
2)总控制器接收到消息,做出处理方案:重启服务器B01,发送至资源服务;
3)资源服务将处理方案解析为受控服务器可执行的操作命令集,发送给服务器B01内的控制服务代理,命令集如下:
4)B01服务器上的控制服务代理接收到命令集并执行重启服务器操作,重启后受控服务器中的两个服务代理自启动,健康服务代理继续收集健康信息发送控制服务器;
5)控制服务器健康服务分析B01健康数据发现异常排除。
综上所述,本发明所构建的基于消息的自动运维平台,可以实现集群内资源的统一管理和自动化运维,解决人工维护难度高,系统故障处理延时等传统运维模式存在的问题;同时,基于消息的通信方式使管理平台不依赖于操作系统类型,可独立应用于不同的产品或项目中。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种集群环境下的自动化运维方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。