传统的审计日志,通常只记录下用户的执行语句、时间点、具体用户、访问源。而考虑到持续优化的运维需求,Hubble的审计日志除了传统内容外,还增加了许多对资源及实际任务执行状态的信息,当然这些信息都是查询任务完成后信息。用户需要考虑到审计日志功能,都会对master节点的cpu与内存增加消耗,但考虑到审计日志的信息对于用户的持续优化是长期有益的,并且分析场景并不需要对毫秒级的性能损耗过渡顾虑,建议性能损耗可控的前提下将其开启。
默认的审计日志配置文件为conf目录下的event-listener.properties,也可以在conf/hubble-site.xml中配置指定审计日志配置文件。
<property> <name>event-listener.config-files</name> <value>/data/hubble-5.4.1/conf/audit-log.properties</value> </property>
具体配置内容如下:
event-listener.name=audit-log
# 审计日志文件输出的绝对路径(请不要使用相对路径)
audit-log.path=/data/hubble-5.4.1/logs/audit
# 审计日志限制最大文件size,默认为100MB,当日志大小超过限制后,将会自动将其gz压缩保留在同路径下
audit-log.max-size=64MB
# 审计最多保留文件个数,默认为30
audit-log.max-history=60
# 审计日志监听策略文件,支持对用户,SQL操作类型和表名进行规则配置
file.audit-file=/data/hubble-server-5.4.1/conf/audit_rule.properties
# 审计日志策略的动态刷新时间
file.refresh-period=5s
审计策略文件配置
# 监听的用户,多个用户使用逗号隔开
audit-log.users=abc,sky
# 监听的全限定表名,多个表名使用逗号隔开
audit-log.tables=hubble.db_test.student,hubble.db_test.account
# 监听的SQL操作类型,多个操作类型使用逗号隔开
# 操作类型:SELECT|EXPLAIN|DESCRIBE|INSERT|UPDATE|DELETE|ANALYZE|DATA_DEFINITION|ALTER_TABLE_EXECUTE|MERGE
audit-log.optType=insert,select