文/邹亚鹏
21世纪最伟大的发明既不是推陈出新,也不是人工智能,而是人们不断增生的对新鲜事物的接受和推崇。在大科技的推动下,智能标志着科技的进步,同时,思维模式的改变也不断促使人类进步的加快。
近几年,随着云计算技术的在国内的推广普及,涌现了许多优秀的云计算平台,其聚合了大量硬件资源和软件资源,并采用虚拟化技术实现动态伸缩服务量,按需提供服务。为确保云平台正常运转,必须对整个云架构实施多方位监控,而普通和网格监控软件都有着自身的局限性和适用范围,不适用于云平台,所以本文研究并实现云平台下的监控系统,解决云平台资源运行和用户使用的监控,并改进增强了系统自配置和容错性,具有重要意义。
目前,云计算平台研究和应用在学术在商业共同推动作用下,逐步显现迅猛增长的头,Amazon、Google、IBM、MicroSoft、Yahoo、Sun、盛大云计算等国内外公司纷纷推出了自己云计算平台和解决方案,云计算的时代已然来临。从原有的IDC逐步面向服务、动态伸缩、按需收费的公有云或私有云发展。云平台的用户范围也逐步扩大,以后企业可以在云计算平台上按需选择适合自己的云服务,快速构建具有企业特色的业务流程管理系统和数据库,这种快速架构系统的新模式,能够合理充分地利用资源,降低成本,从而提升企业的核心竞争力;而政府则通过云计算加强部门间的信息交流,促进部门的协同办公,并将获得的大量信息利用云计算数据挖掘、并行处理等技术进行分布式存储和科学分析,最终让数据得到使得数据能够得到统一有效的管理。
云平台聚合了大量物理资源,虚拟资源,并采用虚拟化技术实现动态伸缩服务量,按需提供服务。而监控在提高云计算提供服务质量方面扮演着重要的角色,为使得云平台可以顺利提供服务且正确运转,需要多方位监控云平台运转的架构,确保云平台运营者可以了解和把握总体运行情况,从而可以及时优化资源性能和可用性。监控往往由监控软件来实现,通过对重要系统资源的监控,检查系统瓶颈和隐藏的缺陷,并在严重故障时执行故障的自处理或手动处理,以满足云平台的灵活及高可用的特点。同时,用户在云服务使用过程中,对于云服务的运行监控要求将会时刻存在着,以确保机密数据安全和开展的计算作业正确完成,同时云服务提供商也需要知道用户对云服务使用情况,以进行收费,并核算在什么样的成本下提供相应服务。
2. 云监控系统
云计算平台中聚合了大量的物力资源和虚拟资源,并提供IaaS、PaaS、SaaS三个层次的服务,其资源是否运行正常、云服务是否对用户按需顺利供给,需要云监控系统进行监控,本节则主要介绍监控系统一般体系结构和数据传输中采取的推拉模式优缺点进行分析。
2.1 体系结构
2.1.1集中式体系结构
在集中式体系结构中,每个监控节点安装监控代理(Agent),收集节点监控信息,监控服务器负责汇集以及分析展示监控信息。监控代理以推送方式向监控服务器发送信息参数,或监控服务器以拉方式向监控节点索要信息。
2.1.2 阶梯式体系结构
阶梯式体系结构中,每个监控节点安装监控代理(Agent),并选定汇集节点,安装资源汇集代理(Proxy),汇集节点相当于局部监控服务器。
2.1.3 结构对比
1) 安装部署:集中式体系结构,安装部署容易,仅需在监控节点统一安装Agent即可,而阶梯式结构则还需确定监控节点所属组域,并在汇集节点安装Collect,阶梯结构若有多级,则还需确定汇集节点的上层汇集节点;
2) 可扩展性:集中式结构中监控服务器负责收集所有监控节点数据并进行数据分析,在网络流量和计算能力限制下,只能适用于数目较小规模监控,而阶梯式结构中汇集节点承担了一部分信息收集整理和计算任务,减轻了监控服务器的负担,所以节点数目较多时可以采取多级阶梯结构,具有较强的扩展性;
3) 容错性:集中式体系结构监控服务器负载重,容易造成灾难性错误,而阶梯式结构则减轻了监控服务器负担,若汇集节点出错,可见错误限制于此所属组域;
4) 延时性:集中式结构延时较小,阶梯式结构监控信息需通过若干层汇集节点的整合分析,延时性较大。
2.2 推拉模式
2.2.1 推模式(PUSH)
由监控节点上的监控代理发起,即监控代理将采集到的本节点的监控数据在通知消息来临时,主动将其发送到监控服务器。
2.2.2 拉模式(PULL)
由监控服务器发起,需要监控服务器主动询问监控代理而获取数据,即需要相应组件主动去采集每个监控节点的性能参数,可以调用驻留在各个监控节点上的代理对象的性能参数获取方法而实现。
2.2.3 对比
数据传输具体选哪种模式,需综合比较实时性、准确性、易用性、可扩展性、开销等,其中实时性指监测的数据和系统实际运行数据的一致程度以及变化时能否及时反映。开销则指完成一次监测信息的交互所需要的消息数据的多少。
2.3 Zabbix监控研究
2.3.1 zabbix简介
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由3部分构成,zabbix server, 可选组件zabbixproxy,可选组件zabbix agent。
Zabbix可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系统之上。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
另外zabbix server还支持SNMP (v1,v2,v3),可以与SNMP软件(例如:net-snmp)等配合使用。
2.3.2 zabbix优点
1)监控系统能够自定义监控内容,可以直接写脚本来收集数据。
2)数据要要保存载数据库中,这样以后需要的时候可以对数据库进行分析计算。
3)能够方便快速度的将监控加入到服务器上,不需要繁琐操作。
4)数据可视化不是很花俏,但是好用。
5)可以定义复杂的报警逻辑,做到Item之间关联报警。
6)报警需要被确认,让运维人员知道那些报警有人知道并开始处理了。
7)报警方式能够自定义
8)报警内容可以自定义
9)报警后可以自动跑一些命令
10)有强大的API可以使用
11)监控数据开放
12)监控可视化的图可以方便的引用!
云监控在整个云安全环节发挥着不可或缺的作用,它可以有效地帮助云服务提供商尽快发现并解决问题。当然,除云监控云以外,还应建立安全的制定数据中心安全事件应急响应机制及流程,实现真正意义上的云安全。在之后,新致云也将会继续邀请技术大牛与大家分享更多与云安全相关的干货,欢迎持续关注!