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日不同命令的使用頻次。
