论文部分内容阅读
云计算技术实现了软硬件资源的共享,极大节省了用户基础设备的购置和管理成本,促使越来越多的企业将应用程序部署在云平台之上。云计算提供按需服务,动态分配资源,造成了应用程序日志的丢失,同时分布式存储的日志也不便于查看和分析。日志信息对于系统的维护和优化具有重要意义,因此,将云平台下应用程序的日志进行统一的收集和管理是非常必要的。针对云计算环境下应用程序日志的特点,本文做了如下的研究工作:(1)云计算根据应用程序的负载变化情况,动态分配计算资源,造成了应用程序日志容易丢失的问题。本文研究和对比了主流的分布式日志收集系统,从中选择Flume对日志进行集中收集管理。(2)各种应用、中间件、系统等每天都会产生大量的日志,这些日志经过日志收集系统聚合之后,形成了海量的日志信息。传统的关系型数据库已经不能很好的面对海量数据的存储需求。本文考察了当前流行的非关系型数据库,重点研究了其中代表性的MongoDB数据库。研究发现,MongoDB无模式的存储方式、简便的集群扩充等特点非常适合作为海量异构日j志的载体。在进一步的研究中发现,MongoDB基于Chunk块的数据均衡策略存在性能严重下降的问题。本文提出基于Chord环的数据均衡策略,依此改造了MongoDB集群,并通过实验验证了改造的有效性。(3)传统的单机日志分析方法面对海量日志时已经力不从心,本文对并行化日志分析方法进行了研究。并行计算模型MapReduce具有简单、适用性强、处理数据规模大等优点,可以满足海量日志的分析需求。最后,基于以上的研究,本文使用Flume、MongoDB和MongoDB自带的MapReduce实现了日志的收集、存储和并行分析,设计并实现了日志管理系统。该系统实现了对日志的集中管理,方便了开发人员和运维人员查看和分析日志信息,充分利用了日志的价值。