天天看点

最佳实战|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日志审计功能一.功能介绍二.安装三.验证