云环境下资源数据采集器的设计与实现毕业论文
2021-11-23 21:13:01
论文总字数:31760字
摘 要
云计算技术的迅速发展给传统业界带来了巨大的影响。同时,云计算所需的更大规模的基础设施需要更为合理的管理,更为有效的对云数据进行采集。数据采集器需要有较强的稳定性,较强的实时性,如何设计一个合理高效的采集系统是一个难题。
OpenStack云计算平台目前被广泛使用,鉴于现存采集器的优缺点,本论文进行了系统设计,并将进行了模块划分,设计并实现了一个基于OpenStack平台的数据采集器,并提供可视化界面。论文设计了九个数据采集项,分别针对物理机和虚拟机的CPU,内存,磁盘,网卡数据进行采集,并通过消息队列持久化到数据库中。
整个采集器分模块处理,具有很强的可扩展性,同时由于消息队列的存在,采集器的数据不容易丢失,可以及时的持久化,具有较强的稳定性。
关键词: 云计算;数据采集器;OpenStack
Abstract
The rapid development of cloud computing technology has brought a huge impact on the traditional Internet industry. At the same time, the larger-scale infrastructure required by cloud computing requires more reasonable management and more effective collection of cloud data. The data collector needs to have strong stability and strong real-time performance. How to design a reasonable and efficient acquisition system is a problem.
The OpenStack cloud computing platform is currently widely used. In view of the advantages and disadvantages of the existing collectors, this paper designs the system, divides the modules, designs and implements a data collector based on the OpenStack platform, and provides a visual interface. The paper designed nine data collection items, which were collected for the CPU, memory, disk, and network card data of physical and virtual machines, and persisted to the database through the message queue.
The entire collector is processed in modules, which has strong scalability. At the same time, due to the presence of message queues, the data of the collector is not easy to be lost, it can be persisted in time, and it has strong stability.
Key Words:cloud computing; Data collector; OpenStack
目 录
第1章 绪论 1
1.1 研究的背景 1
1.2 目的和意义 1
1.3 国内外研究现状 2
1.4 课题研究内容 3
1.5 本章小结 3
第2章 系统需求分析 4
2.1 需求分析 4
2.1.1 需求分析的目的 4
2.1.2 需求分析的流程 4
2.2 功能性需求分析 4
2.2.1 用例图设计 4
2.2.2 管理物理机和虚拟机 5
2.2.3 获取实时数据和统计数据 6
2.3 非功能性需求 7
2.3.1 可用性 7
2.3.2 响应时间 7
2.3.3 其他非功能性需求 7
2.4 本章小结 7
第3章 系统设计 8
3.1 系统概要设计 8
3.1.1 系统功能 8
3.1.2 系统层次结构 8
3.2 数据采集器设计 9
3.2.1 物理机数据采集器设计 10
3.2.2 虚拟机数据采集器设计 10
3.2.3 多线程采集 10
3.3 前端设计 11
3.4 后端架构设计 12
3.4.1 消息队列设计 13
3.4.2 Data API模块 15
3.5 数据库设计 16
3.5.1 物理机集合 17
3.5.2 虚拟机集合 17
3.5.3 采集数据集合 17
3.6 功能流程设计 19
3.6.1 增加物理机 19
3.6.2 增加虚拟机 19
3.6.3 获取采集信息 20
3.7 本章小结 21
第4章 系统实现 22
4.1 OpenStack平台部署 22
4.1.1 OpenStack简介 22
4.1.2 OpenStack部署分析 22
4.1.3 OpenStack部署 23
4.2 后端模块实现 24
4.2.1 数据采集模块实现 25
4.2.2 其他模块实现 27
4.3 前端实现 27
4.3.1 前端界面 27
4.3.2 逻辑层 28
4.4 系统测试 29
4.4.1 模块测试 29
4.4.2 接口测试 31
4.5 本章小结 33
第5章 结论 34
5.1 研究总结 34
5.2 研究展望 34
参考文献 36
致谢 37
绪论
研究的背景
云计算是在互联网基础上的一种计算模型和方法,通过这种模型和方法,云厂商将大规模,成体系的服务器集群,通过开发人员的定制处理,组成插卡即用的计算资源,提供给用户选择,以实现盈利。近几年来,云计算发展迅速,已经成为了新一轮的技术发展趋势和热点,给传统的技术方式和行业商业领域带来了巨大的变革。根据智研咨询发布的报告数据显示:2018年我国云计算市场规模达907亿元,仅为全球的六分之一,后发优势强劲,拥有较大发展空间。[1]云计算在经济方面,技术方面,市场方面等发挥着越来越大的作用,已经被国家列入下一步发展的战略规划。
随着5G技术的蓬勃发展,并在我国逐渐商用,给云计算的发展带来了新的机遇。2020年,边缘计算,物联网技术,自动化技术继续发展,云平台将在未来逐步利用边缘计算的能力,这将会给整个云生态系统带来巨大的影响。根据GSMA报告,边缘计算技术以及由此衍生的一系列的产品,科研创新等,将会在未来15年内,带动将近2.2万亿美元的增长。总之,云计算具有光明的发展前景,存在着巨大的研究价值。
目的和意义
由于云计算平台具有工作负载变化幅度大,有多种多样的共享设备,分布式运行等各种各样的特点,给云计算平台的资源管理和数据监测带来了巨大的挑战。而对于云服务的供应商和用户来说,云数据的监控和采集是至关重要的。一方面,这些数据是用户或管理员管理硬件和虚拟主机的一个关键参考,另一方面,这些数据为平台和应用提供了云平台中各个物理主机和虚拟机的运行状况,通过对这些数据的分析,提供给运维服务人员或者决策者云平台的负载信息,云平台的性能以及云平台的服务质量,进而进行下一步的处理。
云采集器在以下任务中扮演着十分重要的作用。
数据中心管理:在云计算中,大规模的数据中心必不可少,市场上的云计算公司都有自己的大规模数据中心。云数据采集器采集数据中心的软件指标(CPU信息,内存信息)和硬件指标(温度等),之后进行分析,以此作为故障检修,备份恢复等操作的参考。[2]
计账:云采集器采集的网络信息,CPU信息是云平台提供服务的基础。对于不同的用户,根据其使用的计算资源进行收费,这就需要采集器能准确的对用户使用的资源信息进行采集,用户也可以根据采集器的信息核对自己在云平台中的使用值。云资源采集器是云平台计账的基础。[3]
故障检修:云采集器资源的实时采集信息可以帮助监控者了解云平台的运行情况。由于云平台本身的复杂性,各个组件之间的关系复杂层次结构多,对于管理员或者运维人员来说定位复杂,这时候就需要精确的云监控软件,根据采集信息迅速推断出问题所在,快速定位,避免给云服务厂商带来进一步的损失。[4]
国内外研究现状
OpenStack作为目前被广泛使用的开源云平台,由于OpenStack功能模块的不断扩展,目前的数据采集器都存在着对OpenStack采集不全面,可视化程度较差等缺点,对于OpenStack中CPU,内存,磁盘信息,网络信息等物理资源和虚拟资源的管理方面,都存在着一定的提高和优化的空间。由于OpenStack中提供了丰富的对外开放接口,使得对于OpenStack进行二次开发成为了可能。
在开源社区主要有以下几种工具:Prometheus于2012年成立,作为一款开源的监控数据采集工具,较多的公司和开发人员都使用了Prometheus,Prometheus提供了丰富的接口可供第三方调用,同时可与多款可视化工具组合提供服务,已经逐渐发展为在云原生领域和社区中最受欢迎的云数据采集,监控解决方案。[5]Graphite是应用程序监控度量值的可视化工具,提供了强大的查询访问API和特性丰富的设置,它的开源特性使得它能被方便定制和改进;[6]Zabbix是国内互联网公司和开发人员使用为广泛的云平台数据采集,云监控软件。作为一款开源软件,Zabbix拥有着活跃并且成熟的社区,同时Zabbix具有可分布式部署,基于WEB界面可视化,提供接口丰富,支持复杂的数据采集,监控和报警等这些优点,国内85%以上的用户和企业都选择了使用Zabbix作为云平台的监控软件;[7]Nagios同样是一款开源产品,具有功能强大的管理中心,定位为企业级监控,特别适合业务功能复杂,用户多样的企业,Nagios支持HTTP,NNTP等协议服务,提供对CPU信息,磁盘信息,网络信息,内存的监控,但Nagios不对数据进行持久化操作,只能实时采集,监控和系统预警,同时当集群规模增大时,轮询过程的开销对数据的实时性会产生较大的影响; Riemann是一款开源的分布式数据采集、监控工具,该工具单一直接,开发人员可通过Riemann定义各种监控事件,并且可设定在事件的特定时间点,特定执行节点时产生监控预警。CAdvisor的名气没有上述几款工具大,使用这款工具的人数也较少,但CAdvisor是颇有名气的Google Kubernetes默认的单个机器节点的数据采集、监控工具。
请支付后下载全文,论文总字数:31760字