天天看點

最佳實戰|Apache Doris SQL日志審計功能一.功能介紹二.安裝三.驗證

一.功能介紹

          SQL日志審計是一個可插拔的插件,旨在将logs/fe.audit.log中的sql查詢資訊記錄到doris叢集中,友善使用者對sql進行分析。

二.安裝

  1)編譯

在doris源碼目錄下,執行 

sh build_plugin.sh
           

編譯完成後會在

fe_plugins/output

目錄下得到

auditloader.zip

檔案。

登入到doris用戶端,執行

INSTALL PLUGIN FROM "/opt/doris/auditloader.zip";
(可解除安裝: SHOW PLUGINS; UNINSTALL PLUGIN AuditLoader;)
           

此時,你會發現 fe/plugins 目錄下會有安裝成功的檔案。

   2)配置檔案以及建表

      vim   /opt/doris/fe/plugins/AuditLoader

# 批量的最大大小,預設為 50MB
 max_batch_size=52428800
 
 # 批量加載的最大間隔,預設為 60 秒
 max_batch_interval_sec=60
 
 # 加載審計的 Doris FE 主機,預設為 127.0.0.1:8030。
 # 這應該是Stream load 的主機端口
 frontend_host_port=127.0.0.1:8030
 
 # 審計表的資料庫
 database=doris_audit_db__
 
 # 審計表名,儲存審計資料
 table=doris_audit_tbl__
 
 # 用來連接配接doris的使用者. 此使用者必須對審計表具有 LOAD_PRIV 權限.
 user=root
 
 # 用來連接配接doris的使用者密碼
 password=
           

   建庫建表

create database doris_audit_db__;

use doris_audit_db__;

create table doris_audit_tbl__
 (
    query_id varchar(48) comment "查詢唯一ID",
    time datetime not null comment "查詢開始時間",
    client_ip varchar(32) comment "查詢用戶端IP",
    user varchar(64) comment "查詢使用者名",
    db varchar(96) comment "查詢的資料庫",
    state varchar(8) comment "查詢狀态:EOF, ERR, OK",
    query_time bigint comment "查詢執行時間(毫秒)",
    scan_bytes bigint comment "查詢掃描的位元組數",
    scan_rows bigint comment "查詢掃描的記錄行數",
    return_rows bigint comment "查詢傳回的結果記錄數",
    stmt_id int comment "SQL語句的增量ID",
    is_query tinyint comment "這個是否是查詢:1 or 0",
    frontend_ip varchar(32) comment "執行這個語句的FE IP",
    stmt varchar(65535) comment "原始語句,如果超過 5000 位元組,則進行修剪"
 ) engine=OLAP
 duplicate key(query_id, time, client_ip)
 partition by range(time) ()
 distributed by hash(query_id) buckets 1
 properties(
     "dynamic_partition.time_unit" = "DAY",
     "dynamic_partition.start" = "-30",
     "dynamic_partition.end" = "3",
     "dynamic_partition.prefix" = "p",
     "dynamic_partition.buckets" = "1",
     "dynamic_partition.enable" = "true",
     "replication_num" = "3"
 );
           

 審計日志預設保留30天("dynamic_partition.start" = "-30")

三.驗證

        重新開機doris,在表中即可發現審計資料。

最佳實戰|Apache Doris SQL日志審計功能一.功能介紹二.安裝三.驗證