CNZZ(www.cnzz.com)是全球最大的中文互联网数据统计分析服务提供商,为中文网站及中小企业提供专业、权威、独立的数据统计与分析服务。目前累计超过500万家网站采用了CNZZ提供的流量统计服务,一周覆盖90%以上的上网用户。

提供给站长7天访问明细日志的查询功能原本基于MongoDB,随着业务量的增加,存储方式在运维和容量上已捉襟见肘,所以在2013年初决定把该功能迁移到SLS上。

CNZZ对于7天访问明细日志需求如下:

数据规模:7天访问明细日志覆盖互联网500万以上的站点,在这些站点中:最大的站点一天约有3亿条数据。所有站点每天约接近百亿条日志写入,总数据量8TB+/天。

查询需求:用户根据时间段、关键词、地理位置、来源等维度,可以快速查询符合站长条件的特定访问,例如根据一个用户名查询IP、省市或访问地址。

延时需求:日志从产生后的1分钟以内要可以被查询到,一次查询延时小于500ms,用户查询一个关键词,能够返回当天所有符合的访问日志。

下面是CNZZ上一个站点的单条日志数据的例子,可以看到时间、来源IP、日志内容。

时间:08-12 20:38:52

来源:10.200.234.25

日志内容:

BROWSER : sogou

CNZZ_USER : ogbzCOVZhSMCAXTnpmEQm1Zl

DOMAIN : www.byzhu.com

……

ISP : 电信

LOCATION : 上海市

……

REMOTEIP : 222.64.69.81

RESOURCE : http://www.byzhu.com/search.asp?

……

SYSTEM : windows 7

cnzz_eid : 34494765-1356261731-http://www.byzhu.com/

id : 30067269

……

根据上述日志内容,举一个查询的例子:站长提交一个查询,从一亿多条日志中找出从湖南省发出、使用ISP电信、通过百度搜索跳转到达的访问日志。 CNZZ在接收到用户的查询条件后,通过SLS API获得结果,并将结果展示到官方网站。

除提供7天的明细查询外,用户往往还需要把日志归档到离线计算平台,进行后续的离线计算。由于SLS本身提供了ODPS的数据通道,CNZZ不需要做任何的配置和操作,就能够每隔一定时间自动把日志数据同步到ODPS进行后续离线计算。

基于SLS不仅解决了CNZZ的运维和容量问题,各种比较、组合的查询条件也满足终端用户对于日志数据的要求,而且在线日志查询与离线日志分析的一体化融合,不再需要重复的数据同步工作。

 

部署架构分享

部署架构解读

由于CNZZ有自己数据通道,没有采用常用通过Logtail收集日志的方法,而是在创建日志项目空间Project、日志类型Category后,通过Restful API进行日志写入与查询。由于每个站点之间相互独立,所以在写入时将站点作为该日志类型的主题(Topic),每隔一定时间和数据大小调用API写入日志。

当调用SLS API写入日志数据后,用户通过CNZZ页面调用API查询最近7天内所有的日志数据;同时由于SLS后台和ODPS已经打通,这些日志数据会每隔一定的周期同步到ODPS的表中,用户可以基于ODPS进行日志分析。

随着业务量的增加,CNZZ面临运维和容量上的问题,SLS使日志数据收集的工作变的简单可靠,集中化日志管理、快速查询、低延时使日志管理能力大大增强。另外,由于在线日志查询与离线日志分析的方案一体化融合,不再需要重复的数据同步工作,让业务发展再无后顾之忧。

 

客户感言

使用SLS可以大规模,实时地进行日志收集与查询工作,主要优点如下:原本需要大量工具,脚本,容易出错的数据收集工作变地简单可靠; 集中式日志化管理,快速查询,低延时使得日志管理能力大大增强;百亿条/天处理能力,再大业务量也不是问题,日志自动回滚不需要担心容量;各种比较,组合的查询条件满足终端用户对于日志数据的要求;在线日志查询与离线日志分析的一体化融合,不再需要重复的数据同步工作;迁移到SLS上后。

借助于SLS这种可扩展、稳定、易用、安全的服务,不仅显著降低了维护的代价,也提升了后续应用开发的效率。