3.1. 日志处理遇到的问题
当前的互联网世界,有着日益庞大且不断增长的用户基数,越来越多的企业意识到,数据才是公司最宝贵的财富。如何建立有效地统计策略,从web日志中挖掘到有用信息,并充分利用之成为亟待解决的难题。
在业务量不太大时,可以在单机上建立一些统计脚本,定时解析日志,并针对各个功能模块建立更多的处理脚本,并配以监控脚本以检测统计产出的稳定性。在此链路中,用户需要维护几十个脚本,每天收到几十封监测邮件。这样的开发方式存在诸多缺点:
- 大量重复的开发
- 统计方法不可靠
- 介入了太多人工操作,耗时费力
- 数据量大时单机无法完成
- 生成复杂的报表需要人工编写,且质量不高
3.2. 日志处理系统可以解决的问题
以上缺点随着业务量的增长会日益凸显,抛开数据量的增长,即使利用hadoop人工编写mr脚本,当统计脚本太多时,作业监控会越加困难,介入的人工越多,产生错误的可能性就越大,报表的生成也会及其复杂。如上这些问题需要一个功能完善的系统,可以简化统计开发流程,完全代替人工,自动化运行并监控。
日志处理系统正是基于以上问题而构建。从普通用户的角度来看,日志处理系统实现了以下功能:
- 统计编辑和管理
- 作业自动运维
- 作业监控
- 日志管理
- 报表管理
- 权限管理
日志处理系统的统计编辑和管理模块可以方便用户在ui界面编写统计程序并手动测试;作业自动运维模块可以定时例行运行作业,不需用户关注;作业监控模块可以自动监控运行作业的状态,包括超时、失败、无效等;日志管理模块将日志源抽象为系统内部的模块,用户只需在编写统计时添加相应的数据源即可自动接入;报表管理模块允许用户通过简单地编辑和加减乘除运算自动生成各类报表并定时发送;权限管理模块以产品线为基本单位,赋予用户不同的角色权限和等级。