● 摘要
随着互联网的飞速发展,人们的工作、生活越来越多的依赖计算机网络,用户在网络上产生的信息数据源源不断的进入计算机系统,这些数据就像一座待开采的金矿[1],极具商业价值,对海量数据的利用是当前各大互联网公司共同面临的问题。
本论文通过对新浪微博开放平台几千个接口进行分析,为确保其高并发的请求量及服务的稳定性而设计开发了一套日志监控系统。主要包括以下几方面内容:实现生产服务器上数千个接口的日志生成工作;实现对数千台生产服务器上的分布式日志进行收集汇总工作;实现对每天上千亿条的日志监控记录进行高并发处理工作,确保产生的日志被实时快速处理;对实时处理的日志数据进行展示,已满足运维人员能在第一时间发现服务健康状态的变化趋势,及时对生产服务器的硬件、软件、网络、数据库资源等进行提前调整,避免故障的发生。
根据以上所述需求,结合国内外先进的技术方案,采用以下架构实现方案:采用Spring AOP切面编程思想实现数千接口的日志记录,采用Scribe技术对几千台分布式服务器上产生的日志进行实时收集,用Storm技术对实时产生的日志进行高并发快速处理,通过基于B/S架构的日志展示系统进行展示。
如何在不影响整体服务响应时间及成功率的情况下对海量数据进行日志记录及实时处理,如何使Scribe和Storm技术相矛盾的机制规避并使两者融洽配合实现对数据的收集和实时处理,海量数据如何处理,集群如何搭建,日志处理后如何展示,异常结果如何反作用于生产系统,是本文要讨论及解决的几大难点。
系统测试上线后通过对生产服务的实时监控与透明化展示,说明了本论文对当前现状的分析与设计是正确的,当前的日志监控系统确实解决了公司目前最紧迫的需求。