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信息:
select * from __internal_schema.doris_audit_log_tbl__ limit 1;
图1 已执行完成的SQl语句
各字段的介绍请参见表1。
审计日志表字段介绍
字段名称 |
字段类型 |
字段描述 |
---|---|---|
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。 |