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/';
原文链接:
评论可见,请评论后查看内容,谢谢!!!
发表评论