文档

使用DLA分析OSS中的事件

更新时间:

通过操作审计创建跟踪,可以持续将事件投递到指定的OSS存储空间中。您可以使用数据湖分析DLA(Data Lake Analytics)可视化地查询和分析OSS存储空间中的事件。

前提条件

背景信息

DLA是一款基于Serverless的交互式数据查询分析服务,能够便捷的对不同格式的数据源进行整合并使用统一SQL查询分析。更多信息,请参见什么是云原生数据湖分析

使用DLA分析OSS中事件的原理如下:

  1. 通过操作审计创建跟踪,将事件持续投递到OSS存储空间。

  2. 将事件从OSS存储空间导入DLA。

  3. DLA将OSS存储空间内以Array形式保存的多条日志记录拆分为多条数据,以JSON保存的每条事件转换为结构化的数据表,使得面向OSS存储空间的数据解析被大大简化,直接实现可视化的标准SQL分析。

DLA

说明

DLA不支持分析SLS中的事件,您可以使用SLS分析功能分析事件。

操作步骤

  1. 在DLA中创建Schema。

    1. 登录数据湖分析管理控制台

    2. 在页面左上角,选择与OSS所在地域一致的DLA地域。

    3. 在左侧导航栏,选择数据湖管理 > 数据入湖

    4. 数据入湖页面,单击更多,然后单击ActionTrail日志清洗右侧的进入向导

    5. ActionTrail日志清洗页面,根据控制台提示进行配置。

      配置项

      说明

      ActionTrail文件根目录

      操作审计投递到OSS中日志数据的存储目录。目录以AliyunLogs/Actiontrail结尾。

      • 选择位置:自定义操作审计投递到OSS中的事件的存储目录。

      • 自动发现:DLA自动设置操作审计投递到OSS中的事件的存储目录。

      Schema名称

      OSS在DLA中的映射数据库名称。

      清洗后数据保存位置

      DLA清洗OSS数据后,将结果数据写入OSS,即数据清洗后的存储位置。

      • 不勾选自定义:DLA默认指定存储位置。

      • 勾选自定义:支持您自定义存储位置。

      数据清洗时间

      DLA每天清洗OSS数据的时间。

      系统默认的数据清洗时间是00:30。您可以根据业务规律,将数据清洗时间设置在业务低峰期,以免清洗过程中对业务造成影响。

    6. 单击创建

  2. 将操作审计投递到OSS存储空间中的日志数据同步到DLA中。

    1. ActionTrail日志清洗页面,单击立即同步

    2. 选择数据湖管理 > 元数据管理,然后单击目标Schema名操作列的库表详情

    3. 元数据管理页面,单击页签查看同步情况。

      关于Schema表结构的更多信息,请参见Schema表结构

  3. 使用标准SQL语法分析操作审计日志数据。

    1. 在左侧导航栏,选择Serverless Presto > SQL执行

    2. 找到待分析的数据库,双击切换到当前数据库。

    3. 输入查询语句,单击同步执行,系统自动生成执行结果

查询案例

查询指定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_type的取值是ApiCall,该字段为API的名称。

  • 如果event_type的取值不是ApiCall,该字段为简单的英文短句,表示事件含义。

event_source

String

ecs.aliyuncs.com

事件来源。

event_time

String

2020-01-09T12:12:14Z

事件的发生时间(UTC格式)。

event_type

String

ApiCall

发生的事件类型。取值:

  • ApiCall:此类事件是最普遍的一类事件。通过userAgent字段可以区分是通过控制台操作还是直接调用API。

  • ConsoleOperation(ConsoleCall):操作审计将此类事件客观封装为控制台行为事件。此类事件的名称并不一定是API名称, 但能够传达基本的行为性质。

  • AliyunServiceEvent:此类事件为阿里云平台对您的资源执行的事件,目前主要是预付费实例的到期自动释放事件。

  • PasswordReset:密码重置事件。

  • ConsoleSignin:控制台登录事件。

  • ConsoleSignout:控制台登出事件。

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请求的客户端代理标识。取值示例:

  • AlibabaCloud (Linux 3.10.0-693.2.2.el7.x86_64;x86_64) Python/2.7.5 Core/2.13.16 python-requests/2.18.3

  • Apache-HttpClient/4.5.7 (Java/1.8.0_152)

user_identity_type

String

ram-user

身份类型。当前支持的身份类型包括:

  • root-account:阿里云账号。

  • ram-user:RAM用户。

  • assumed-role:RAM角色。

  • system:阿里云服务。

  • cloudsso-user:云SSO用户。

  • saml-user:企业自有身份。

  • alibaba-cloud-account:跨阿里云账号授权时被授权的身份。

user_identity_principal_id

String

28815334868278****

当前请求者的ID,需结合user_identity_type来唯一确认请求者身份。

  • 如果user_identity_type取值为root-account,则记录阿里云账号ID。

  • 如果user_identity_type取值为ram-user,则记录RAM用户ID。

  • 如果user_identity_type取值为assumed-role,则记录RoleID:RoleSessionName。

  • 如果user_identity_type取值为cloudsso-user,则记录云SSO用户ID。

  • 如果user_identity_type取值为alibaba-cloud-account

    • 当阿里云账号跨账号操作时,记录阿里云账号ID。

    • 当RAM用户跨账号操作时,记录RAM用户ID。

    • 当扮演角色跨账号操作时,记录RoleID:RoleSessionName。

  • 如果user_identity_type取值为saml-usersystem,不记录user_identity_principal_id

user_identity_account_id

String

112233445566****

当前请求身份所属的阿里云账号ID。

user_identity_accessKey_id

String

55nCtAwmPLkk****

  • 如果请求者通过SDK访问API,则记录该字段。

  • 如果请求者通过控制台登录,则该字段不显示。

  • 如果请求者通过安全令牌进行访问,则记录临时访问密钥ID。

user_name

String

Alice

当前请求者的身份名称。

  • 如果user_identity_type取值为ram-user,则记录RAM用户名。

  • 如果user_identity_type取值为assumed-role,则记录RoleName:RoleSessionName。

  • 如果user_identity_type取值为root-account,userName取值为“root”。

  • 如果user_identity_type取值为cloudsso-user,则记录云SSO用户的用户名。

  • 如果user_identity_type取值为saml-user,则记录企业自有身份的用户名。

  • 如果user_identity_type取值为alibaba-cloud-accountsystem,不记录userName

常见问题

相关文档

OSS访问日志分析

  • 本页导读 (1)
文档反馈