论文部分内容阅读
日志数据是通信网络、Web和各种应用开发不可缺少的角色,其本身包含了许多丰富的信息,也是相关工作人员检索并诊断系统问题的重要参考来源。传统的日志处理方式都是基于单点服务器,扩展性和存储都受到很大的限制。随着大数据相关技术的发展,各种分布式系统规模不断地扩大,各种服务也变得愈加复杂,导致日志数据量在单位时间内呈幂指数增长。同时,日志数据的多源异构性和存储的分散性给日志统一采集、存储、实时处理和深入分析带来了挑战。另一方面,在实际应用中,传统的日志处理方式无法满足对日志的实时处理和深入数据挖掘,并且当前企业对日志数据快速检索和分析响应时间要求越来越高。针对大数据背景下所面临的上述问题,本课题对大数据技术基础理论和分布式架构进行研究,开发了一个基于ElasticSearch和Storm的日志大数据服务平台。本文的主要研究内容如下:(1)结合本课题的研究背景和企业的实际情况来确定平台的功能需求和整体架构,并整合 Flume、Kafka、ElasticSearch、Storm、Zookeeper等大数据技术实现整体架构的集群部署。(2)采用Flume系统将不同源端的日志实时的从Flume Client端收集并传递到Flume Server端,同时改进Agent中的Channel组件。平台测试表明,改进后的Channel组件可以有效的兼容MemoryChannel和FileChannel两者的优点,并支持大规模日志的实时采集。(3)使用Kafka消息队列来完成日志数据的缓存和分发,并在Kafka集群中设置副本分配策略、分配算法和删除策略,实现日志的可靠传输和实时消费。(4)整合Kafka与ElasticSearch以及Kafka和Storm,实现日志数据流的稳定接入。以ElasticSearch作为日志数据的存储中心、搜索引擎,同时支持日志的聚合分析和统计分析。以Storm作为日志数据流的实时处理,完成日志基于规则库的匹配告警。(5)搭建日志数据集的前端可视化管理平台,并使用thrift技术建立应用服务和基础服务之间的数据交互,以便用户的日志检索和分析。在上述研究的基础之上,最终完成了基于ElasticSearch和Storm的日志大数据服务平台的搭建并投入某公司的实际应用中。通过测试和实际应用得出,本平台运行性能稳定,能够有效的完成多源异构日志的快速采集、可靠传输和海量日志存储,并且集成了日志管理、检索、告警和分析等功能,其效果达到了预期的设计理念。