论文部分内容阅读
近年来国内云平台的发展越来越成熟,生活中很多场景都有云平台在背后做支撑。云平台的高度伸缩性和可靠性吸引越来越多的个人以及企业将服务迁移到云平台上运行。云平台上部署了复杂的计算设备、存储设备和网络设备,同时运行了多样的操作系统、虚拟机以及软件服务。保障这些设备与服务的运行正常以及出现故障能及时发现,对维持云平台平稳运行来说?分重要。监控系统在实时检测云平台异常并且掌握云平台整体运行状态中起到了巨大的作用。因此云平台监控系统设计的好坏将直接决定云平台能否给用户提供高质量并且稳定的服务。目前开源市场有很多监控软件供人们免费使用,并且很多个人以及企业都部署了自己的监控系统。但是传统的集群监控系统所采用的系统架构并不能适用于云平台使用场景。通过对主流开源监控系统进行分析,发现它们在监控指标采集的多样性、高并发数据的处理能力、告警判断的实时性、部署配置复杂度等多方面都无法达到云平台的使用要求。本文的主要工作就是设计出一套能适用于云平台的监控系统架构。该架构能够应对云平台高并发的使用场景,并且能够动态的扩容以适应云平台的持续发展。技术分析阶段,本文首先对三款开源监控软件(Zabbix、Ganglia、Nagios)的系统架构、工作原理以及各自优缺点进行了分析,吸取了他们功能模块化以及分布式部署设计思想。然后针对云平台中被监控节点多、监控指标持续高并发上传的特点,分析并将一致性哈希算法引入到系统中来,将数据流负载均衡到后端多台数据节点进行处理。在需求分析阶段,本文深入分析了云平台对监控系统的使用需求,并且将监控系统分成了四大主要模块:数据采集模块、实时报警模块、历史数据存储模块、全局管理模块。在设计实现阶段,数据采集模块实现了云平台场景下免部署自动采集监控指标以及插件扩展指标功能。实时报警模块通过引入Redis以及采用集群部署的方案实现了采集指标实时判断与实时报警通知的功能。历史数据存储模块参考Ganglia使用RRD数据库进行存储,并对采集指标进行从年到分钟不同间隔的归档处理,大大压缩了存储空间,提高数据查找效率。全局管理模块实现了对各个功能模块的统一管理,逻辑清晰使用方便。最终实现了一个适用于云平台场景的服务分布式监控系统。