对于大部分开发者而言,经常会面临这样一种场景:“我知道日志数据很宝贵,但今天没有明确需求,能否有一种成本很低的方案先把日志备份起来,不占用空间。有一天有明确需求时,能够快速、方便分析日志”。
日志服务推出 LogShipper功能就是为了该问题诞生的,LogShipper可以便捷地将日志数据投递到OSS、ODPS等存储类服务,配合EMR(Spark、Hive)等离线计算,以最小成本支撑这类需求。
整体方案
LogShipper是LogHub后续消费者,用以将实时流数据,转化为离线块数据。目前支持OSS、ODPS两种存储。即将会支持OTS(表格存储)、OAS(归档服务)等更多存储服务。
该方案在日志服务中位置:
- 日志枢纽(LogHub):通过Agent/API实时收集、订阅、消费数据
- 日志投递(LogShipper):将日志定时归档至存储/计算类服务(ODPS/OSS)
- 日志查询(LogSearch):提供基于时间、关键词查询用以定位及分析问题
方案优势:
- 易用:0运维、管理,1分钟完成
- 0维护:自动重试、稳定、可靠
- 弹性:扩展,最大支持百TB/天级数据量
- 成本低:通过压缩+OSS对数据进行最低成本存储,按需通过EMR/ODPS进行最低成本计算
数据产生到通过LogShipper投递时间:
- OSS:5 分钟
- ODPS:15-30 分钟,取决于调度任务时间
整个数据生命周期看,比较适合准实时、T+1、以及长时间归档的场景。对于实时性更高的要求,可以通过LogHub接口进行Pull模式流式消费(<3秒),可以参考 storm、spark streaming
什么样的场景适合?
- 对日志暂无明确处理需求,但需要长时间存储。OSS是目前单价最便宜的存储服务,并且价格在持续优化
- 通过开源软件EMR (Spark,MapReduce)、或ODPS处理OSS日志的用户
- 分析类计算场景不多,主要目标是存储的用户
场景1:日志审计
小A维护了一个论坛,需要对论坛所有访问日志进行审计和离线分析
- 社会部门需要小A配合记录最近180天内用户访问情况,在有需求时,提供某个时间段的访问日志
- 运营同学在每个季度需要对日志出一份访问报表
小A使用日志服务(LOG)收集服务器上日志数据,并且打开了日志投递(LogShipper)功能,日志服务就会自动完成日志收集、投递、以及压缩。有审查需要时,可以将该时间段日志授权给第三方。需要离线分析时,利用EMR跑一个30分钟离线任务,用最少的成本办了两件事情。
场景2:日志分析
小B是一个开源软件爱好者,喜欢利用Spark进行数据分析,他的需求如下:
- 移动端通过API收集日志
- 通过Spark Streaming对日志进行实时分析,统计线上用户访问
- 通过Hive进行T+1离线分析
- 将日志数据开放给下游代理商,进行其他维度分析
通过今天LOG+OSS+EMR+RAM组合,可轻松应对这类需求
如何使用
- 阿里云官网:投递日志至OSS