更新时间:2024-12-11 GMT+08:00

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审计日志表功能

  1. 登录FusionInsight Manager,选择“集群 > 服务 > Doris > 配置 > 全部配置 > FE(角色) > 日志”,修改“enable_audit_log_table”参数的值为“true”。
  2. 单击“保存”,单击“确定”保存配置。
  3. 单击“实例”,勾选受影响的FE实例,选择“更多 > 重启实例”,输入当前用户密码并单击“确定”,重启FE实例使配置生效。
  4. 在MySQL客户端连接Doris后(详细操作请参见快速使用Doris),执行以下命令即可查看Doris已执行完成的SQL信息:

    select * from __internal_schema.doris_audit_log_tbl__ limit 1;

    图1 已执行完成的SQl语句

    各字段的介绍请参见表1

审计日志表字段介绍

表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

是否为查询语句。

  • 1:表示是查询语句。
  • 0:表示不是查询语句。

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。