论文部分内容阅读
记录日志在当前互联网服务中扮演了重要的角色,成为了不可忽视的重要组成部分。无论是在软件的开发阶段,还是在软件的运行阶段,打印日志都能起到很大的作用。通过查看日志,开发人员能了解系统正在运行的情况,进而定位和诊断有疑问的地方;运营人员通过收集日志,能了解到业务的运营状况,用户数量,增长趋势,使用习惯。随着互联网规模的不断扩大,用户量的增加,单机服务由于自身的限制,已经不能满足现有的需要,服务在往分布式方向发展。而在当前分布式环境中,记录日志成为了一个需要重新审视的问题:服务分布在多台机器上、日志收集不便、数据量增长快,本地存储空间有限。如何支持快速、简便同时保证数据安全地收集大数据量的日志成为了值得研究及具有商业价值的课题。本文全面地分析了分布式环境下通用日志系统的功能性需求,包含了记录、查询、管理等,同时也对系统的性能及安全性提出了一定的要求。具体的工作主要有①在分布式环境下日志系统的搭建。客户端从配置中心获取服务器信息,将本地数据处理后交由服务器进行处理。②高性能服务端实现。服务端负责将数据存入到数据库中,由接口层与存储层的两部分组成。考虑到写数据库的速度较慢,为了提高并发能力,减缓接口层的压力,接口只负责获取日志内容,并转存到共享内存。存储层负责存储数据。考虑到性能及易用性,数据库采用了MySQL,并且使用了Infobright引擎来提供高效的查询性能。③通用日志系统的设计与实现。通过定义好接口与代理的交互协议,大多数语言可以很容易的开发出相应的接口代码,从而接入到本系统中,进行工作。④高性能客户端的设计与实现。客户端分为瘦接口部分及富代理部分。接口仅仅负责将日志存入到共享内存当中,剩下的写本地日志、发送到服务端都由富代理来执行。⑤查询系统的搭建。查询系统以网页的形式提供服务,通过Bootstrap、jQuery及大量辅助型插件,查询系统提供了简洁、易用、用户友好的界面,供用户使用。并且在开发过程中,通过收集用户意见,不断迭代,更加照顾用户的使用习惯。整个系统经过一定的功能测试和性能测试,确定系统在基本满足用户需求的情况下,在性能上对用户的影响做到最小。整个系统可投入实际使用和运行。