postgres(HGDB)开启告警日志记录功能

来源:互联网 发布:数控机床的数据参数 编辑:程序博客网 时间:2024/06/14 23:30
日志审计 
审计是值记录用户的登陆退出以及登陆后在数据库里的行为操作,可以根据安全等级不一样设置不一样级别的审计, 
此处涉及的参数文件有:
logging_collector      --是否开启日志收集开关,默认off,开启要重启DB
log_destination    --日志记录类型,默认是stderr,只记录错误输出
log_directory      --日志路径,默认是$PGDATA/pg_log
log_filename       --日志名称,默认是postgresql-%Y-%m-%d_%H%M%S.log
log_connections    --用户session登陆时是否写入日志,默认off
log_disconnections --用户session退出时是否写入日志,默认off
log_rotation_age   --保留单个文件的最大时长,默认是1d,也有1h,1min,1s,个人觉得不实用;
                     log_rotation_age   这个不是限制文件的保留期限   是限制文件多长时间生成一个
log_rotation_size  --保留单个文件的最大尺寸,默认是10MB
配置值:
logging_collector = on
log_destination = 'csvlog'
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_connections = on
log_disconnections = on
log_rotation_age = 1d
log_rotation_size = 20MB


$ pg_ctl stop
$ pg_ctl start


[postgres9.6@db data]$ pwd
/home/postgres9.6/data
[postgres9.6@db data]$ ll pg_log
total 4
-rw------- 1 postgres9.6 postgres 303 Feb  9 10:21 postgresql-2017-02-09_101828.log
[postgres9.6@db data]$ 


[postgres9.6@db data]$ cd pg_log
[postgres9.6@db pg_log]$ cat postgresql-2017-02-09_101828.log 
LOG:  database system was shut down at 2017-02-09 10:18:25 CST
LOG:  MultiXact member wraparound protections are now enabled
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started
ERROR:  unrecognized configuration parameter "pg_statement"
STATEMENT:  show pg_statement;

记录用户登陆数据库后的各种操作,postgres日志里分成了3类,通过参数pg_statement来控制,默认的pg_statement参数值是none,即不记录,可以设置ddl(记录create,drop和alter)、mod(记录ddl+insert,delete,update和truncate)和all(mod+select)。 
一般的OLTP系统审计级别设置为ddl就够了,因为记录输出各种SQL对性能的影响还是蛮大的,安全级别高一点的也可以设置mod模式,有条件也可以不在数据库层面做,而是购买设备放在网络层监控解析。


每天生成一个新的日志文件:

log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_truncate_on_totation=off
log_rotation_age = 1d
log_rotation_size = 0


每当日志写满10M大小时,则切换一个日志:
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_truncate_on_totation=off
log_rotation_age = 0
log_rotation_size = 10M


只保留7天的日志,进行循环覆盖:
log_filename = 'postgresql-%a.log'
log_truncate_on_totation=on
log_rotation_age = 1d
log_rotation_size = 0
原创粉丝点击