基于couchbase的全局日志系统设计

发布: 2012-11-13 10:58

web系统的日志记录很重要,但单独设置独立的日志系统很费开发与维护。

导致现有的系统日志记录零散混乱无规则。

对现有的日志记录方式的总结:

×)在本机上记录日志文件

×)记录到关系数据库中,如MySQL

×)临时记录,测试完后删除日志代码


现有的web系统一般都是基于负载均衡的多web前端架构,

这几种方式都有比较大的缺点,很难综合存储处理分析web系统日志。


当前比较好的日志方式:

×)独立的日志系统,为各web系统提供日志记录服务,提供查询

这种方式引入了系统维护与开发复杂度,同时由于处理大量日志,

还需要投入大量硬件资源来满足大量的日志处理。


在现有的无法满足大量独立硬件资源的情况下,在现有的系统基本之上,

使用couchbase来实现全局日志系统,其优点有,

×)不需要新加硬件

×)充分利用web前端空闲的硬盘存储资源

×)不需要新加软件系统

×)实现分布式日志系统

×)效率比较关系型数据库高

×)很容易导出到其他非线上机器实现离线数据处理与分析

×)存储任意结构数据

×)开发维护代价比较低


实现:

×)定义MemModel

×)使用虚拟表结构,

×)定义两个接口,添加日志,删除日志

×)在couchbase创建applog独立桶,合理分配内存资源(128-256M)

×)嵌入到web应用系统


还需要做的工作:

×)查询接口/工具

×)清理/导出机制/工具

×)Map/Reduce处理/分析工具


这种日志系统设计,是在现有的软件、硬件资源条件下的一个很好的折中方案。

能帮助开发人员开发稳定高效的系统,提供更多系统的维护信息,

提高故障的处理效率,提早发现系统可能潜在的问题。




原文: http://qtchina.tk/?q=node/695

Powered by zexport