通过操作审计创建跟踪,可以持续将事件投递到指定的OSS存储空间中。您可以使用数据湖分析DLA(Data Lake Analytics)可视化地查询和分析OSS存储空间中的事件。
背景信息
DLA是一款基于Serverless的交互式数据查询分析服务,能够便捷的对不同格式的数据源进行整合并使用统一SQL查询分析。更多信息,请参见什么是云原生数据湖分析。
使用DLA分析OSS中事件的原理如下:
- 通过操作审计创建跟踪,将事件持续投递到OSS存储空间。
- 将事件从OSS存储空间导入DLA。
- DLA将OSS存储空间内以Array形式保存的多条日志记录拆分为多条数据,以JSON保存的每条事件转换为结构化的数据表,使得面向OSS存储空间的数据解析被大大简化,直接实现可视化的标准SQL分析。

说明 DLA不支持分析SLS中的事件,您可以使用SLS分析功能分析事件。
操作步骤
- 在DLA中创建Schema。
- 将操作审计投递到OSS存储空间中的日志数据同步到DLA中。
- 使用标准SQL语法分析操作审计日志数据。
- 在左侧导航栏,选择 。
- 找到待分析的数据库,双击切换到当前数据库。
- 输入查询语句,单击同步执行,系统自动生成执行结果。
查询案例
查询指定AccessKey的事件
- 查询语句:
select * from `action_trail` where `user_identity_access_key_id` = '目标AccessKey ID' limit 20;
。 - 查询结果:前20条目标AccessKey ID产生的事件。
查询指定AccessKey访问ECS的事件
- 查询语句:
select * from `action_trail` where `user_identity_access_key_id` = '目标AccessKey ID' AND `service_name` = 'Ecs' limit 20;
。 - 查询结果:前20条目标AccessKey ID访问ECS产生的事件。
Schema表结构
Schema表包含以下关键字段。
名称 | 类型 | 是否必选 | 示例 | 描述 |
---|---|---|---|---|
event_id | String | 是 | F23A3DD5-7842-4EF9-9DA1-3776396A**** | 事件ID。操作审计为每个事件所产生的一个GUID。 |
event_name | String | 是 | CreateNetworkInterface | 事件名称。
|
event_source | String | 是 | ecs.aliyuncs.com | 事件来源。 |
event_time | String | 是 | 2020-01-09T12:12:14Z | 事件的发生时间(UTC格式)。 |
event_type | String | 是 | ApiCall | 发生的事件类型。取值:
|
request_parameters | 字典 | 否 | 不涉及 | API请求的输入参数。 |
response_elements | 字典 | 否 | 不涉及 | API响应的数据。 |
service_name | String | 是 | Ecs | 事件相关的云服务名称。 |
source_ip_address | String | 是 | 11.32.XX.XX | 事件发起的源IP地址。
说明 如果API请求是由用户通过控制台操作触发的,那么该字段记录的是用户浏览器端的IP地址,而不是控制台Web服务器的IP地址。
|
user_agent | String | 是 | Apache-HttpClient/4.5.7 (Java/1.8.0_152) | 发送API请求的客户端代理标识。取值示例:
|
user_identity_type | String | 是 | ram-user | 身份类型。当前支持的身份类型包括:
|
user_identity_principal_id | String | 是 | 28815334868278**** | 当前请求者的ID,需结合user_identity_type来唯一确认请求者身份。
|
user_identity_account_id | String | 是 | 112233445566**** | 当前请求身份所属的阿里云账号ID。 |
user_identity_accessKey_id | String | 否 | 55nCtAwmPLkk**** |
|
user_name | String | 否 | Alice | 当前请求者的身份名称。
|