1. 程式人生 > >AWS Athena 分析日誌

AWS Athena 分析日誌

AWS裡面可以用Athena來分析S3裡面儲存的日誌,他把日誌轉換成資料庫表的格式,這樣就可以通過sql語句進行查詢了。這個功能和在windows伺服器上用logparser來分析Exchange或者IIS的日誌很相似。

下面做個演示,通過Cloudtrail記錄管理日誌,然後通過Athena來查詢日誌內容。

首先選擇CloudTrail, CloudTrail 是一個日誌記錄的服務,他和cloudwatch的區別在於這個服務更多是側重於審計,他的內容都是關於什麼時候,什麼賬號,從什麼IP上進行了什麼操作。

AWS Athena 分析日誌

點選 Create Trail

AWS Athena 分析日誌

取個名字, 建立一個新的S3 bucket來儲存日誌

AWS Athena 分析日誌

建立好之後可以看見他自動已經在記錄最新的日誌了

AWS Athena 分析日誌

然後選擇 Athena

AWS Athena 分析日誌

跳過嚮導,直接進入查詢器的編輯器,這裡是編輯SQL語句的地方。這裡我直接建立一個的資料庫

AWS Athena 分析日誌

下面來建立一個表,從指定的S3 Bucket裡面獲取資料。
我們可以通過嚮導建立,但是比較繁瑣

AWS Athena 分析日誌

比較容易的是通過指令碼建立,注意最後一行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<STRUCT<
               ARN:STRING,
               accountId:STRING,
               type:STRING>>,
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/';

AWS Athena 分析日誌

建立表成功的樣子

AWS Athena 分析日誌

下面我們可以進行一個簡單的查詢,結果如下。

AWS Athena 分析日誌