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 | 本次操作是否被允许,取值如下:
|
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
- 进入SmartData服务。
- 登录阿里云E-MapReduce控制台。
- 在顶部菜单栏处,根据实际情况选择地域和资源组。
- 单击上方的集群管理页签。
- 在集群管理页面,单击相应集群所在行的详情。
- 在左侧导航栏,选择。
- 登录阿里云E-MapReduce控制台。
- 进入
namespace
服务配置。
- 单击配置页签。
- 单击namespace。

配置如下参数。
在namespace页签,单击右上角的自定义配置。
在新增配置项对话框中,新增如下参数。
参数
描述
是否必填
jfs.namespaces.{ns}.auditlog.enable
打开指定namespaces的AuditLog开关,取值如下:
true:打开AuditLog功能。
false:关闭AuditLog功能。
是
namespace.sysinfo.oss.uri
存储AuditLog的OSS Bucket。
请参见oss://<yourbucket>/auditLog格式配置。
<yourbucket>请替换为待存储的Bucket的名称。
是
namespace.sysinfo.oss.access.key
存储OSS的AccessKey ID。
否
namespace.sysinfo.oss.access.secret
存储OSS的AccessKey Secret。
否
namespace.sysinfo.oss.endpoint
存储OSS的Endpoint。
否
单击部署客户端配置。
在执行集群操作对话框中,输入执行原因,单击确定。
在确认对话框中,单击确定。
重启服务。
单击右上角的。
在执行集群操作对话框中,输入执行原因,单击确定。
在确认对话框中,单击确定。
配置清理策略。
OSS提供了lifeCycle功能来管理OSS上文件的生命周期,您可以利用该功能来自定义Log文件的清理或者保存时间。
登录 OSS管理控制台。
单击创建的存储空间。
在左侧导航栏,单击,在生命周期单击设置。
单击创建规则,在创建生命周期规则配置各项参数。
单击确定。
使用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_source和fs_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 partitions audit_log_source;返回信息类似如下。

执行如下查询数据。
select * from audit_log_source limit 10;返回信息类似如下。

select * from audit_log limit 10;返回信息类似如下。

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

