且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

日志服务(原SLS)新功能发布(4)-- 使用OSS进行日志存储与分析

更新时间:2022-07-06 21:59:29

对于大部分开发者而言,经常会面临这样一种场景:“我知道日志数据很宝贵,但今天没有明确需求,能否有一种成本很低的方案先把日志备份起来,不占用空间。有一天有明确需求时,能够快速、方便分析日志”。

日志服务推出 LogShipper功能就是为了该问题诞生的,LogShipper可以便捷地将日志数据投递到OSS、ODPS等存储类服务,配合EMR(Spark、Hive)等离线计算,以最小成本支撑这类需求。

日志服务(原SLS)新功能发布(4)-- 使用OSS进行日志存储与分析

整体方案

LogShipper是LogHub后续消费者,用以将实时流数据,转化为离线块数据。目前支持OSS、ODPS两种存储。即将会支持OTS(表格存储)、OAS(归档服务)等更多存储服务。

日志服务(原SLS)新功能发布(4)-- 使用OSS进行日志存储与分析

该方案在日志服务中位置:

  • 日志枢纽(LogHub):通过Agent/API实时收集、订阅、消费数据
  • 日志投递(LogShipper):将日志定时归档至存储/计算类服务(ODPS/OSS)
  • 日志查询(LogSearch):提供基于时间、关键词查询用以定位及分析问题

日志服务(原SLS)新功能发布(4)-- 使用OSS进行日志存储与分析

方案优势:

  • 易用:0运维、管理,1分钟完成
  • 0维护:自动重试、稳定、可靠
  • 弹性:扩展,最大支持百TB/天级数据量
  • 成本低:通过压缩+OSS对数据进行最低成本存储,按需通过EMR/ODPS进行最低成本计算

数据产生到通过LogShipper投递时间:

  • OSS:5 分钟
  • ODPS:15-30 分钟,取决于调度任务时间

整个数据生命周期看,比较适合准实时、T+1、以及长时间归档的场景。对于实时性更高的要求,可以通过LogHub接口进行Pull模式流式消费(<3秒),可以参考 stormspark streaming

日志服务(原SLS)新功能发布(4)-- 使用OSS进行日志存储与分析

什么样的场景适合?

  • 对日志暂无明确处理需求,但需要长时间存储。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组合,可轻松应对这类需求

日志服务(原SLS)新功能发布(4)-- 使用OSS进行日志存储与分析

如何使用

  • 阿里云官网:投递日志至OSS