AuditLog使用说明

更新时间:
复制为 MD 格式

Jindo AuditLog提供缓存和Block模式的审计功能,记录Namespace端的增加、删除和重命名操作信息。

前提条件

背景信息

AuditLog可以分析Namespace端访问信息、发现异常请求和追踪错误等。JindoFS AuditLog存储日志文件至OSS,单个Log文件不超过5 GB。基于OSS的生命周期策略,您可以自定义日志文件的保留天数和清理策略等。因为JindoFS AuditLog提供分析功能,所以您可以通过Shell命令分析指定的日志文件。

审计信息

Block模式记录的审计信息参数如下所示。

参数

描述

时间

时间格式yyyy-MM-dd hh:mm:ss.SSS。

allowed

本次操作是否被允许,取值如下:

  • true

  • false

ugi

操作用户(包含认证方式信息)。

ip

Client IP。

ns

Block模式namespace的名称。

cmd

操作命令。

src

源路径。

dest

目标路径,可以为空。

perm

操作文件Permission信息。

审计信息示例。

2020-07-09 18:29:24.689 allowed=true ugi=hadoop (auth:SIMPLE) ip=127.0.0.1 ns=test-block cmd=CreateFileletRequest src=jfs://test-block/test/test.snappy.parquet dst=null perm=::rwxrwxr-x

使用AuditLog

  1. 进入SmartData服务。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
    5. 在左侧导航栏,选择集群服务
  2. 进入 namespace 服务配置。
    1. 单击配置页签。
    2. 单击namespace
      namespace
  3. 配置如下参数。

    1. namespace页签,单击右上角的自定义配置

    2. 新增配置项对话框中,新增如下参数。

      参数

      描述

      是否必填

      jfs.namespaces.{ns}.auditlog.enable

      打开指定namespacesAuditLog开关,取值如下:

      • true:打开AuditLog功能。

      • false:关闭AuditLog功能。

      namespace.sysinfo.oss.uri

      存储AuditLogOSS Bucket。

      请参见oss://<yourbucket>/auditLog格式配置。

      <yourbucket>请替换为待存储的Bucket的名称。

      namespace.sysinfo.oss.access.key

      存储OSSAccessKey ID。

      namespace.sysinfo.oss.access.secret

      存储OSSAccessKey Secret。

      namespace.sysinfo.oss.endpoint

      存储OSSEndpoint。

    3. 单击部署客户端配置

    4. 执行集群操作对话框中,输入执行原因,单击确定

    5. 确认对话框中,单击确定

  4. 重启服务。

    1. 单击右上角的操作 > 重启Jindo Namespace Service

    2. 执行集群操作对话框中,输入执行原因,单击确定

    3. 确认对话框中,单击确定

  5. 配置清理策略。

    OSS提供了lifeCycle功能来管理OSS上文件的生命周期,您可以利用该功能来自定义Log文件的清理或者保存时间。

    1. 登录 OSS管理控制台

    2. 单击创建的存储空间。

    3. 在左侧导航栏,单击基础设置 > 生命周期,在生命周期单击设置

    4. 单击创建规则,在创建生命周期规则配置各项参数。

    5. 单击确定

使用Jindo AuditLog分析功能

JindoFS为存储在OSS上的AuditLog文件提供SQL的分析功能,通过SQL分析相关表,提供Top-N活跃操作命令分析和Top-N活跃IP分析。您可以使用jindo sql命令,使用该功能。

jindo sql使用Spark-SQL语法,内部嵌入了audit_log_source(auditlog原始数据)、audit_log(auditlog清洗后数据)和fs_image(fsimage日志数据)三个表,audit_log_sourcefs_image均为分区表。使用方法如下:

  • jindo sql --help查看支持参数的详细信息。常用参数如下。

    参数

    描述

    -f

    指定运行的SQL文件。

    -i

    启动jindo sql后自动运行初始化SQL脚本。

  • show partitions table_name获取所有分区。

  • desc formatted table_name查看表结构。

因为Jindo sql基于Spark的程序,所以初始资源可能较小,您可以通过环境变量JINDO_SPARK_OPTS来修改初始资源Jindo sql的启动参数,修改示例如下。

 export JINDO_SPARK_OPTS="--conf spark.driver.memory=4G --conf spark.executor.instances=20 --conf spark.executor.cores=5 --conf spark.executor.memory=20G"

示例如下:

  • 执行如下命令显示表。

    show tables;

    show_table

  • 执行如下命令显示分区。

    show partitions audit_log_source;

    返回信息类似如下。show_audit_log_source

  • 执行如下查询数据。

    select * from audit_log_source limit 10;

    返回信息类似如下。audit_log_source

    select * from audit_log limit 10;

    返回信息类似如下。audit_log

  • 执行如下命令统计2020-10-20日不同命令的使用频次。rate