Doris支持审计日志表功能
Doris审计日志表功能支持将FE的审计日志定期通过Stream Load导入到指定的Doris表中,方便用户直接通过执行SQL语句对审计日志进行查看和分析,无需再通过查看FE的审计日志文件去统计并分析业务量、业务类型等。Doris审计日志表功能默认是关闭的,可通过参数“enable_audit_log_table”开启该功能。
该功能仅适用于MRS 3.5.0及之后版本。

- 当前审计日志表功能中未记录Broker Load、Export、Stream Load等操作,需要在审计日志文件中进行查看。
- 如果需要记录Stream Load操作到审计日志表中,需要设置BE参数“enable_stream_load_record”的值为“true”。
- 当前审计日志表仅记录已经运行完成的SQL信息。
- 审计日志表的最大写入间隔默认为60秒,每批次最大写入数据量默认为50MB,可通过参数“max_batch_interval_sec”和“max_batch_size”进行调整。
开启Doris审计日志表功能
- 登录FusionInsight Manager,选择“集群 > 服务 > Doris > 配置 > 全部配置 > FE(角色) > 日志”,修改“enable_audit_log_table”参数的值为“true”。
- 单击“保存”,单击“确定”保存配置。
- 单击“实例”,勾选受影响的FE实例,选择“更多 > 重启实例”,输入当前用户密码并单击“确定”,重启FE实例使配置生效。
- 在MySQL客户端连接Doris后(详细操作请参见快速使用Doris),执行以下命令即可查看Doris已执行完成的SQL信息:
MRS 3.5.0版本:
select * from __internal_schema.doris_audit_log_tbl__ limit 1;
图1 已执行完成的SQL语句
MRS 3.6.0-LTS及之后版本:
select * from __internal_schema.audit_log limit 1;
各字段的介绍请参见表1。
MRS 3.6.0-LTS及之后版本,审计日志表里保存的业务SQL默认长度为4096,可执行以下命令查看:
show variables like "%audit_plugin_max_sql_length%";
+-----------------------------+-------+---------------+---------+ | Variable_name | Value | Default_Value | Changed | +-----------------------------+-------+---------------+---------+ | audit_plugin_max_sql_length | 4096 | 4096 | 0 | +-----------------------------+-------+---------------+---------+ 1 row in set (0.00 sec)
也可执行以下命令根据实际需求修改“audit_plugin_max_sql_length”的值:
set global audit_plugin_max_sql_length =1024;
审计日志表字段介绍
字段名称 | 字段类型 | 字段描述 |
|---|---|---|
query_id | varchar(48) | 查询任务的ID。 |
time | datetime | 查询开始时间。 |
client_ip | varchar(200) | 客户端的IP地址和端口号。 |
user | varchar(64) | 执行查询语句的用户名。 |
catalog | varchar(128) | 查询所属的Catalog名称。 |
db | varchar(96) | 查询所属的数据库名称。 |
state | varchar(8) | 查询结果状态。 |
error_code | int | 查询失败时的错误码。 |
error_message | string | 查询失败时的错误信息。 |
query_time | bigint | 查询执行时间,单位为ms。 |
scan_bytes | bigint | 查询总共扫描的字节数。 |
scan_rows | bigint | 查询总共扫描的行数。 |
return_rows | bigint | 查询结果返回的行数。 |
stmt_id | int | 自增ID。 |
is_query | tinyint | 是否为查询语句。
|
frontend_ip | varchar(200) | 执行查询的FE的IP地址。 |
cpu_time_ms | bigint | 查询总共消耗的CPU时间。 |
sql_hash | varchar(48) | 查询的HASH值。 |
sql_digest | varchar(48) | SQL摘要,非慢查询时为空。 |
peak_memory_bytes | bigint | 所有BE节点使用的内存峰值,单位为字节。 |
stmt | string | 具体执行的SQL语句信息。 |
reserve1 | string | 保留字段1。 |
reserve2 | string | 保留字段2。 |

