通过 AuditLoader 管理 StarRocks 中的审计日志
本文档介绍如何通过插件 AuditLoader 在 StarRocks 内部管理审计日志。
在 StarRocks 中,所有的审计信息仅存储在日志文件 fe/log/fe.audit.log 中,无法直接通过 StarRocks 进行访问。AuditLoader 插件可实现审计信息的入库,让您在 StarRocks 内方便的通过 SQL 进行集群审计信息的查看和管理。安装 AuditLoader 插件后,StarRocks 在执行 SQL 后会自动调用 AuditLoader 插件收集 SQL 的审计信息,然后将审计信息在内存中攒批,最后基于 Stream Load 的方式导入至 StarRocks 表中。
创建审计日志库表
在 StarRocks 集群中为审计日志创建数据库和表。详细操作说明参阅 CREATE DATABASE 和 CREATE TABLE。
注意
- 请勿更改示例中的表属性,否则将导致日志导入失败。
- StarRocks 各个大版本的审计日志字段个数存在差异,为保证版本通用性,新版本的审计插件选取了各大版本中通用的日志字段进行入库。若业务中需要更完整的字段,可替换工程中的
fe-plugins-auditloader\lib\starrocks-fe.jar
,同时修改代码中与字段相关的内容后重新编译打包。
CREATE DATABASE starrocks_audit_db__;
CREATE TABLE starrocks_audit_db__.starrocks_audit_tbl__ (
`queryId` VARCHAR(64) COMMENT "查询的唯一ID",
`timestamp` DATETIME NOT NULL COMMENT "查询开始时间",
`queryType` VARCHAR(12) COMMENT "查询类型(query, slow_query, connection)",
`clientIp` VARCHAR(32) COMMENT "客户端IP",
`user` VARCHAR(64) COMMENT "查询用户名",
`authorizedUser` VARCHAR(64) COMMENT "用户唯一标识,既user_identity",
`resourceGroup` VARCHAR(64) COMMENT "资源组名",
`catalog` VARCHAR(32) COMMENT "Catalog名",
`db` VARCHAR(96) COMMENT "查询所在数据库",
`state` VARCHAR(8) COMMENT "查询状态(EOF,ERR,OK)",
`errorCode` VARCHAR(512) COMMENT "