AWS雅典娜分析日志

  

AWS里面可以用雅典娜来分析S3里面保存的日志,他把日志转换成数据库表的格式,这样就可以通过sql语句进行查询了。这个功能和在windows服务器上用来用logparser实时分析交换或者IIS的日志很相似。

  

下面做个演示,通过Cloudtrail记录管理日志,然后通过雅典娜来查询日志内容。

  

首先选择CloudTrail, CloudTrail是一个日志记录的服务,他和监测的区别在于这个服务更多是侧重于审计,他的内容都是关于什么时候,什么账号,从什么IP上进行了什么操作。

  

 AWS雅典娜分析日志

  

点击创建小道

  

 AWS雅典娜分析日志

  

取个名字,创建一个新的S3 bucket来保存日志

  

 AWS雅典娜分析日志

  

创建好之后可以看见他自动已经在记录最新的日志了

  

 AWS雅典娜分析日志

  

然后选择雅典娜

  

 AWS雅典娜分析日志

  

跳过向导,直接进入查询器的编辑器,这里是编辑SQL语句的地方。这里我直接创建一个的数据库

  

 AWS雅典娜分析日志

  

下面来创建一个表,从指定的S3 Bucket里面获取数据。
我们可以通过向导创建,但是比较繁琐

  

 AWS雅典娜分析日志

  

比较容易的是通过脚本创建,注意最后一行S3存储桶的地址

  
 <代码>创建外部表cloudtrail_logs (
  eventversion字符串,
  useridentity STRUCT<类型:字符串,
  principalid:字符串,
  攻击:字符串,
  accountid:字符串,
  invokedby:字符串,
  accesskeyid:字符串,
  用户名:字符串,
  sessioncontext: STRUCT<属性:STRUCT
  sessionissuer: STRUCT<类型:字符串,
  principalId:字符串,
  攻击:字符串,
  accountId:字符串,
  用户名:STRING>祝辞,
  eventtime字符串,
  eventsource字符串,
  eventname字符串,
  awsregion字符串,
  sourceipaddress字符串,
  useragent字符串,
  错误代码字符串,
  errormessage字符串,
  requestparameters字符串,
  responseelements字符串,
  additionaleventdata字符串,
  requestid字符串,
  eventid字符串,
  资源ARRAY祝辞,
  eventtype字符串,
  apiversion字符串,
  只读的字符串,
  recipientaccountid字符串,
  serviceeventdetails字符串,
  sharedeventid字符串,
  vpcendpointid字符串
  )
  行格式SERDE com.amazon.emr.hive.serde.CloudTrailSerde”
  存储为INPUTFORMAT com.amazon.emr.cloudtrail.CloudTrailInputFormat”
  OUTPUTFORMAT org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat”
  位置的s3://mycloudtrailbucket-faye/AWSLogs/757250003982/';  
  

 AWS雅典娜分析日志

  

创建表成功的样子

  

 AWS雅典娜分析日志

  

下面我们可以进行一个简单的查询,结果如下。

  

 AWS雅典娜分析日志

AWS雅典娜分析日志