基于自动化运维工具的应用组装、监控系统及方法与流程

文档序号:40183618发布日期:2024-12-03 11:31阅读:22来源:国知局
基于自动化运维工具的应用组装、监控系统及方法与流程

本发明涉及应用组件一体化组装部署及监控主机应用状态,具体地说是一种基于自动化运维工具的应用组装、监控系统及方法。


背景技术:

1、在当前的互联网环境中,随着自动化运维在it领域的广泛使用,各种类型的应用场景对自动化运维的需求越来越大。自动化运维可以对不同类型的服务器、云实例环境、应用程序和网络设备进行动态管理变更,如配置项的传输、更新和调试等,而手动执行人工操作往往耗费时间、容易出现偏差,并且难以持续跟踪和动态管理。现有的自动化运维工具在一定程度上解决了这些问题,但仍存在一些挑战。

2、常见的自动化运维工具如ansible、puppet、saltstack等,这些工具都在一定程度满足了自动化运维的功能,但仍存在不足之处。puppet是一个开源的软件自动化配置和部署工具,使用简单且功能强大,很多企业使用puppet工具对集群中的软件进行管理和部署。puppet的优点在于有web界面生成处理报表、资源清单、实时节点管理,缺点是工具使用较为复杂,需学习多种语言如puppet的dsl或ruby,学习周期长,在安装过程缺少错误校验和生成错误报表功能,导致效率缓慢。saltstack相比而言,优点是saltstack依赖于zeromq消息队列,采用yaml格式编写配置文件,简单易上手,web界面可以看到运行和监控的工作状态、事件日志,扩展能力极强,缺点是缺少生成深度报告的能力。综合来看,这些开源组件功能各有优缺点。

3、目前很多企业在研发适合自己企业的运维自动化系统,用于满足企业的日常运维和服务管理需求,例如:云效平台、蓝鲸智云平台、云软件开发平台等,这些产品主要以提升企业客户运维活动效率、实现智能化管控为目的。产品主要应用于企业客户市场,其表现在个性化场景突出、业务活动变化多,是基于企业市场的定制化产品。这样产品往往没有一个标准产品来适配大多数场景,通用性差,适配的周期长,难以适配业务的快速变化。


技术实现思路

1、本发明的技术任务是提供一种基于自动化运维工具的应用组装、监控系统及方法,来解决传统人工操作耗费时间长、容易偏差,并且难以持续跟踪和动态管理的问题。

2、本发明的技术任务是按以下方式实现的,一种基于自动化运维工具的应用组装、监控系统,该系统包括主机控制模块、作业中心管理模块及故障自愈模块;

3、主机控制模块应用于主机的注册、监控和管理,用于实现平台介质与被管控主机之间建立通信认证的功能,即在平台介质内注册主机、统一管理主机账号密码以及监控主机的基本性能监控;

4、作业中心管理模块应用于组件脚本编译、任务脚本编排及脚本任务执行,用于执行脚本编译菜单的roles角色及playbook剧本,脚本编译菜单的roles角色及playbook剧本基于ansible开源组件的编程语言,通过编写yaml部署脚本,实现应用组件一键部署或批量指定某些主机执行脚本任务;

5、故障自愈模块应用于组件应用故障的快速恢复,用于查看应用组件的可视化监控视图,并根据需求配置故障状态;其中,当应用组件出现配置状态的故障时,故障自愈模块会触发监控自愈功能,执行自愈的脚本,实现组件应用的快速恢复。

6、作为优选,所述主机控制模块包括主机认证插件及数据采集插件;

7、主机认证插件用于在主机管控模块维护主机清单列表信息,通过ssh协议与目标主机建立认证通信;其中,ssh协议是一种加密的网络协议,用于在网络上安全地传输数据;

8、数据采集插件用于在通信认证完成后,通过基于ansible开源组件的connectionplugins插件与被管控主机的数据传输;

9、主机认证插件及数据采集插件工作过程具体为:用户在主机管控模块进行统一管理主机的账号密码,注册资产主机时维护被管控主机的ip地址、主机类型、通信协议及关联账号密码的相关主机信息;主机认证插件与资产主机建立认证通信,数据校验无误后通过ansible的connection plugins插件建立正常通信管道的连接,并用于数据采集插件在目标主机系统监控数据信息的传输与通信,数据传输到平台里;其中,采集到的系统数据包括主机名、ip地址、硬件信息、主机运行的cpu、内存、磁盘使用及运行状态的监控信息。

10、更优地,所述主机管控模块包括用户角色管理菜单插件及日志审计插件;

11、其中,用户角色管理菜单插件支持对主机进行分组管理,基于rbca的用户角色权限管理通过对菜单目录赋权,实现不同分组的管控资产主机权限,达到业务主机权限分级分配,用户登录认证支持mfa安全认证;

12、日志审计插件支持记录平台执行的日志记录,包括查看资产主机的ftp日志及登录日志,记录作业中心的脚本执行记录和监控自愈的监控及自愈处理记录。

13、作为优选,所述作业中心模块具体如下:

14、用户在脚本编译菜单中编写应用组件的组装脚本,根据脚本内容的复杂程度,选择组件脚本编译里的脚本类型进行编译;其中,脚本类型包括角色管理和剧本管理;编译的脚本是基于ansible开源组件中playbooks剧本和roles角色的相关语法,脚本支持使用python、php、javascript的语言,支持使用标准的yaml格式的配置文件和python编写的相关语法模块实现自动化;具体为:在角色管理中先定义角色名称,角色名称根据应用组件名称、集群模式及版本号进行定义,应用组件版本的版本迭代根据角色名称定义的版本号进行管理,灵活升级变更组件的版本;角色管理兼容ansible的roles角色各目录功能,根据组装脚本编译需要进行目录功能之间的调用,脚本逻辑更加严谨;其中,目录功能包括files、handlers、tasks、templates及vars;

15、应用组件的组装脚本编写完成后,生成任务脚本的编排及执行,具体为:选择在任务脚本编排里,通过对已编译好的roles角色或playbooks剧本的脚本进行任务编排;任务简单的编排完成后,对任务的执行操作;

16、其中,作业中心模块的任务脚本编排菜单,通过对已编译的多个脚本进一步组装编排,支持脚本复用,将多个脚本进行逻辑性的串成一个新的任务进行维护;任务的执行时间采用分布式任务调度,支持实时任务,定时任务和cron任务,作业中心模块基于平台介质开发的celery任务编排及定时任务管理功能;故障自愈模块提到的自愈模块的剧本任务引用,体现了任务执行有较好的延展性和集成性。

17、更优地,选择在任务脚本编排里,通过对已编译好的roles角色或playbooks剧本的脚本进行任务编排具体如下:

18、用户指定在主机管控模块里需要进行组装应用的资产主机,并在作业中心模块的主机变量或动态分组菜单里对这些资产主机进行分组;

19、在作业中心模块的任务编排菜单里,引用编译好的应用组装脚本进行任务编排,根据实际要部署的资产主机情况,维护脚本里面相关的环境变量,关联执行的主机或主机分组。

20、更优地,任务简单的编排完成后,对任务的执行操作具体如下:

21、在任务执行过程中,任务的执行过程支持基于ansible开源组件的core modulesparamiko pyyaml、custom自定义模块和plugins的三类定义模块及插件对任务数据的传输及执行,任务中涉及到部署的资产主机需要调用主机管控模块的主机清单接口,完成主机通信探活;

22、通过基于ansible的connection plugins插件对目标主机执行具体的脚本任务,任务执行结果可通过任务执行详情里查看到执行过程及反馈的部署状态。

23、作为优选,所述故障自愈模块的原理是监控组件通过数据采集插件采集到资产主机的组件数据,一旦组件数据出现异常,故障自愈模块的自愈触发器会发出告警,并根据自愈配置自愈场景调用作业中心的自愈脚本自动执行任务,调用主机管控模块的资产主机清单接口完成主机通信探活,再通过基于ansible开源组件的connection plugins插件对目标主机执行自愈脚本任务,组件恢复正常,实现组件故障后快速自愈的效果。

24、更优地,所述故障自愈模块包括监控状态模块、自愈配置模块和自愈触发模块;

25、其中,在作业中心模块完成应用组件的组装后,监控状态模块的数据采集插件在主机里启动并采集组件数据,通过ansible开源组件connection plugins插件将数据传输到故障自愈模块的监控视图里,用户在监控状态菜单下查看对应组件的仪表盘数据,除了采集器采集的内置数据指标,自定义脚本采集组件的相关指标;

26、自愈配置模块是根据在监控状态指标数据异常的场景下,配置自愈触发器,编写故障场景对应的自愈脚本,自愈脚本是引用作业中心模块的剧本进行管理;

27、自愈触发模块是通过配置自愈触发器将自愈配置模块的故障场景和自愈脚本进行逻辑上的结合。

28、作为优选,所述故障自愈模块工作过程具体如下:

29、①资产主机上的组件出现异常时,故障自愈模块会触发自愈配置模块中定义的自愈触发器;

30、②自愈触发器接到指令后,调用在自愈配置模块的自愈脚本任务接口;

31、③通过作业中心模块的执行自愈脚本作业,并在主机管控模块的主机清单接口下完成主机通信探活;

32、④通过基于ansible开源组件的connection plugins插件对目标主机执行具体的脚本任务;

33、⑤任务执行后,ansible开源组件从故障状态恢复到健康状态,监控状态的指标恢复正常,自愈触发器关闭,故障自愈效果实现。

34、一种基于自动化运维工具的应用组装、监控方法,该方法具体如下:

35、s1、在平台介质的主机管控模块的资产管理菜单中注册资产主机,维护主机账号密码、ip地址、主机类型及通信协议信息;并通过主机管控模块的认证通信插件对注册的主机进行认证,认证通过后数据采集插件采集与主机相关的主机资产信息;其中,主机资产信息包括主机名、ip地址、硬件信息、主机运行的cpu、内存、磁盘使用及运行状态的系统监控信息;

36、s2、在平台介质的作业中心模块的脚本编译菜单,选择在playbooks剧本或roles角色类型,如创建roles角色名称(应用名称),编译组装应用组件的相关脚本,将应用组件所需的安装包及依赖包上传到指定文件服务路径上;

37、s3、在平台介质的作业中心模块的动态分组菜单,创建动态分组名称,对在主机管控模块中已注册资产主机按照所归属的应用角色进行分类管理,参与后面任务执行时,通过动态分组选中多个主机执行相关任务,按照分组管理主机集群,方便后续对应用集群主机的管理;

38、s4、在平台介质的作业中心模块的任务脚本编排菜单,创建任务名称,对脚本编译菜单下的脚本进行系统的编排,形成一套完整的任务流程,接入变量时根据主机环境实际情况进行填写环境变量,并关联动态定义的分组名称,最后执行任务;

39、s5、在故障自愈模块中,查看作业中心模块任务执行组装的应用组件监控状态,根据应用组件数据可能出现的异常状态,在自愈配置模块的菜单下配置自愈触发器,并编写解决异常状态的自愈脚本;当应用组件状态出现异常时,自愈触发器会调自愈模块的自愈功能借口,通过自愈下发任务到故障主机下,快速执行自愈脚本,实现应用组件快速恢复。

40、本发明的基于自动化运维工具的应用组装、监控系统及方法具有以下优点:

41、(一)本发明不仅能够解决传统自动化运维的通用类技术问题,还能够满足现代复杂系统对性能、通用性、可定制性和功能自愈的需求,同时解决了传统人工操作耗费时间长、容易偏差,并且难以持续跟踪和动态管理,本发明主要是从通用性、高效率性、简单化和稳定性几个方面进行介绍,具体如下:

42、①通用性:随着业务的急剧增长,业务应用对一些基础应用组件的自动化运维需求越来越高,主要体现在操作系统版本架构兼容、组件版本选择、组件集群模式如单点或集群等,可以通过在组件编译插件里编译roles角色或者playbooks剧本实现,其作用是编译应用组件的组装脚本,用于部署应用组件、管理应用程序变更和执行自愈脚本;在roles角色创建角色名称,角色名称根据操作系统版本架构兼容、组件版本选择、组件集群模式如单点或集群这些条件进行定义,组装部署升级时选中编译好的roles角色名称创建任务执行即可,支持应用组件版本的升级回退;

43、②高效率性:随着业务范围的进一步扩大,批量快速组装应用组件的需求成为一个基本要求;平台的高效之处在于:作业平台的脚本编译模块是基于ansible开源组件的roles角色和playbook剧本,管理复杂的配置项,并使配置管理更加模块化和可复用性;通过平台任务执行组件的批量处理功能,平台可以多进程批量执行任务在远程主机上并发执行多项任务,显著提高的效率;通过平台作业中心模块的缓存机制,在执行作业任务有效减少重复运行脚本的时间,提高执行效率;

44、③简单化:作业平台的脚本编译模块所使用的语言模块,支持python、php、javascript等多种语言,支持标准的yaml格式,语法简洁易懂,容易编译和维护配置文件;平台与被管控主机的管理架构是采用无代理的架构,即无需在被管理的主机上安装任何代理工具,在平台的主机管控插件内维护好主机ip地址、账号密码信息,通过认证插件对被管控主机进行认证通信,即可实现对所有被管理主机的远程管理及执行相关任务作业;无代理的优势在于,减少了额外的部署和维护工作,提高了系统的安全性和可靠性;

45、④稳定性:平台与主机通信是基于ssh协议提供可靠的远程连接,确保在进行管理和部署任务时的稳定性和可用性;即使在不稳定的网络环境下,ssh协议也可以保持连接的可靠性,尽可能减少因网络问题而导致的任务失败;除网络环境外,还可以通过作业中心的自愈脚本任务与故障自愈模块结合,触发故障自愈场景,从而维护应用组件的稳定性及可持续性;

46、(二)本发明不仅能够快速地批量部署应用组件,而且还能够有效地配置可自愈剧本解决组件异常实现自愈功能,为业务应用组件的稳定性提供强有力的支持;

47、(三)本发明提高了应用组件组装部署的高效性及复用性,在多个项目需要重复部署相同的应用组件,可支持根据业务不同的需求快速组装部署不同集群模式的应用组件,无须手动拉包修改配置文件,节省时间和成本;同时,平台的故障自愈功能也提升了应用组件的稳定性和降低故障处理的人力投入,在一定程度实现故障自愈从人工处理到无人值守的转变,提供实时监控资产主机状态及应用组件的状态,可分析主机节点基础监控及应用组件的运行状态,实现故障自愈,具有良好的推广价值;

48、(四)本发明支持多种语言,语言编写配置方便,语法简单;作业中心的role模块及playbook模块是基于ansible编程语言,语言支持python、php、javascript等多种语言,支持json等标准输出格式,yaml语法简洁易读,易于理解和编写,配置文件更加易于维护,而不必花费大量的时间去学习复杂的编程语言,有利于易于版本控制和团队协作的优势;

49、(五)本发明的平台架构简单,采用无代理的架构,平台无需在被管理的主机上安装任何代理工具,只需要在平台介质内维护好主机账密信息,密码以加密形式展示,即可实现对所有被管理主机的远程管理;

50、(六)本发明的平台自身数据的安全性和保密性功能;在平台的主机管控模块下,需要保存资产主机的密码等这类敏感信息,用户在输入服务器密码时,是由密文形式输入,数据库表里的密码字段是以特殊加密形式在保存的,保障了平台的保密性;同时在属于账号登录平台时,登录形式是由静态密码和动态口令的双因子安全认证,是基于平台的mfa安全认证原理,大大提高了账户的安全性;

51、(七)本发明的平台介质的模块化架构具有很大的扩展性。平台集成了多种类型的功能模块,如平台自身开发的主机管控模块、作业中心模块和故障自愈模块三个主要模块;其中,作业中心模块集成了基于ansible开源组件的playbooks剧本和roles角色的相关插件,用于组件脚本的编译;还有作业中心模块集成了celery任务编排模块,用于作业任务的编排和执行;

52、(八)本发明的平台介质主机管控模块自主研发的通信认证安全通道,该通道是基于ssh协议进行通信,相比其他远程管理工具,如telnet或rsh,ssh具有更高的安全性和可信度;具体表现在,通过ssh协议,对资产主机进行加密的远程通信认证,保证了数据的机密性和完整性;通信认证完成,后续的数据通信是通过基于ansible开源组件的connectionplugins插件建立的数据传输管道连接;通过主机管控模块的主机数据采集器下发到主机端,获取到资产主机端的监控信息数据,数据通过connection plugins插件传输到平台里的主机管控的监控视图里,采集到的主机基础监控数据包括主机名、ip地址、硬件信息、主机运行的cpu、内存、磁盘使用、运行状态等,也可通过编写脚本获取应用组件的监控指标数据;

53、(九)本发明的平台介质支持多种系统架构的主机管控,平台的主机管控模块兼容了多种架构的主机进行管控,支持linux、windows和unix架构的管控,适用于物理机、虚拟机、云环境和容器环境;

54、(十)本发明的平台集成监控应用组件数据采集,对于在平台介质内安装部署的应用组件,内置一部分组件基础监控指标,也可通过编写自定义监控脚本采集目标主机相关的指标监控数据,并展示到可视化视图上;

55、(十一)本发明的平台集成组件故障触发自愈功能,原理就是通过平台故障自愈模块根据预期出现的故障场景,配置相关的触发器,编写恢复应用组件的作业脚本,将作业脚本关联到相关的触发器里;当应用组件出现预期内的故障时,此时触发器会发出响应,并执行关联在触发器的作业脚本,通过作业中心模块的任务执行将自愈脚本分发到目标主机执行任务,使得故障快速恢复,完成功能自愈。

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