【《私有云的监控系统和关键技术分析》14000字(论文)】_第1页
【《私有云的监控系统和关键技术分析》14000字(论文)】_第2页
【《私有云的监控系统和关键技术分析》14000字(论文)】_第3页
【《私有云的监控系统和关键技术分析》14000字(论文)】_第4页
【《私有云的监控系统和关键技术分析》14000字(论文)】_第5页
已阅读5页,还剩23页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

私有云的监控系统和关键技术分析第一章绪论1.1选题背景与意义在当今世界,信息网络技术快速发展,随着网络在全世界各个地区,领域广泛应用,计算机网络信息安全已经逐渐成为涉及国家战略和人民生活的重大问题。“十二五”期间,我国提出明确的信息化发展战略,将“构建可信、可管、可控的网络空间”加入信息安全发展的总体任务。伴随着当前形势,2016年我国制定并公布了网络安全法规,次年6月开始实行。这表明我国坚决维护网络信息空间安全的决心。云技术伴随信息科技快速进步,数字虚拟化技术也获得广泛使用。虚拟技术能够高效的减小系统和软件的开销,可支持更广泛、更多的操作系统,很好的提升了社会公共设施的使用率,共享信息设备和数据信息。应用云计算技术的好处就是能够将各种信息设施与存储信息都放置到网络云上,这样实现动态随时随地的给客户端给予其要用的信息和数据,这样提供给客户在应用设计与使用过程上共享信息资源,而且能够充分保证这些公共设施的共享和安全,降低海量的计算设备与信息保存系统。采取虚拟化科学而使用的虚拟设备成为云系统运转的关键环节,在云环境里面具备有很多的虚拟机设备,云计算计算系统上的各台虚拟设备所要的各种信息量,再智能分配给所有应用人提供信息,实现共享,这样应用人就等效于控制一台真实的系统,操作虚拟机工作,使用云平台的的动态资源。Openstack是近年来发展较快的、开源的云平台项目,其能够给各种大小与类型的云给予各种的云计算及信息共享[1]。其能够快速迁移、控制简洁,同时具有良好兼容性和超强的可扩展性,用户能够按照厂家给出的各种API资料创建个人的集群系统。当今,全世界大量运营企业采取Openstack系统创建起了大型公有云和私有云等基础设施。而其在中国的发展趋势也非常好,很多物联网企业及高校都开始利用Openstack建立起了自己的云计算环境,对其再进行扩展开发,满足自身研发需要。实施云平台运转的时候,必须大量的计算设备和储存数据等可能导致设备出问题,同时因为访问量非常高,以至于云平台运转非常慢,严重情况下会不能给予服务等故障现象。假如云平台由于各类事情产生事故,同时没有维护工作者快速的修复与检查设备,这样就会妨碍客户应用云平台及共享信息,就可能极大的阻碍公司绩效与服务效率,由此自动化监测云平台与维护云平台变得日益迫切。智能监控云平台系统的主要特点如下。云节点需要监测的规模很大,需要监控资源和设备多。伴随微机服务端,存储系统和末端设备等大量网络设施的扩大,其早已大大超出常规的计算机领域。集中实施监控。把云平台里面有关的全部微机服务器、存储设备、网络系统和虚拟终端等全部在云平台里面实施检测控制。高度智能化网络。整个云平台监控系统实现智能化,降低运维工作者在云系统上浪费时间,这样减少公司在运维上的大量经济开支。分析监控信息。实时掌握节点信息,对其可以动态规划资源,提高资源利用率,帮助运维人员优化平台。可扩展性。不同企业可以根据自身使用方向,对接业务开发扩展不同监控指标。所以,本文基于Openstack对其虚拟机的运行状态进行监控,其目的是实时了解主机的运行状况,包括网络、磁盘等;了解虚拟机的主机资源占用率,判断是否进行虚拟机的迁移;提供性能报表,做为性能分析和系统升级的依据[2]。1.2国内外研究现状计算机科学带动云技术诞生和进步,目前市场上出现并拥有大量监控设备与软件。其中商业云计算平台都有专门用于自身云平台的监控系统。比如国外的Google的Stackdriver、Amazon的CloudWatch、Datadog,国内的阿里云、腾讯云,小米开源的Open-Falcon监控系统等。Google的Stackdriver开发者可以获得其云监控的使用权限,利用其开放接口对自己的应用程序进行追踪。Amazon利用CloudWatch监控AWS云资源,用户可以自动提供AWS资源的指标信息,也可以提供自己的日志将其纳入CloudWatch的监控范围之内。Datadog系统监控的核心使用了StatsD[3]技术,其特点是轻量级,获取监控信息非常快速,方便,开发者可以更多关注于业务逻辑,而不是配置。数据采集能力上,Datadog兼容多达60余种操作系统、中间件和数据库,在兼容性方面的优势十分大。然而这些监控服务是云服务提供商所特独的,主要用来监控平台中应用程序,不适合用来监控虚拟机。还有许多其它的开源监控软件,其中有名的有Nagios、Ganglia和Zabbix。它们可以对服务器、虚拟机和网络设备进行实时监控,并且还为用户提供了可视化的界面和灵活的告警。但是这些开源软件只是提供了一些基本的的监控项,不能针对特定的节点进行监控。Nagios作为一种开源的网络监控平台,具备很多实用功能。其能够监测各个节点的设备的信息,而且,还能够按照预设阙值发出告警控制信息[4]。其最大的好处是给出故障的警示通知,这样该平台会快速告诉云平台的工作职工,让管理者及时定位故障再处理故障。其更多是采取Linux做基础,它具备Web前台实施操作,极大的便于维护人员监测系统,然后在这里规定报警触发条件和事件。这个监控平台核心功能是:实施监测网络,同时监测集群里面的分布式设备和资源(例如设备控制器及稳定,磁盘存取状态,网络设备,线路状态等),其还具备自己编写插件扩充和完善该监控系统性能,而且具备非常高的并行检测和工作能力。另外Nagios具备的异常操作特性,能够将各个分布装置的异常信息发警报,通过短信、电子邮件通知运维人员。在Nagios的Web页面能够查阅在线集群主设备的数据及资源等,其包括在线数据,日志文档和故障报警信息等内容。Ganglia监控平台由伯克利大学成功设计,其目标是针对服务器集群,设计目标是假如在集群上具备成千上万节点的时候,可以给这些集群装置实施高效监控任务[5]。这个监控集群具备有Gmetad、Gang.web和Gmond。该平台核心作用为检测需要监控设备的各种数据和资源,监测的这些信息包括设备控制器及稳定,磁盘存取状态,网络设备,线路状态等。然后针对这些收集得到的信息实施整定处理,再采取Gang.web上面的系统页面查阅各个集群的全部信息及资料,还能够选中该群中里面的各个节点及设备,查阅集群上面的指定节点及其信息数据,这样获取局部数据。采取这种集群采集信息模式,再实施各节点信息研究,再就是能够对该集群信息实施调整处理提升使用效率,增加集群整体性能。国际上,越来越多企业在大集群项目中选中它实施集群监控,维护系统安全。Zabbix是Alexe-Vladish研制,现在是交给后来发起创办的Zabbix-SIA来不断实施升级研发和售后管理,同时给客户给予售后支持业务。该平台作为较大型的分布式开源监测平台。可以监控大量在线数据与服务器等设备的状态与系统性,还采取方便的告警模式,许可客户给几乎所有的事件配备采用邮件的报警方式。如此就可以让用户更快的接收处理网络设备故障。Zab采取存储信息给予完美的报表及信息可视性。这样的设计让它作为设计容量的最佳方案。其可以实施主动轮询模式,以及被动捕获方式。它全部的报表、收集信息与配置数据,都能够采取Web前台窗口来实现操作。这些Web前台页能够保证让客户在线上所有位置操作其监控的设备状态,以及服务器的健康状况。对该平台实施配置操作后,就能够在监测IT设施领域获得大量用户喜爱。不管是针对少数服务器的小组织,或者是具备海量服务器设备的大规模用户,都非常适合采用。Zab平台是免费的。它是按照通过GPL平台检查。这就是说该产品源代码经过验证而且采取免费模式给市场,可供公共使用。Cacti是采取php设计,其核心功能采取snmp方式来得到信息,再采取rrdtool保存以及升级信息,假如客户要想查阅信息时就采取这个rrd工具产生图表到达客户端。所以,snmp与rrd工具作为cacti的重点。其中Snmp是实施收集信息的作用,而rrd工具就是实现保存信息与产生图表给客户。采取snmp得到信息并不保存在mysql里面,同时放到rrdtool产生的rrd文档里面(其路径是位于其根目录下rra下面)。这里rrd工具针对数据升级后就保存到其文档里面实施处理,而rrd工具的文档作为固定数据量的文档,其可以保存的数据文档数量是其建立的时候制定好。该Cacti项目具备有三大块。Data-Retrie-Cacti:这里先是实施收集信息,它采取轮询(Poll)来得到信息。该轮询器作为scheduler系统的扩充模块,还有Unix上面的crontab等。当前IT装置里面都有大量的各类系统,包括有服务器与通信设备等。这里cacti工作是采取SNMP方式获取远端的各种设备采集信息,各种能够采取SNMP技术的装置都能够应用cacti实施工作。Data-Store:要采取很多方法来保存获取的信息数据,还能够采取数据库以及平面文档操作,而cacti通常是采取RDD工具,它作为一类环形数据库(Round-Robin-Database),它更多是应用到保存与处理时间序列,包括通信带宽、设备温度和网络负载等,RRD是信息采取紧凑格式保存信息,通常情况下该数据量是不随时间变化增加的,RRD还能够产生很多优美的图像。上述优异性能让cacti可以不用存储需要。然后RRD还可以实现各种工作,例如它可以把原始信息同已经整定的信息实施融合,这样让历史信息保存能够降低空间需要,其具备的整定功能有:求最大、最小和平均等操作。Data-Presenta:在此Cacti还有个核心功能是内置RRD工具的画图器,能够把它和常规web服务器融合起来实施,能够达到几乎所有平台中采取浏览器来查阅其监控信息。当前,为了应对自身不同云平台的监控需求,使用开源监控软件是不错的选择。但是根据上述的介绍,Ganglia、Nagios和Zabbix都存在各自的优势和不足。本文将结合云计算监控需求分析,整合Ganglia和Nagios监控系统,设计一个部署简单、可靠性高、具有告警装置的监控设备。1.3研究目标和研究内容要时刻监控云计算系统的工作状态,必须创建一个适宜处理各种复杂云情况的监控系统。这里先是从当前的开源监测科学技术开始,针对部署在云计算情况中的监控实施探索,同时针对Ganglia与Nagio系统,这里采取分布式布局结构,研究实施云计算的监测平台。这个平台利用Ganglia监控虚拟机性能,利用Nagios发送警告。本文首先对云计算及关键技术进行详细学习,再对现有开源监控系统了解学习。通过对比优缺点,选择Ganglia和Nagios监控平台。然后采取云计算情况的监控目的实施具体的深入研究,打算监控系统采用分布式架构部署,这样可以适配巨量的监控设备的接入。本系统主要基于开源的Ganglia和Nagios系统进行部署。结合云计算环境下的监控需求,为了可快速灵活扩展,并提高效率,设计了不同于传统集中式架构的分布式架构。1.4本文结构安排本监控系统论文分六部分,先是整体上讲述监控云计算系统在全世界的发展状况,再介绍云计算理论与关键技术。再给出了本文研究过程中所使用到的关键技术,经过应用在云计算下的监控需求研究,得到研究方案然后得到具体设计目标。再实施系统功能,同时进行监控测试,最后对监控系统做总结并进行展望。论文详细结构简述:第一章为绪论。这里讲述监控行业课题背景,以及在云平台情况实施监控的研发状况。初步简述本文监控系统研究意义,以及论文内容与结构规划。第二章为云计算设计及核心技术。在此先是讲述了云计算的概念,分类和关键技术。随后着重介绍了OpenStack云平台相关理论。第三章是私有云的监控系统和关键技术。主要介绍了Ganglia监控系统和Nagios监控系统。随后根据监控系统需求分析,设计监控系统。之后介绍了监控部署的架构。第四章是监控系统的实现。详细叙述了Ganglia和Nagios监控系统在OpenStack集群的部署,并整合Ganglia和Nagios,编写python脚本,实现两大监控系统的合并。第五章使虚拟机性能监控。基于上一章对Ganglia和Nagios监控系统的部署和实现的监控系统,监控处于OpenStack集群的虚拟机性能,详细对CPU和网络流量监控,并测试发送警告邮件。第六章是监控系统设计总结。这里总结并分析本次云系统监控研究的缺陷,对未来改进该系统总了进一步展望。第二章云计算理论与关键技术云计算(cloudcomputing)是一种分布式计算,具体指的是通过网络将巨庞大的数据经过计算处理分解得到无数个小程序,然后通过多个其他服务器组成的系统进行处理和分析小程序并得到结果返回给用户。云计算采用网络把各种分布在各个地方的实际信息虚拟化得到统一且庞大的虚拟资源系统,只要连接网络,就可以随时随地获得自己想要的资源。2.1云计算的介绍2.1.1云计算的历史和基本概念云计算作为全球信息科学快速变化的科学产物。资源与信息科学持续进步,带动云计算诞生并发展。最初在2006年出现云计算的说法,随后就迅速风靡世界,得到信息领域企业大量重视和应用。整体来看,云计算在本质上是规划管理基础资源和信息,它是应用领域上的一次重大思想革新以及技术的革命[6]。在行业领域内把云计算定义为五个特点:信息共享、功能伸缩、按需提供、信息收费与宽阔的网络面。云计算的理论就是采取新兴的虚拟化科学,让系统处理分布在网络各个地方的终端微机上,公司可以把资源应用到各种应用中,按照需要来操作有关的设备与存储器,本质上来说云计算就是网格式、分布式和并行性的大整合及发展,同时云计算采取虚拟方式、采取效用处理和面对服务的结构思想[7]。2.1.2云计算的种类按照操作与各种模式的差异,云计算可以被分为:私有云、公有云以及混合云等。公有云是众多公司与个人客户一起应用的云环境,其可以使用各种各样大量的外部用户信息共享方式,客户不需要拥有及管理设备。在公有云里面全部客户都是共享同一共用信息,各种信息服务能够是第三方给出。常规主要采取公有云方式服务的公司有谷歌和亚马逊等。私有云因为需要保证客户信息安全以及其产生的服务方式,在公司的有用信息是保存在云计算服务企业里面,这就关系到信息安全以及管理的稳定可靠性。因此私有云不但提升网络运算能力,同时还注重机密与安全,这些都是云计算的核心环节。混合云同时融合公有和私有云,这样创建科学完备的云环境。客户能够在混合云系统下按照各自需要采取有关模式,设计适宜各自应用的策略和方法。混合云方式的功能与性能相比其他具有一定完整性,其更多的应用在金融行业和政府部门,以及其它的大公司等。按照各种服务类别的差异,再次将云划分成三类:基础设施即服务IaaS(Infra-struct-as-a-Servic)、平台即服务PaaS(Platform-as-a-Service)和软件即服务SaaS(SoftwareasaService)。下面分述:IaaS:这里通常是面向公司的客户,其主要有Amazon的AWS(Amazon-Web-Servic),PPPCloud等。而这些云计算的重要特点就是,其不像常规企业租赁商那样实施租借具体服务器设备,其给予和出售的是设备的运算与储存能力。这里AWS把运算中心全部的服务设备的运算与储存功能融合为整体,再把它分成一个虚拟应用,各个应用都是具备各种运算与储存功能。付钱使用AWS云的企业采取应用事例做一个度量单位来进行。基础架构即服务作为云服务的基础,而平台与软件即服务创建在这当中,这些共同给开发人员与客户给予服务,这也就是大数据信息服务平台。PaaS:它是面对研发工程师的云平台。该云平台关键特点就是其自有开发平台,同时向研究人员给予工具包。例如谷歌的GAE(Google-App-Engine),以及百度BAE与新浪SAE等。PaaS可以和SaaS相互转化,而且可以提供大量现成的服务,使得开发者可以省去购买服务器,安装操作系统,搭建开发环境等繁琐事件,直接开发网站。这些都让网站设计成为一件快速简易的工作,同时还让云运算时代的网络更繁荣发展。SaaS:它是一种普通用户能够感觉的云服务,例如Dropbox,以及在国内的百度云和腾讯云。上述云计算主要特点是客户不用买其中任一种实际商品,而是买到和这个实际商品具备相同作用的服务来进行。2.1.3云计算关键技术1.虚拟化技术云计算的服务器虚拟化,主要指的是服务端主机把硬件资源转化成可用于虚拟机的逻辑资源,从而使一台物理计算机利用虚拟化的功能,转变成多台可以独立使用的虚拟机,而突破物理上的界限。该技术可以充分的利用主器上物理资源,将其创建成为一个可以动态实时管理的“资源池”,降低客户的资源浪费,提高物理资源利用率,减少运行成本[8]。2.分布式存储技术分布式系统就是采取若干软件和系统相互共用数据,而该软件既能够是相同的微机上工作,还能够采取云连接众多微机来处理。分布式存储可以共享稀有资源,平均存储资源到每台计算机上,减少某台计算机负载以及把程序放到最合适的计算机上,提高工作效率[7]。2.2OpenStack介绍它是美国航天局与Rackspace一起发出的开源云项目。其不但作为社区,也是一个项目还是一个免费的开源软件,提供开放源码软件,建立公共和私有云。OpenStack提供了一个部署云的操作平台,可以为任何人创建和提供提供IaaS层服务。2.2.1OpenStack核心服务通过开源文化的完善进步,OpenStack不断完善,现在已产生了很多高效稳定的型号。其各个主要服务的逻辑见图2-1。Nova:给予虚拟计算服务,其实现管理全部虚拟机的各个产品周期;Neutron:给予虚拟网络服务,给各种服务给出网络连接操作;Cinder:给予信息储存服务,给虚拟机给予储存功能;Swift:给予对象储存服务,给各种服务给予对象储存服务,例如给Glance给予镜像储存服务,给Cinder实施卷备份操作;Keystone:给予认证服务,给客户给出身份信息验证以及其访问策略;Ceilomet:给予测量服务业务,给计费与监控还有各种服务给予信息数据支持;Glance:给予镜像服务业务,给出虚拟机上传镜像与检索等服务工作;Horizon:给予操作面板服务业务,给各种服务提供Web界面技术,这样让客户操作更简单高效[9]。图2-1:OpenStack核心服务逻辑关系2.2.2OpenStack概念理论客户能够使用OpenStack实施完成其IaaS服务。这个概念系统见图2-2所示。图2-2:OpenStack概念架构在模型架构上能够看到,使用设计人、运维人、所有人以及云操作都必须和云交互使用用户集,然后给各种用户分配自己所需要求。该结构使用最常规分层策略是,其具备两个正交区域[10]。它的分层方式是:1.展示层它创建了组件和客户间的交互操作,这样来呈现出共享信息数据。这个层既能够给非开发者给出图形设计窗口,还能够给开发者给出更多服务。针对平衡负载、代理操作、安全管理与名称服务等各种复杂结构,都会展现在各个层面来实施。2.逻辑层逻辑层能够对云逻辑与控制操作。其包含有调度、筹划、策略、创建镜像与管理日志等功能。3.管理层在各种复杂情况中,必须有有管理接口实施整个平台运作。其具备访问云管理等各种监控方式。这个监控还可以是采取整定的方式加到已有的工具里面去实施。如果,目前的结构上己给虚拟运作供应商给予监控及管理,其还能够具备各种支持作用,例如标准与系统设置管理等操作。4.资源层给出实际计算操作、网络与储存信息给客户,共用资源和信息有服务器设施和交换机设备等软硬件系统[11]。2.2.3OpenStack物理层次一般情况下,根据安装组件的不同,OpenStcak在实际部署中服务器可以划分为:计算节点、存储节点、网络节点和控制节点。在网络操作终端里面安装nova和mysql等软件平台,该控制节点通常都是采取若干个服务器设备来构成。微机节点与终端给出虚拟机的控制器、存储器等设备实现虚拟服务,这些系统通常是指具备nova-computer的实际设备,实施设备部署的时候,要完成高可用性的计算终端就要具备有nova-network平台。存储终端节点就是给OpenStack平台上给予储存服务的操作,这个块存储就像是弹性云盘一样存在和应用,保存节点可以给予虚拟设备动态的达到改变硬盘大小和区域的作用。在通常情况它是nova-volume等的服务器系统。网络终端可以给系统提供服务功能,其中有虚拟桥,DHCP(Dynamic-Host-Configurat-Protocol)设备以及虚拟路由等系统。通常是具备nova-network等设备,系统各终端可以达到给虚拟机设备ip地址的组织[11]。2.5本章小结本章先是阐述云计算的发展与概念,然后分类处理云计算,最后简述云计算的关键技术。接下来主要介绍了OpenStack云平台的核心服务、概念架构和物理层次。为之后基于OpenStack的搭建提供了理论支持。第三章私有云的监控系统和关键技术本章主要阐述了采取OpenStcak的云监控系统,还谈到开源软件学习以及研究。Ganglia监控系统,Nagios监控系统等科学发展给云监控的设计和实现打下基础。3.1ganglia监控系统Ganglia监控平台由伯克利大学成功设计,其目标是针对服务器集群,设计目标是假如在集群上具备成千上万节点的时候,可以给这些集群装置实施高效监控任务[5]。该平台核心作用为检测需要监控设备的各种数据和资源,监测的这些信息包括设备控制器及稳定,磁盘存取状态,网络设备,线路状态等。然后针对这些收集得到的信息实施整定处理,再采取Gang.web上面的系统页面查阅各个集群的全部信息及资料,还能够选中该群中里面的各个节点及设备,查阅集群上面的指定节点及其信息数据,这样获取局部数据。采取这种集群采集信息模式,再实施各节点信息研究,再就是能够对该集群信息实施调整处理提升使用效率,增加集群整体性能。全球越来越多公司在大集群项目中选中它实施集群监控,实现系统安全。该监控集群具备有Gmetad(GangliaMetaDaemon)、Gang.web和Gmond(GangliaMonitoringDaemon)。Gmond是配置于集群上要采集信息的主机设备里面,针对节点设备实施采集信息操作的普通多线程代码。该模块核心是采集信息,控制器使用率、控制器加载、内存应用状态和磁盘应用,磁盘与网络接口等内容。监控节点设备能够采取Gmond实施交互处理,这样得到该指标的信息。而且还在默认设置里面,相同集群里面全部主机采取组播模式实施共享信息,由此集群里面各个Gmond终端能够得到相同集群里面的各个主机采集的信息。Gmond具备优异的扩充性,采集信息的软件采取插件方式载入Gmond,同时耗费资源较少,能够采取C++和Python等实现设计,设计自定义的各种插件模块,这样完成各种有用的信息采集。在通常情况下各个Gmond都将对另外的节点发组播来采集信息,各个节点还接受以及保存另外节点送来的信息,这样集群上各节点都可以知道集群里面所有最近的信息,还能够使用共享数据迅速找到发集群里面失效的终端设备。Gmetad采集集群终端里面的所有信息,并集中起来,同时采取RRD文档实施保存和聚合功能。其核心是采集其所有信息数据形成树状扩充结构。Gmetad采取RRD实施信息保存以及聚合信息,它应用RRD工具把得到的信息保存进RRD文档,随后Gweb再采取RRD创建节点及其图片放到Web前端显示给客户。其采取RRD工具把采集的信息保存到RRD文档。RRD作为环形结构的数据库,其采取固定空间来保存信息。Gmetad采取监听方式实现和远端的Gmetad创建连接,这里采取主机授权模式给远端给出目前集群的XML文档。还能够采取连接Gmetad来实现监听目的,实施交互模式申请和应答操作。采取该交互模式能够查阅集群网格的情况,以及XML树整体架构,其还可查阅到集群数据及其简单的信息。Gmetad不但能够在Gmond里面得到的信息,其还能够在Gmetad里面取得信息,同时这个功能是具备分级授权模式的操作,能够创立共同的监测域来实施。Gangl-Web采取Web呈现Gmetad保存的集群信息,在该节点前端界面上显示信息。这里Gweb采取简单UI把全部信息中的数据汇集呈现到几个图表里面,而且还给出快速简单的查找方式,这样查阅特殊终端的特有信息数据。Ganglia扩充能力很强大,其在Gmond上能够采取三种模式扩充信息[12];能够在管理系统里面采取简单调整Gmet设置数据实现树状扩充,其具备很高的灵活性,这样集群节点上面能够采取组播办法采集共享数据,其适合在小规模集群上,还能够单播模式进行,而采集度量数据适合集群较大的情况下应用。其自身尤其适合高性能的监测采集系统,其和Zabbix和Nagios的最大差异就是不具备故障报警的性能。3.2Nagios监控系统Nagios作为一种开源的网络监控平台,具备很多实用功能。其能够监测各个节点的设备的信息,而且,还能够按照预设阙值发出告警控制信息[4]。其最大的好处是给出故障的警示通知,这样该平台会快速告诉云平台的工作职工,让管理者及时定位故障再处理故障。其更多是采取Linux做基础,它具备Web前台实施操作,极大的便于维护人员监测系统,然后在这里规定报警触发条件和事件。Nagios核心操作是采取轮询模式取得数据,同时实施监控(有ICMP和WEB以及邮件等);这个监控平台核心功能是:实施监测网络,同时监测集群里面的分布式设备和资源(例如设备控制器及稳定,磁盘存取状态,网络设备,线路状态等),其还具备自己编写插件扩充和完善该监控系统性能,而且具备非常高的并行检测和工作能力。另外Nagios具备的异常操作特性,能够将各个分布装置的异常信息发警报,通过短信、电子邮件通知运维人员。在Nagios的Web页面能够查阅在线集群主设备的数据及资源等,其包括在线数据,日志文档和故障报警信息等内容。其发出状态信息给故障点终端同时发出警告,其得到全部历史信息都可以在web里面实施,同时实施简单设置操作。Nagios实施监控具备有3种方式:(1)直接监控方式其核心引擎采取本地化的插件来实施,针对需要监控的终端实施直接获取信息。它是最简单监控模式,具备下述特性:1)监控主机里面实施设置操作就能启动监控运转。2)针对该被监控终端装置运转状态,没有监控功能。3)监测双方设备都必须具备直达的IP层。4)运转监控操作以及信息处理都必须采取Nagios平台,而被监控设备端不主动介入该操作,只依据常规逻辑来应对检测行为。(2)针对Windows的监控在Window中,采取在监控主机上实施check-nt完成工作。在该主机终端上要具备NSClient,采取这个插件采集该系统中的数据,还有控制器的使用率等,磁盘空间使用情况,还有进程运转等操作。(3)监控远端Linux主机插件由于本地信息只是具备读程序和数据的权限,这样Nagios平台只可以检测其主机的当地数据,不能够得到被监控主机数据,所以采取NRPE来实施远端Linux主机监测。其详细的监控过程是:Nagios上的主机要完成监控某个待监控节点的时候,采取用本地check-nrpe对待监控节点发出监测命令。而待监控节点上NRPE运行时接到监控机发来命令,就采取本地来运转该插件,这样得到待监控节点的数据。这样实现其数据采集,待监控节点会采取和监控节点间创建的通讯链送回其状态数据。同时监控节点运行check-nrpe把采集结果信息返到Nagios实施。而NRPE自己并不会发出监控操作,其全部的有关操作都是统一采取被监控节点本地插件实现,它仅仅是调用插件,然后返回信息数据结果。在采取check-nrpe时候,监控双方系统不用开放各种类型的端口,仅仅采取固定端实施网络信息就可。在固定端口时候,隔离后面的网络端口以及漏洞等都可以很好的处理。就算被监控节点发生一些调整,仅仅在被监控端对应修改就可以正常进行监控任务[12]。3.3监控系统需求分析采取云计算可以给海量客户给予高效安全的共享信息,最重要的就是其健壮性特性。其可以给出千万个虚拟节点及设备为客户应用。这样巨大虚拟机设备,假如不采取有效监控措施,就很难清楚虚拟机会不会一直在正常工作,而且不清楚全部系统资源和设备的使用和空闲状态,所以在此必须监测虚拟机使用状态,内存状态,网络通行量,设备磁盘状态等信息。其次需要告警系统。Ganglia优点就是实时的监控集群里面设备的所有参数,例如控制器,内存系统及其温度状态等信息,这些汇集成各个界面,同时给予端口供信息访问。假如发生问题,就会报警警示。而Nagio优点就是发生故障时能够给予很强的报警警示操作,可是实时监控当中,这个效果很弱,就算是采取NRPE还是不可以得到强大的设备监控目的。针对集群实施上,采取两个模式,第一是假如发生故障时,就会有警示发出,这样管理者可以快速出击处理故障,把损失降低到最小。第二是发生故障前,寻找将会发生的故障,来处理问题规避事故发生。所以Nagios适宜在第一的情况下实施,而Gangli适宜在第二的情况下实施,二者融合就可高效处理各个场景下的问题。采取Nagios应用Ganglia端口,来得到全部集群系统的监控信息,假如大于设置的报警数值,就能够实现报警信息。3.4基本监控架构3.4.1集中式监控结构采取集中监控方式重点是应用服务器完成对待监控节点实施监控。尤其是实现单台监控设备完成更多待监控节点以及虚拟设备的监测。而服务器就是实施采集信息达到汇集与处理的效果,其结构见图3-1所示。图3-1:集中式监控架构这个集中方式监控架构上,服务器是实施在待监控设备上得到监控数据。待监控设备就必须具备监控代理,这样实现与服务器实施信息通信。服务器通常是布设在某台微机里面,来采集所有监控代理产生的信息,再处理这些监控信息,把信息呈现在该监控端显示,还可以是先保存数据库里面,再在数据库当中查找和展现。该服务器能够对被控设备给出指令操作,这样实现动态配置,同时迅速的得到监控数据。该监控架构缺陷:假如待监控设备很多的情况下,服务器性能就大量耗费。因为一方面要在待监控设备得到信息,另一方面还要操作各种信息,如此就会带来服务器性能的瓶颈问题,这样会削弱设备可维护的特性[13]。3.4.2分布式监控结构分布式的监控系统里面,全部系统中具备屮心服务器,还要一些子监控服务器,以及待监控的设备来构成。其各个子服务器就承担实现其子网络的监控目的,各种子系统间并不是独立的,其能够传递数据。而且所有子系统的规模较小,发生的信息量也较小,如此就能够极大的降低中心服务器信息压力,实现整个监控网络。图3-4:分布式监控架构在分布式监控的上述架构上,具备三个层次,见图所示。在最底层放置待监控的设备,其采取执行监控代理软件的模式实施,采集各个终端状态数据,然后对子服务器传递其采集的数据。该中间层用来监控子服务层设备,其承担采集所有终端传递来的监控数据,在对屮心服务器传递采集得到的监控数据。而最上端层作为中心服务器端,其核心任务是采集各个子监控服务器信息,随后保存到数据库里面,还有直接采取服务器传递来实现查找功能。分布式监控架构把海量信息收集操作分散给各个子系统上,这样最大化降低中心服务器工作量,还减少网络负载量,可是这种方式会产生一些延迟时间[13]。3.5RDDTooLRRDTool(Round-Robin-Database-tool)其中的Round-Robin就是信息储存模式,这里各个信息对应某个时间槽,同时该指针会指到新的储存该信息的槽位上[14]。和别的数据库差异就是它采取固定大小的RRD文档存储以及聚合信息。RRD文档是作为圆形数据库,其信息刻度是匀称布设在圆上,其各个刻度位置就是采取储存信息的槽位,假如时间大于该文档规定位置上,就将自动的覆盖信息。在圆心到某刻度上引一直线出来就是指针,同时伴随读写信息,该指针随之动作。因为圆是无头无尾的,这样指针就能够始终移动下去。就像上文说的,过一个时间,假如RRD文档的保存空间信息已经满了,那么这个指针会不断覆盖信息,重新再循环存储信息。由此RRD文档的保存空间容量都是恒定的。其就是采取该方法实现保存信息[15]。3.5本章小结本章主要对现有的主流监控系统做了介绍和功能分析,找到了Ganglia监控系统和Nagios监控系统各自的优缺点,针对现有监控系统分析和改进,提出结合Ganglia和Nagios,Nagios调用Ganglia的接口,获取整个集群的监控指标,同时还拥有告警系统。第四章监控系统实现本章主要介绍Ganglia和Nagios在虚拟机上的部署,并在此基础上,使用python语言结合两大监控系统。4.1监控系统部署架构本小节基于上一章节对基本监控架构的介绍,设计了一个结合Ganglia和Nagios的监控系统架构,如图4-1所示。该架构利用Ganglia提供集群实时监控,Nagios提供报警提示。充分利用两大监控系统的优点,提供更好的监控服务。图4-1:监控系统架构4.2基础监控系统部署本文选择VMware上创建多个虚拟机,虚拟机底层操作系统选择Centos7,这可以保证监控系统部署更加稳定。Centos7选择阿里的镜像文件下载,在VMware上创建的虚拟机上安装。4.2.1Ganglia监控系统部署1.前期准备准备三台Centos7虚拟机,配置IP地址和hostname,同步系统时间,关闭防火墙和selinux,修改IP地址和hostname映射。首先配置主机,选择用yum源便捷安装epel源,安装基础包,依赖和基础服务httpd和php。然后在Ganglia官网下载confuse-2.7.tar.gz、ganglia-3.7.2.tar.gz、ganglia-web-3.7.2.tar.gz源码包。2.部署监控主机(1)confuse安装下载confuse-2.7.tar.gz,并解压。解压后如图4-1所示。解压命令:tar-zvxfconfuse-2.7.tar.gz图4-1:confuse文件夹进入到confuse-2.7源码目录下,编译到指定目录。编译命令:./configure--prefix=/usr/local/ganglia-tools/confuseCFLAGS=-fPIC--disable-nls--libdir=/usr/local/gangliatools/confuse/lib64再执行命令make&&makeinstall完成安装(2)ganglia安装下载ganglia-3.7.2.tar.gz,并解压。解压命令:tarzxfganglia-3.7.2.tar.gz进入到ganglia-3.7.2源码目录下,编译到指定目录。编译命令:./configure--prefix=/usr/local/ganglia--enable-gexec--enable-status--with-gmetad--with-libconfuse=/usr/local/ganglia-tools/confuse编译成功后如图4-2显示。图4-2:编译Ganglia(3)安装可视化界面下载ganglia-web-3.7.2.tar.gz,并解压。解压命令:tarzxfganglia-web-3.7.2.tar.gz把文件传送到/var/www/html/ganglia目录下,再进入指定目录安装。安装命令:makeinstall3.部署监控结点按照部署主机操作,安装confuse和ganglia的gmond模块。然后修改主机gmetad.conf文件,把子节点ip地址加到“mycluster”后。Ganglia部署完成默认页面如图4-3所示。图4-3:ganglia默认页面4.2.2Nagios监控系统部署1.前期准备安装基础支持套件gcc、glibc、glibc-common等。创建nagios和nagios用户组,创建nagios目录并授权。进入nagios网站下载nagios的压缩包。这里选择下载的是开源的nagioscore。2.部署nagios解压前期官网下载的nagios。解压命令:tar-zxvfnagios-4.4.3.tar.gz进入目标目录编译。编译命令:./configure--prefix=/usr/local/nagios/执行命令:makeall执行命令:makeinstall3.安装配置php使用命令yuminstallphp便捷安装php。配置httpd.conf文件,并增加代码,使nagios的web页面必须经过授权才能访问。增加的配置代码如表4-1所示。表4-1:httpd.conf配置#settingfornagiosScriptAlias/nagios/cgi-bin"/usr/local/nagios/sbin"<Directory"/usr/local/nagios/sbin">AuthTypeBasicOptionsExecCGIAllowOverrideNoneOrderallow,denyAllowfromallAuthName"NagiosAccess"#用于此目录访问身份验证的文件AuthUserFile/usr/local/nagios/etc/htpasswdRequirevalid-user</Directory>Alias/nagios"/usr/local/nagios/share"<Directory"/usr/local/nagios/share">AuthTypeBasicOptionsNoneAllowOverrideNoneOrderallow,denyAllowfromallAuthName"nagiosAccess"AuthUserFile/usr/local/nagios/etc/htpasswdRequirevalid-user</Directory>3.安装nagios插件之前安装nagios只是一个空壳,真正起到监控功能的是nagios使用的插件。Plugin完善Nagios的基本功能,这个模块具备很多常规基础指令,这样就能够完成各种基础检测作用。官网下载nagios-plugins-2.2.1.tar.gz,解压并编译执行。这样Nagios部署就完成了,默认页面如图4-4所示。图4-4:Nagios默认页面4.3Nagios邮件报警的配置4.3.1安装sendmail组件安装命令:yuminstall-ysendmail*随后重新启动sendmail服务,并发送测试邮件,验证sendmail的安装部署。4.3.2邮件报警的配置修改配置文件,将报警邮件发送到特点的E-mail地址。4.4Ganglia与Nagios的整合4.4.1安装思路采取Nagios来运行Ganglia端口,得到全部采取ganglia集群获取的信息,假如大于这个设置的报警参数,就利用nagios发出报警提示。4.4.2安装过程(1)把ganglia的check_ganglia.py脚本复制到nagios的执行目录中。复制命令:#cpcheck_ganglia.py/usr/local/nagios/libexec,完成脚本。(2)改变service.cfgservice.cfg代码,设置对应ganglia监控工作,修改后文件配置如表5-2。表5-2:service.cfg设置defineservicegroup{##制定有关服务组的操作servicegroup_nameganglia-metrics##服务组aliasGangliaMetrics##服务组}definecommand{##制定有关得到ganglia信息的指令操作command_namecheck_ganglia##检测指令command_line$USER1$/check_ganglia.py-h##检测指令$HOSTNAME$-m$ARG1$-w$ARG2$-c$ARG3$##实施检测}defineservice{##服务操作usegeneric-service##节点nameganglia-service##服务名hostgroup_namerimi-servers##主机service_groupsganglia-metrics##服务集群notifications_enabled0##启动信息}defineservice{useganglia-service##节点service_descriptionload_one##加载服务操作check_commandcheck_ganglia!load_one!4!5##检测指令操作}defineservice{useganglia-service##节点service_descriptioncpu_idle##控制器空闲check_commandcheck_ganglia!cpu_idle!30!15##检测指令操作}defineservice{useganglia-service##节点service_descriptiondisk_free##磁盘空闲状态check_commandcheck_ganglia!disk_free!100!50##检测指令操作(3)调整gmetad设置,让它共享监控信息。在默认的时候,其中的gmetad服务不共享信息到系统上另外设备中,默认仅仅可以将信息送给localhost,因此必须实施对应设置,这样就能够共享信息到其他设备上。核心是分析nagios和ganglia主机都不是相同设备上的情况。改变gmetad设置:执行trusted-hosts2,这样来增加可信主机的IP地址进去。(4)改变check_ganglia.py里面的端口号,还有ip地址数值,见表5-3。由于check_ganglia.py里面通常到localhost得到ganglia里面的gmetad信息,由此这里就要调整脚本代码,让它能够在集群里面的某个主机上得到监控信息。表5-3:check_ganglia.py设置ganglia_host='8'##这里确定设备的IP地址号ganglia_port=8651##这里确定gmetad设备的端口号数值4.5本章小结本章主要介绍了Ganglia和Nagios监控系统的部署环境,具体过程。基于第三章的监控需求分析,整合Ganglia和Nagios监控系统,完成了一个兼具Ganglia监控和Nagios告警的监控系统。第五章虚拟机性能监控5.1监控环境5.1.1硬件环境核心服务器1台:1CPU/1GB内存/20GB硬盘(虚拟机)分布式结点2台:1CPU/1GB内存/20GB硬盘(虚拟机)联想R9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论