postgresql 开启审计日志

1、审计清单说明

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    --记录用户登陆数据库后的各种操作

  1. none,即不记录
  2. ddl(记录create,drop和alter)
  3. mod(记录ddl+insert,delete,update和truncate)
  4. all(mod+select)

log_min_duration_statement = 2s   --记录超过2秒的SQL
log_checkpoints = on
log_lock_waits = on
deadlock_timeout = 1s

2、推荐的设置参数

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文件中没有的

查看日志目录和日志文件名:

show log_directory;
show log_filename;

3、参数修改方法

直接修改配置文件

postgresql.conf默认位于$PGDATA目录下。

vi /usr/data/pgsql/data/postgresql.conf

用超级用户运行:postgres=# SELECT pg_reload_conf();

show命令可以查询当前状态

原文地址:https://www.cnblogs.com/tiandi/p/13568675.html