黄浩
(四川中电启明星信息技术有限公司 四川成都 610225)
近年来,企业在虚拟化云计算产品上实际应用逐渐增多,并且同时也存在物理服务器资源和容器资源,这也就造成了资源的混合模式。从企业战略发展看,为了解决资源在混合模式下的管理、监控告警、端不统一的问题,势必建立一个完善的统一端的运维系统。并且,在未来企业为了适应在互联网应用的高效运维与运营,此系统还需要提供足够的自动化运维场景,以实现一个完备的自动化多端运维系统[1-2]。
企业随着业务及云应用的不断发展,传统Linux单机操作系统上的运维操作如果直接移植到集群与云环境上,则会导致不限于以下列出的诸多问题:(1)大量周期性的运维操作需要在大量节点操作系统上重复性地执行;(2)混合模式下还有网络等细节问题需要格外注意,稍有不慎就可能造成服务宕机。
从公司战略发展看,为适应公司未来在面向互联网应用方面的快速部署与升级、高效运维与运营,势必建立一个统一的自动化运维平台,对公司绝大多数资源进行统筹管理,不仅能够进行周期性、重复性的运维操作,还能进行自动化的运维,从而最大限度地提高运维效率。
(1)直接效益:公司未来每年的互联网业务运营运维成本将减少。(2)间接效益:自动化运维系统的构建将大大提升公司的运维管理效率,同时能够助力公司企业品牌的提升与影响。
平台主要分为多个功能中心。即资源配置中心、资源纳管中心、监控告警中心、作业中心、场景中心、安全中心。
资源配置中心用于构建各类资源的基础模型,为纳管等功能提供了高度灵活的基础信息。资源配置中心包括模型管理、资源管理等功能模块。
2.1.1 模型管理
模型管理作为整个运维系统中的地基,用于创建不同类型资源的基础模型,模型包含诸多可自定义的属性值,可自行增添新的属性或移除不再使用的属性,每个属性也诸多业务信息,包含但不限于属性名称、属性编号(属性唯一性的标识)、属性类型(如字符串、整型、布尔等)、关联模型、是否可编辑、是否自动采集。
模型管理还提供了分组功能,以数据结构树的形式展示,用于建立多个模型之间的关联关系。多个模型可以同属于一个模型分组,它们可能包含一些共同的属性,该场景下可以将这些属性配置在分组模型中,这样该分组下的所有模型都可以继承这些属性,就像Java编程语言中的类的继承一样[3]。
模型管理提供了创建分组、创建模型、创建属性、属性关联模型等功能。登录自动化运维平台,再启动页中选择资源配置中心,再在菜单中选择“模型→模型管理”,进入模型管理界面,具体如图1所示。
图1 模型管理界面
(1)创建分组。点击“新建分组”按钮进入创建界面。填写分组名称与描述,即可完成模型分组的创建。
(2)创建模型。点击“新建模型”按钮进入创建界面。根据界面选择该模型的所属分组,并填入模型名称及其类型,完成模型的创建。
(3)创建属性。点击“新建属性”按钮进入创建界面。根据界面选择该属性的所属模型,并填入属性名称、属性编码、属性类型等,完成属性的创建。
(4)模型编辑。在“操作”栏中可以对指定属性进行编辑操作。根据界面,直接对想要修改的自动进行编辑后,保存即可。
(5)属性关联。在对应的属性上点击“关联模型”按钮,进入关联界面。根据界面选择该属性要关联的模型,完成属性关联模型操作。
完成关联操作后,回到模型管理界面,可以看到该属性的管理模型字段变成了刚刚选择的模型,点击模型名称,可以看到该关联模型下的所有属性。
2.1.2 资源管理
资源是模型的实例化对象。资源之于模型,就像Java编程语言中对象之于类。资源对应着具体的实体或虚拟设备,例如物理机A与虚拟机B都是一个资源,它们同属于主机模型。
资源管理提供了创建资源、导入资源等核心功能。点击“资源→资源管理”,进入资源管理界面,具体如图2所示。
图2 资源管理界面
(1)创建资源。在资源管理界面左侧的模型树中,选中模型,再点击“新建资源”按钮进入创建界面。在创建界面中显示的输入选项是由选择的模型决定的,即不同模型的创建资源界面所需要填入的信息是不同的。在填入所需信息后,点击创建,即可完成资源的创建。
(2)导入资源。在资源管理界面左侧的模型树中,选中模型,再点击“导入资源”按钮进入导入界面。在导入界面中,可以下载Excel 文件模板。在导入界面中,选择要上传的Excel文件,即可完成资源的导入。
(3)查看详情。在资源管理界面表格中,点击第一列的“>”符号,该资源的详细信息将展示在该行数据之下,可达到快速查看资源详情的目的。
在资源配置中心中添加的资源,还仅仅是一座信息孤岛,无法通过运维平台管理并运维这些资源,例如监控资源指标、自动化巡检等。在资源纳管中心中,对资源配置中心中的资源安装Agent 代理软件,通过Agent软件对资源进行管理。平台会自维护Agent软件并配置Agent软件的下载地址,在对资源进行安装操作中,会在该资源操作系统中下载并安装指定版本的Agent软件。资源纳管中心包括Agent状态查询、Agent安装、历史查询等功能模块。
2.2.1 Agent管理
提供Agent状态查看、Agent安装等核心功能。
(1)Agent状态。点击Agent管理→Agent状态进入查看界面。界面中展示了资源设备中的Agent状态,包括:在线、失联、未安装等。
(2)Agent安装。点击Agent管理→Agent安装进入Agent 安装管理界面,其提供了创建、安装、卸载等功能。
①创建。点击“新增”按钮,进入创建界面。该功能用于维护资源的远程连接信息,其中远程连接信息用于安装Agent软件。②安装。点击“安装”按钮,等待系统提示安装成功即可,此时界面上该资源状态变更为已安装。③卸载。点击“卸载”按钮,等待系统提示卸载成功即可,此时界面上该资源状态变更为未安装[4-5]。
2.2.2 执行历史
点击执行历史→历史查询进入Agent 执行历史查询界面,该界面展示了各个资源设备的执行记录及结果状态。
监控告警中心用于对已纳管且已注册到监控告警中心的资源进行指标定制监控,并提供基于自定义告警规则进行告警通知的功能。监控告警中心包括监控中心等功能模块。
监控中心主要提供监控注册与监控指标查询功能,其中指标查询又细分为多个组件,包括但不限于主机、MySQL、Redis、RabbitMQ组件。
监控中心依赖于Prometheus、Consul 等开源组件,以实现指标采集及监控目标的自动发现功能。监控中心提供监控注册功能,用于将资源纳入监控中心实现细节上,平台将该资源注册到Consul中,同时提供对应exporter 的自动化安装。通过Prometheus 集成Consul的服务自动发现后,Prometheus 能自动监听到Consul中新增的服务,并自动从其中抓取对应的指标信息。平台还提供了监控指标查询功能,在Prometheus 抓取到指标信息后,可通过该功能查询资源的各项监控指标数据。Prometheus监控组件架构图如图3所示。
图3 Prometheus技术架构图
(1)监控注册。点击监控中心→监控注册进入注册管理界面,再点击“新建”按钮,进入注册界面。在监控注册界面中,填入IP地址、指标类型等必要字段后,点击保存即可完成资源监控的注册。
(2)监控指标查询。点击监控中心→主机监控或组件监控,进入查询界面,其中主机监控也查看物理机及虚拟机的监控指标,组件监控可查看MySQL、Redis、RabbitMQ等中间件组件的监控指标,如图4所示。
图4 监控指标查询界面
作业中心主要是用于执行自定义的脚本,以完成特定场景下的功能,其工作原理是:以Agent 软件为基础,通过接收运维平台为其下发的可信任脚本,接收后执行该脚本。
作业中心包括快速执行、业务管理、平台管理等功能模块。
2.4.1 快速执行
提供脚本执行、文件分发等核心功能。
(1)脚本执行。点击快速执行→脚本执行进入脚本执行界面。根据界面填入脚本名称、内容、参数、目标服务器后,点击执行即可在目标服务器上执行该脚本内容。
(2)文件分发。点击快速执行→文件分发进入分发文件执行界面。该功能与脚本执行功能类似,只不过脚本执行里填入的是脚本的内容,而此处是上传的脚本文件。在填入必要内容后,点击执行即可在目标服务器上执行该脚本内容。
2.4.2 业务管理
业务管理包括作业、脚本、定时任务、执行历史等功能。(1)作业。(2)脚本。该模块主要是用于维护常用的固定的脚本,便于其他功能引用这些脚本。该模块包含创建、上线等功能。①创建:点击“新增”按钮,并填入相应的脚本内容后保存即可。②上线:在脚本界面,点击对应的脚本名称即可进入脚本详情界面,该界面展示了该脚本的多个版本及其上线状态。在指定版本行的操作栏中点击上线即可将指定版本的脚本内容上线,上线后引用处就能使用最新的脚本内容。(3)定时任务。该模块提供周期性定时执行特定脚本的功能。创建:点击“新增”按钮,进入定时任务创建界面。填入执行策略与作业模板后保存即可。(4)执行历史。执行历史界面能查看所有脚本、作业、定时任务的执行过程与结果。点击指定的任务名称,即可进入任务详情界面,在此界面中可以查看该任务下所有脚本步骤的执行过程[6]。
2.4.3 平台管理
平台管理主要用于提供平台级功能,如脚本仓库。脚本仓库即公共脚本的存放位置,供其他地方引用,如脚本执行与定时任务可以引用脚本仓库中的脚本。
场景中心基于特定的应用场景,制订成熟的完善的解决方案,并实现一键式的操作方式,极大地方便了运维人员,降低了人工运维工作量。场景中心包括自动化巡检功能。
自动化巡检主要包括WebLogic 集群的部署与巡检任务的执行两个模块。
(1)集群部署。集群部署主要包括创建集群与部署集群两个模块。①创建集群:即创建一个集群定义,以便后续对其实例化部署。在集群部署界面点击“新增”按钮,填入对应的信息后即可完成集群定义的创建。②部署集群:在指定的业务的操作列中点击“部署”按钮,进入部署界面。在部署界面中,应首先进行环境检查,待环境检查通过后,再点击“开始部署”按钮执行集群部署即可[7]。
(2)巡检。巡检即是对已有的软硬件服务进行自动化自定义内容检测,例如:对WebLogic 服务进行部署环境、服务状态等指标进行检查。
巡检功能基于Agent 软件,以及定制化的采集脚本实现。在巡检操作前需要维护巡检目标服务及其采集脚本。采集脚本通过Agent软件下发到目标设备上,由Agent软件执行采集脚本后并且将结果返回给平台,平台即获取到检查结果。巡检只需要将上述操作进行定时调度到多个设备上即可[8]。
在巡检管理界面上,点击对应的业务名称进入风险分析查看界面,具体如图5 所示。在风险分析查看界面中能查看该业务下的设备的风险项,也可以点击对应的设备查看具体的指标值,具体如图6所示。
图5 风险分析查看界面
图6 设备风险详情界面
安全中心提供对资源的安全性检查功能,例如服务器的高风险端口检查。安全中心包括专项检查、平台管理等功能模块。
2.6.1 专项检查
专项检查用于特定场景下的安全性检查。专项检查包括端口检查等功能。端口检查包括创建、执行检查等功能。
(1)创建:点击“新增”按钮,填入目标服务器及其他必要信息后,点击保存即可。
(2)执行检查:在指定行的操作列中点击“执行检查”按钮,进入执行界面点击执行后,等待执行完成即可。
2.6.2 平台管理
平台管理主要提供平台级业务功能,包括端口规范等功能。端口规范是在端口规范界面中,展示了平台级端口规范信息,包括禁用端口、风险端口等。端口规范模块提供了创建等功能。