APP下载

云计算环境的自动化运维系统研究

2020-12-01孙莉娜

电子技术与软件工程 2020年23期
关键词:计算环境集群运维

孙莉娜

(辽宁机电职业技术学院 辽宁省丹东市 118009)

传统的运维方式工作强度高、效率低,无法满足实际应用需要。所以开发一款的自动化运维系统显得尤为必要。在对系统进行设计开发的过程中,可以对先进的云计算技术进行合理运用,以此为依托,使开发出来的系统功能更加强大,从而满足用户的使用需求,提高整体的运维水平。

1 自动化运维系统关键技术与需求分析

自动化运维系统(Automatic Operation and Maintenance system,以下简称AOMS)归属于管理平台的范畴。与传统的运维模式相比,自动化运维最为突出的特点是能够将原本需要手动完成的重复操作,变为系统自动完成,由此能够使运维人员的劳动强度大幅度降低,运维效率随之显著提升。

1.1 系统关键技术

1.1.1 云计算技术

云计算环境是整个自动化运维系统AOMS 的基础,在本次系统设计中,运用的是云计算中的Open Stack 及其相关组件,如Nova、compute 等等[1]。云计算技术的加入使AOMS 变得更加高效。

1.1.2 Web 技术

在本次系统开发中,交互页面引入Web 技术。为实现AOMS性能和告警监控的可视化,引入Web 中最为流行的框架体系SSH。

1.2 功能需求分析

在对AOMS 进行设计前,应当了解具体的需求,由此可使设计出来的系统功能更加贴合实际,以便用户更好地使用。在云计算环境下,AOMS 应当具备以下功能:

1.2.1 实时监控

AOMS 应当能够对整个集群内所有节点的资源使用情况进行观察,具体包括以下监控项:CPU 与内存的使用率、系统与日志磁盘的使用率、网卡的出入流量、虚拟与计算服务异常数以及网络故障数等等[2]。用户可在运维显示屏上,对集群的健康状况进行查看,也可对各个主机进行分别查看。

1.2.2 告警功能

AOMS 应当具备告警功能,在该功能下,用于可以对监控过程中的告警项目进行自定义。该功能可由以下部分予以实现:告警主机、阈值、告警项以及级别等。在上述部分中,告警主机是核心,阈值为判断机制,按实际需要设定好后,当超出阈值,告警主机便会发出告警提示;告警项为所有的监控项;告警级别为次要、重要、缺数据以及正常[3]。

1.2.3 自动巡检

AOMS 的自动巡检机制有两种,分别为服务状态巡检和一致巡检。前者包括主机和所有控制节点在内,具体是对各个子系统、模块中的故障信息进行收集;后者则是对虚拟机资源中残留信息和不可用资源的故障信息进行检测,并完成自动恢复机制的设置。

2 基于云计算环境的自动化运维系统设计

2.1 系统设计思路

AOMS 以云计算平台作为依托,采用当前较为流行的B/S 架构体系,整个系统由两部分组成,一部分为Web 端,另一部分为服务器端。其中服务器端负责为系统提供云计算环境,包含诸多节点,如计算、网络、控制、存储等等,数据库是其核心组成部分,具备监控功能的插件Zabbix 也被安装在服务器端,相关的模块则分别安装在不同的节点中,比如控制节点中安装的是Zabbix-Server,在计算节点中安装的是Zabbix-Agent。

Web 页面除了能够对监控信息进行实时展示外,还能展示巡检结果,并对告警规则进行下发。B/S 架构的运用,使用户能够直接通过浏览器进行对系统进行访问,无需安装客户端,避免了对系统内存的占用和运行速度的影响。借助浏览器,用户可对系统中的具体功能进行选择,如监控性能、大屏运维、巡检、告警等等。整个系统分为三个层次,分别为表现层(Web 页面)、服务层(服务器端)、数据层(数据库)[4]。

2.2 系统主要功能设计

在对AOMS 进行开发的过程中,功能设计是重中之重,具体开发时,可对云计算环境加以充分利用。由于该系统是为自动化运维服务,所以在设计功能模块时,将性能监控、告警以及巡检作为重点。下面对上述功能模块的设计过程进行分析。

2.2.1 性能监控模块

可将该模块分为集群健康状况、主机历史监控信息两部分,在对该模块的功能进行进行的过程中,采用子项目结合设计的方法,具体的设计要点如下:

(1)对集群的性能进行监控包括以下内容:CPU、内存、虚拟机、告警、网络、日志以及各数据库等。上述信息可在运维大屏上进行集中展示,运维人员则可通过大屏了解集群的健康情况。在监控内容中,容易突变的指标有三个,分别为告警、内存和CPU,可将这三个指标的刷新频率设置的高于其它指标。可依据指标的特性,对具体的展示方式进行确定,如内存与CPU 的展示方式为饼图,这样能够对当前使用和剩余的资源直观了解;告警数量、异常数量等,可采用数显的方式进行展示;服务状态可以图标显示,并通过颜色判断是否正常,绿色为正常,红色为异常[5]。

(2)查看监控周期内的历史信息是对集群内主机性能进行监控的方法,可查看的历史信息为之前6 个月。之所以将这个时间设定为6 个月,主要是考虑到数据存储问题。由于监控周期设置为5min,在多监控项下,24h 采集到的将监控数据量较大,6 个月的数据量恰好是数据库可以承受的范围。具体的监控项目如下:CPU与内存的利用率、磁盘的使用率、网卡的出/入流量等等。为对历史数据进行直观展示,在设计的过程中引入折线图。该功能会按照控制节点的IP 地址,对主机信息进行查询,对主机名和管理网IP进行获取,对Zabbix 接口进行调用,对主机CPU 的利用率进行查询,通过对页面信息进行刷新的方法,为服务器减负。

2.2.2 监控告警模块

对于AOMS 而言,监控告警是较为重要的一项功能,在对该模块进行设计时,可将以下功能作为重点:告警项、告警历史等。

(1)用户可以通过告警规则对告警项进行自定义,即可单独设置,也可批量设置,这里的单独和批量都是针对主机而言,监控主机主要是指整个集群内的主机,具体的监控项目包括CPU 与内存的使用率、系统与日志磁盘的使用率、网卡的出入流量、虚拟与计算服务异常数以及网络故障数等等。可分级别对告警项进行设置,以便运维人员能够针对优先级处理告警信息。共计设定四各告警级别,分别用W(WARNING)、C(CRITICAL)、I(INSUFFICINET)、O(OKAY)表示,其中W 表示次要告警,C 表示重要告警,I 表示缺数据,O 表示正常无告警[6]。在对告警项进行创建的过程中,除了应当对集群内的主机进行选择之外,该应对监控项、阈值等进行选择,可一次性创建多条,从而达到批量的效果。当用户有其他使用要求时,可对创建好的告警项进行修改,不可以对所有的项目进行同时修改,只能对某个告警项进行修改。修改与创建过程类似,但无法实现批量。

(2)当告警项触发时,会产生出告警信息,随着时间的推移,这些信息会变为历史信息。为避免受到网络不稳定等因素的影响,引入多周期触发的机制,即连续3 个周期全部触发阈值,说明出现问题,此时会产生告警信息,未达到触发机制,则会不会产生告警信息。在度告警周期的时间进行设定时,不宜过长,以1min 为宜,每间隔1min,系统会调用Zabbix 插件,对监控项信息进行获取,并与告警项设定好的阈值进行比对,若是超出则会产生告警信息。查看告警历史信息时,需要对筛选条件进行设定,包括开始和结束时间等。

2.2.3 巡检模块

自动巡检包括状态和一致巡检两部分,其中前者主要是对整个集群的基础服务状态进行检测,以调用接口的方式对最新的数据进行获取,从而保证获得数据的实时性;后者则是对虚拟机状态的对比检测。其中状态巡检可由接口调用予以实现,在此不进行分析。一致巡检主要是指巡查OS(Open Stack)资源,检测的模块包括虚拟机、网络、磁盘以及镜像等等,虚拟机检测是该模块设计的重点。具体的设计方法与要点如下:

(1)在对虚拟机巡检进行设计的过程中,可以利用Ansible 架构中的syscan 模块来完成,所有的工作任务全都运行属于自己的进程,当任务执行完毕后,获得的结果会被直接写入到RbabitMQ 中,而主进程则负责对API 接口信息进行实时接收,并完成POST 和GET 等操作。通过对RbabitMQ 进行监听来获取进程消息,并将相关数据汇总后写入到文件中,之后监听会自动关闭[7]。

(2)一致巡检所得的结果会被保存到系统文件当中,服务器通过对API 接口的调用,可对包含巡检结果在内的文件进行获取,并对该结果进行分析,展示在Web 页面上。在对自动化进行实现时,可通过对比虚拟机的情况,以重启虚拟机的方法,对底层的数据进行重建,当确认为残留的资源时,可将之与对应的虚拟机删除。当出现主机位置不一致的情况时,需要对compute 服务进行重启,与之相应的重启和删除全部可以通过API 接口来实现,这样便可解决自动的问题。

2.3 数据库设计

2.3.1 数据库瓶颈

在AOMS 设计中,从时间上对数据进行考虑,以此来解决数据库的瓶颈问题。由于总体性能监控为实时数据,所以无需存储。而主机性能则需要对长期数据进行观察,但但因为周期较短,且监控数据量非常大,因此,在设计时引入保留机制,数据的保留时间设定为6 个月。监控告警规则为用户自定义,数据产生的比较少,正常情况下不会出现告警,即便长期运行也不会产生出过多的数据[8]。为避免告警信息大量产生的情况出现,在设计时,加入手动删除数据的功能,运维人员可以采用手动的方式,删除告警历史信息。从本质的角度上讲,自动巡检就是定期对相关的问题进行巡查,而很多问题在正常情况下基本不会发生。故此只需要将文件保存到服务器即可,无需存储到数据库中,这样便可使数据库的瓶颈问题得到有效解决。

2.3.2 数据库功能

在对AOMS 的 数据库功能进行设计时,应当充分考虑监控和告警。其中性能监控不需要将数据存储到数据库中,所以告警数据的存储成为数据库功能设计的重点。在监控告警信息中,告警项可由用户以自定义的方式进行删减和增加,所以对它的存储应包括以下内容:主机名与IP 地址、监控项和阈值等。可以按照集群对监控项进行区分,当告警信息产生后,可直接存储到相应的历史表当中[9]。

2.4 系统测试

当AOMS 设计开发结束后,应当对其进行功能测试,看各个模块是否可以正常操作,检验系统是否能够满足用户的使用需要。在对系统进行功能测试的过程中,因AOMS是以云计算平台为依托,故此只需要在PC 机上对系统功能进行测试即可。测试用例如下:运维中心显示、监控首页显示、告警项批量创建、告警项批量删除、手动巡检等。测试结果表明,上述测试全部合格,由此说明本次设计开发的系统具有良好的可用性。

3 结论

综上所述,基于云计算环境的自动化运维系统设计开发是一项较为复杂的工作,由于其中涵盖的内容较多,一旦某个环节出现问题,都可能对系统的功能和性能造成影响。所以要求设计人员掌握设计方法,保证系统的设计质量,为系统功能的发挥提供保障,这对于促进运维效率的提升具有重要意义。

猜你喜欢

计算环境集群运维
海上小型无人机集群的反制装备需求与应对之策研究
运维技术研发决策中ITSS运维成熟度模型应用初探
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
大数据云计算环境下的数据安全
基于ITIL的运维管理创新实践浅析
云计算环境中任务调度策略
基于云计算环境下的分布存储关键技术探讨