阅读887 返回首页    go 阿里云


处理-实现ActionTrail__最佳实践_日志服务-阿里云

Action Trail是一款用于记录用户账号各类API调用操作的产品。 Action Trail记录了每次API调用的重要信息,如操作者、操作时间、对象、动作类型、来源等详尽的信息,这些调用记录,可以精确追踪、还原用户行为,对于安全分析,资源变更追查,合规审查有非常重要的作用。

Action Trail需要考虑的问题

Action Trail这样一款有价值的产品是如何实现的,有哪些问题需要考虑?

  • 首先,由于各类API调用的日志分散在各处,怎么去收集散落在各地的日志呢?

  • 之后,各应用的行为不尽相同,日志内容、格式也比如有区别,如何提供一个统一的方式来处理差异的日志?

  • 最后,对于用户来说,如何能够方便地获取Action Trail提供的调用日志,来进行后续的追踪、分析呢?

Action Trail架构

在清楚了Action Trail的问题和处理流程之后,我们看看ActionTrail是如何实现的。下面是Action Trail的框架

Action Trail如何解决这些问题

对于第一个问题, Action Trail自己去解析应用记录在本地的日志显然成本太高,这要求Action Trail完全理解应用日志格式,并侵入应用机器,耦合度实在是太高,那有没有一个更好的方式来处理呢?

其实,基于日志服务,就能很容易解决这个问题。 应用的日志,应用最熟悉,应用各自通过logtail,将每条日志解析成key:value这样半结构化形式,上传至日志服务应用各自的Project,再通过RAM授权Action Trail读取这部分日志。只要事先约定Action Trail需要的key, Action Trail就可以直接从日志服务消费各应用的API调用日志了。

由于日志格式是半结构化的,Action Trail可以使用同样的方式来处理、分析,那第二个问题也解决了。Action Trail实时地从日志服务中抓取各应用的日志,提取必要的字段,并将剩余的字段统一打包在一起。清洗完毕的数据,Action Trail也记录在本地,通过logtail实时上传至日志服务中Action Trail的Project中。

下图就是经过清洗处理后的一条日志,该日志记录了一个用户在17:53的时候重启了一个虚拟机。

最后,如果将Action Trail处理后的日志交到用户,让用户方便地处理呢?放到用户的Oss bucket中是一个不错的选择。Action Trail定期从日志服务中批量读取处理后的日志,根据用户账号和应用类型进行分类,上传至用户授权的bucket中,这样用户就可以直接从自己的oss bucket中读取这部分日志了。

最后更新:2016-11-24 11:23:47

  上一篇:go 处理-数据清洗/ETL__最佳实践_日志服务-阿里云
  下一篇:go 处理-搭建监控系统__最佳实践_日志服务-阿里云