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

本文介绍PostgreSQL数据库的日志审计配置方法,包括如何开启日志收集、设置日志记录类型及路径等关键参数。此外,还介绍了如何根据不同需求调整日志文件的生成周期和大小限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

日志审计 
审计是值记录用户的登陆退出以及登陆后在数据库里的行为操作,可以根据安全等级不一样设置不一样级别的审计, 
此处涉及的参数文件有:
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值