AuditLog使用說明

更新時間:
Copy as 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