1.修改postgresql.conf

1.1 一般默认在这个目录下

/var/lib/postsql

2.审计清单说明

logging_collector --是否开启日志收集开关,默认off,推荐on

log_destination --日志记录类型,默认是stderr,只记录错误输出,推荐csvlog,

总共包含:stderr, csvlog, syslog, and eventlog

log_directory --日志路径,默认是$PGDATA/pg_log,
log_filename --日志名称,默认是postgresql-%Y-%m-%d_%H%M%S.log
log_file_mode --日志文件类型,默认为0600
log_truncate_on_rotation --默认为off,设置为on的话,文件内容覆盖方式:off后面附加,on:清空再加
log_rotation_age --保留单个文件的最大时长,默认是1d,也有1h,1min,1s
log_rotation_size --保留单个文件的最大尺寸,默认是10MB
log_error_verbosity --默认为default,verbose表示冗长的
log_connections --用户session登陆时是否写入日志,默认off,推荐为on
log_disconnections --用户session退出时是否写入日志,默认off,推荐为on
log_statement --记录用户登陆数据库后的各种操作。总共包含以下几个值

none,表示不记录。

ddl (记录create,drop和alter) 记录所有数据定义命令,比如CREATE,ALTER,和DROP语句。(生产环境)

mod (记录ddl+insert,delete,update和truncate) 记录所有ddl语句,加上数据修改语句INSERT,UPDATE等。

all (mod+select) 记录所有执行的语句,将此配置设置为all可跟踪整个数据库执行的SQL语句,但会对数据库性能产生较大影响,生产环境不建议配置此值。

3.推荐以下配置

logging_collector = on
log_destination = ‘csvlog’
log_truncate_on_rotation = on
log_connections = on
log_disconnections = on
log_error_verbosity = verbose
log_statement = ddl
log_min_duration_statement = 60s
log_checkpoints = on
log_lock_waits = on
deadlock_timeout = 1s
加粗部分是postgresql.conf文件中没有的
4.验证pgsql审计是否开启
进入pgsql命令窗口执行以下
##查看审计规则
show log_statement;
##修改审计日志规则
alter system set log_statement = ddl;
##配置热加载
select pg_reload_conf();
或者pg_ctl触发 sighup信号
pg_ctl reload
##查日志存储路径
show log_directory;
##修改日志路径
alter system set log_directory ='/data/postgresql/log/';

原文链接:

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: