基于python的openstack资源监控系统设计与实现.docx
《基于python的openstack资源监控系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于python的openstack资源监控系统设计与实现.docx(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本科毕业设计(论文)基于Python的OpenStack资源监控系统设计与实现Design and Implementation of OpenStack Resource Monitoring System Based on Python院(系)计算机学院专 业网络工程班 级三班学 号16210220320学生姓名李炳亮指导教师冼敏仪提交日期2020年4月 21日毕业设计(论文)原创性声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行的设计(研究)工作及取得的成果,论文中引用他人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包人已含他
2、经发表或撰写的作品及成果。对本文的研究作出贡献的个人和集体,均已在论文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。毕业论文作者(签字): 签字日期: 年 月 日成绩评定 成绩项论文成绩(百分制)折合比例实得成绩(折合分)指导教师成绩30%评阅教师成绩20%答辩成绩50%总评成绩 注:毕业设计(论文)成绩按百分制评定。答辩成绩不及格的(评分低于60分的),则该毕业设计(论文)总评成绩为答辩成绩。 摘 要为了优化OpenStack监控模块在功能和可视化方面的不足,确保OpenStack实例的稳定运行,设计出一个用于OpenStack的监控系统。通过使用Libvirt、Python编
3、程语言、Django框架、Echarts等开发技术,完成了拥有实时监控、实时报警功能的监控系统。该系统主要是通过每秒数据的输出绘制成图表来实现实时监控,还原当前运行资源的真实性。最后在本地虚拟环境下搭建OpenStack平台进行了测试,该系统能够准确的输出实例当前的资源状态,实现报警等功能。解决了OpenStack监控模块在功能和数据可视化方面的缺陷,并且对于OpenStack监控模块从Controller节点获取资源数据而言,该系统直接从Computer节点获取资源数据,从而节省了Controller节点资源。关键词:OpenStack;资源监控;虚拟化;Libvirt;Python Abs
4、tractIn order to optimize the function and visualization of the OpenStack monitoring module and ensure the stable operation of the OpenStack instance, a monitoring system for OpenStack was designed. Through the use of Libvirt, Python programming language, Django framework, Echarts and other developm
5、ent technologies, a monitoring system with real-time monitoring and real-time alarm functions has been completed. The system mainly realizes real-time monitoring by drawing data output per second into a chart, restoring the authenticity of current running resources.Finally, the OpenStack platform wa
6、s built and tested in a local virtual environment. The system can accurately output the current resource status of the instance and implement alarm and other functions. Solved the defects of the OpenStack monitoring module in terms of function and data visualization, and for the OpenStack monitoring
7、 module to obtain resource data from the Controller node, the system directly obtains resource data from the Computer node, thereby saving Controller node resources.Key words: OpenStack; resource monitoring; virtualization; Libvirt; Python目 录第一章 绪论11.1 项目研究背景及研究意义11.2 项目国内外研究现状11.3论文结构安排21.4本章小结2第二章
8、 OpenStack与监控系统相关技术概述42.1 OpenStack介绍42.1.1 OpenStack概述42.1.2 OpenStack架构42.2 Python与Django框架52.2.1 Python语言52.2.2 Django框架62.3 Libvirt62.4 Echarts72.5 小结7第三章 OpenStack监控系统需求分析83.1 OpenStack监控系统模块及工作流程83.1.1 OpenStack监控系统模块需求分析83.1.2 OpenStack监控模块间工作流程83.2 用户模块需求分析93.3数据模块需求分析103.4小结11第四章 OpenStack监
9、控平台设计与实现124.1 监控平台整体结构设计124.2 用户模块设计与实现134.2.1 用户创建134.2.2 用户登录144.2.2.1 用户登陆流程144.2.2.2 用户登陆界面实现154.2.3 密码修改164.2.3.1 修改密码流程164.2.3.2 修改密码实现174.3数据模块设计与实现184.3.1 数据采集184.3.2 数据处理194.3.3 数据输出204.3.3.1 监控功能204.3.3.2 报警功能214.4小结25第五章 系统测试265.1 系统测试265.1.1 测试环境搭建265.1.2 测试过程275.2小结30第六章 总结与展望31参考文献32致
10、谢33广东东软学院本科生毕业设计(论文)第一章 绪论1.1 项目研究背景及研究意义从二十世纪开始,云计算技术就受到人们的赞赏和欣赏。从谷歌的成立到亚马逊尝试时的突破,它已成为一个巨大的工业和生态链。被称为新世纪以来最大的技术进步之一。今日云计算的发展“蓬勃”并非没有理由。由于云计算可以产生较少的本地硬件和软件,所以本地计算机只能执行云计算系统的接口软件。其余工作由网络计算机、服务器和数据存储系统负责1。基础架构即服务一般都包含了平台即服务与软件即服务。而绝大多数情况下基础架构即服务都是需要虚拟化技术的支持。通过用户层的虚拟化管理器,从真实硬件资源中虚拟出硬件资源,从而去新建虚拟机、删除虚拟机、
11、迁移虚拟机。单台主机上的虚拟机可以通过简单的命令来管理,但是在现实生产环境中往往需要考虑环境的高可用性、负载均衡以及备份等问题。因此会使用多台主机集成虚拟化平台。这样做会带来虚拟机运维上面的问题。这就需要应用软件来辅助人员去完成虚拟机任务的管理。这就是基础架构即服务系统产生的原因,也是OpenStack、AWS等项目所实现的价值。而云平台资源监控是一个关键的技术支撑,它是云平台资源管理、迁移、调度、故障、分析、负载、报警与恢复的前提,监控能帮助云平台资源合理化使用、调度、定位故障、提升用户体验,大大提高了云平台的服务效果。因此,设计出一个面向云平台的监控系统十分必要。其中OpenStack是当
12、前主流的云计算技术之一,发展速度也飞快。对此本课题将设计实现出一个针对OpenStack的监控系统。1.2 项目国内外研究现状在中国,阿里云监控系统是阿里巴巴云服务的监控系统。阿里云监控的执行可以检测阿里巴巴云资源情况,使阿里巴巴云用户能够快速了解他们使用的实例的资源和性能。阿里巴巴的云监控主要可以监控自己的云服务、可以监控自己的网站和定制自己需要的监控需求来进行监控。通过监控,用户可以清楚地看到自己监控对象的数据。还可以使用资源监控报警功能,当用户设置一个报警值,若用户使用的服务超过设置的报警值,则会通知用户。但目前阿里云监控并不是全面免费开放。百度云亦是国内优秀的云厂商,而百度云观测是百度
13、开发的一个监控系统,百度云观测的主要服务对象是网站的站长,它针对网站的站长设计出这一个对网站的安全监控系统,它提供给站长报警服务,并且监控功能覆盖全网站的运行状况、安全和访问速度等。并且它提供的是长期免费的服务。但主要是提供网站的监控服务。从国外角度来看,亚马逊云观察(Amazon CloudWatch)是亚马逊开发的一个云监控系统,通过亚马逊云观察,用户可以得到亚马逊云的资源情况,能通过资源情况得到资源能力范围,并且可以通过日志发现云资源问题。亚马逊云观察能够做到很细微的监控,它能具体监控进程、数据库等。当然,亚马逊云观察也可以设置一个报警值,用来告诉用户当前云资源出现问题。TeamView
14、er是国外著名的软件公司,Monitis是TeamViewer旗下的一个子公司开发出的一个监控系统,它提供了市场上比较好的云计算无代理监控功能,并且有完善的监控功能,也能支持用户自定义监控、分析数据等,重要的是它拥有一个良好的交互页面,使得管理者在管理上得心应手,相信所有管理者在第一次接触管理系统时都希望使用一个简单易上手的交互页面。1.3论文结构安排第一章说明了为何要针对云计算平台开发一个监控系统。第二章介绍了选用的云计算平台OpenStack,使用技术Python与Django框架、Libvirt、Echarts组件。第三章对OpenStack监控系统的用户、数据模块进行需求分析。第四章则
15、是设计实现OpenStack监控系统的用户、数据模块以及模块当中的各项功能。第五章对OpenStack监控系统进行测试。第六章是对监控系统设计实现的结束总结以及系统优化改善的方法。1.4本章小结本章对云计算平台发展、云监控重要性做出了分析。国内外的大厂商都争先的发展研究云计算,国内有阿里、腾讯,国外有谷歌、亚马逊。并且以上的厂商都拥有自己的云监控平台。但是开源的云监控学术研究还是寥寥可数。仍需要我们为云监控学术做努力。本文就目前主流的开源云计算技术OpenStack云平台进行研究,设计开发出一个监控功能较完善的OpenStack监控平台,并且可以提供个人使用。第二章 OpenStack与监控系
16、统相关技术2.1 OpenStack介绍2.1.1 OpenStack概述OpenStack是由Rackspace与NASA(美国国家航空航天局)联合研发的管理云平台操作系统,可以控制一个数据中心内的大型计算,存储以及网络资源池,所有这些资源均通过仪表盘进行管理,该仪表盘可让管理员进行控制管理,同时授权其用户通过Web界面配置资源2。作为一个开源的项目,所有人都可以为其提交代码,开发、修改功能,使其不断衍生出新的项目,对此OpenStack成为使用人数较多、应用范围较大的云平台之一。2.1.2 OpenStack架构一般云计算平台都是由各种组件构成,OpenStack也不例外,OpenStac
17、k当前比较重要的组件有:(1)Horizon(UI交互),Horizon提供了基于网页的UI交互 ,即可以通过UI完成对实例的操作。(2)Glance(镜像),Glance能够存储、检索和注册磁盘镜像。(3)Neutron(网络),Neutron主要能够提供网络。(4)Keystone(认证),Keystone主要能够给其他OpenStack服务进行认证以及授予权限,相当于对操作指令请求者的确定性进行鉴定。(5)Swift(对象存储),Swift是一种高可用的分布式对象存储服务,其可以为OpenStack提供可拓展的存储备份系统。(6)Cinder(块存储),Cinder主要是为实例提供持久性
18、的块存储。(7)Nova(计算),Nova主要能够管理实例。用户操作实例也是通过它来进行。OpenStack各个项目之间既是互相独立又是互相紧密联系的。独立是指各个项目之间的安装部署都是相互隔离,互不干扰的。而紧密联系是指各个项目之间又是互相协调工作的。总体架构如图2-1。图2-1 OpenStack架构图2.2 Python与Django框架2.2.1 Python语言Python是一种开放的、面向对象的高级计算机编程翻译语言,第一次于1991年公布3。Python是强大的,因为Python目前已经拥有一个富有而强大的模块库,因为这个库,Python处理事情十分的快速方便。不仅如此,Pyth
19、on还可以在其它语言中使用它们的各种模块 4。Python语言有以下几个特点:(1)容易学习,不仅语法简单、结构清晰而且固定关键字少,使得Python拥有良好的阅读性。正式因为Python的简单理念,使得少量代码能完成的需求在其他语言里面可能需要上百行代码才能完成。由此可以看出,Python语言是十分简单易学的。(2)面向对象,采用了“以程序为导向的编程方法”,该程序包括可重复使用该代码的功能或程序。使用面向对象的编程,程序由对象构造,对象由数据和功能组成。(3)可扩展性,可以使用C或C+来写入某些程序,以加速执行批判码,或防止发布某些重要算法,然后再用Python的程序来呈现。Python语
20、言类的模块库不仅强大,而且非常丰富,它可以很容易地将其它语言(尤其是C语言或C+语言)制作的各种模块连接起来,并且可以扩展Python的功能。(4)模块库,模块库也能理解成一个十分巨大的对象库,是前人为做某件事情而编写的“工具”,Python能够引用它们,来帮助编写者快速进行编程。2.2.2 Django框架Django用于开发网站,而且遵循MVC的设计理念。劳伦斯出版集团开发了这一框架,最初是用于开发一个侧重于新闻内容的网站,后来才在社区开源。它强调了代码的再使用,多个组件可以很容易地以“插件”的形式为整个框架服务,Django有许多强大的第三方插件,甚至您也可以很容易地开发自己的工具插件5
21、。因为Django遵循了MVC的设计理念,因此MVC有的特性Django都有,但Django不满足MVC的开发速度,并加以改造,成为MVT模式。当中,V做的是处理逻辑,T为页面,而M则被封装成一个对象使用。在MVT处理模式中,实现了一个更符合项目开发过程的升级处理构想。在这种处理模式中,具有相对简单功能的控制器部分被封装在路径中,并且路径被用于完成请求的分发,路径通过配置实现(即Django框架中的url与setting)。2.3 LibvirtLibvirt是目前为止使用最为广泛的KVM虚拟机进行管理的工具和API6。Libvirt由三个部分组成,分别是编程语言的API、进程、命令操作工具。
22、Libvirt支持许多语言对它进行模型包装,包装完后提供给该编程语言使用。2014年前释放的代码包括Python界面,经过2014年的一个版本形成独立的Libvirt-Python库。Libvirt还实现了Ruby、Java、Perl等语言的绑定。而且Libvirt也适用多种类的虚拟机监视器。 Libvirt可以做到:即使域不相同,还能对实例进行操作,普通操作同时包括了资源操作;通过执行本地Libvirt-daemon,本地和远程机器可以访问和使用Libvirt功能。远程则是配置SSH;可用于管理和创建虚拟网络以及管理物理和逻辑网络接口等。目前Libvirt已经在生产环境中广泛使用。应用程式包
23、括各种控制线工具、图形接口工具、连续集成、Web应用程序、IaaS服务(其中就包括OpenStack),从而极大地促进了开发和集成。2.4 EchartsEcharts是百度的一款Javascript开放源软件,可以支持多种浏览器使用。Echarts提供了API接口和丰富的文档,通过正确定义和组合背景下发送的Json数据,可以显示所需的数据图标7。Echarts具有各种功能和效果以及友好的视图,提供给开发者良好的数据显示。Echarts的视图类型特点有许多,其中包括折线、圆球、水球、区域、动态、易用性、可拓展性等。Echarts的特性可以使数据可视化分析将提供更高的性能和更广泛的适应性。在开发
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 python openstack 资源 监控 系统 设计 实现
限制150内