AWS Athena 分析日志

网友投稿 236 2022-10-14

AWS Athena 分析日志

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

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

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

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

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

然后选择 Athena

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

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

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

CREATE EXTERNAL TABLE cloudtrail_logs ( eventversion STRING, useridentity STRUCT< type:STRING, principalid:STRING, arn:STRING, accountid:STRING, invokedby:STRING, accesskeyid:STRING, userName:STRING, sessioncontext:STRUCT< attributes:STRUCT< mfaauthenticated:STRING, creationdate:STRING>, sessionissuer:STRUCT< type:STRING, principalId:STRING, arn:STRING, accountId:STRING, userName:STRING>>>, eventtime STRING, eventsource STRING, eventname STRING, awsregion STRING, sourceipaddress STRING, useragent STRING, errorcode STRING, errormessage STRING, requestparameters STRING, responseelements STRING, additionaleventdata STRING, requestid STRING, eventid STRING, resources ARRAY>, eventtype STRING, apiversion STRING, readonly STRING, recipientaccountid STRING, serviceeventdetails STRING, sharedeventid STRING, vpcendpointid STRING ) ROW FORMAT SERDE 'com.amazon.emr.hive.serde.CloudTrailSerde' STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://mycloudtrailbucket-faye/AWSLogs/757250003982/';

创建表成功的样子

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java 超详细讲解抽象类与接口的使用
下一篇:Kubernetes集群监控详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~