PG安装完成后默认不会记录日志,必须修改对应的(${PGDATA}/postgresql.conf)配置才可以,这里只介绍常用的日志配置。

1.logging_collector = on/off  ----  是否将日志重定向至文件中,默认是off(该配置修改后,需要重启DB服务)

DB安装完成,启动的服务进程如下

[root@localhost ~]# ps -elf | grep postgres
S postgres - poll_s : ? :: /opt/pg9./bin/postgres -D /mnt/pgdata
S postgres - ep_pol : ? :: postgres: checkpointer process
S postgres - ep_pol : ? :: postgres: writer process
S postgres - ep_pol : ? :: postgres: wal writer process
S postgres - ep_pol : ? :: postgres: autovacuum launcher process
S postgres - ep_pol : ? :: postgres: stats collector process

将此配置修改为on,并重启DB服务,DB启动过程中会提示将日志重定向${PGDATA}/pg_log中。

[root@localhost ~]# su -l postgres -c '/opt/pg9.6/bin/pg_ctl -D /mnt/pgdata start'
server starting
LOG: redirecting log output to logging collector process
HINT: Future log output will appear in directory "pg_log".

此时在运行的进程如下,与之前相比,多了一个logger进程。

[root@localhost ~]# ps -elf | grep postgres
S postgres - poll_s : ? :: /opt/pg9./bin/postgres -D /mnt/pgdata
S postgres - ep_pol : ? :: postgres: logger process
S postgres - ep_pol : ? :: postgres: checkpointer process
S postgres - ep_pol : ? :: postgres: writer process
S postgres - ep_pol : ? :: postgres: wal writer process
S postgres - ep_pol : ? :: postgres: autovacuum launcher process
S postgres - ep_pol : ? :: postgres: stats collector process

以下配置修改不需要重启服务,只需重载配置

[root@localhost ~]# su -l postgres -c '/opt/pg9.6/bin/pg_ctl -D /mnt/pgdata reload'

2.log_directory = 'pg_log' ---- 日志文件目录,默认是${PGDATA}的相对路径,即${PGDATA}/pg_log,也可以改为绝对路径

默认为${PGDATA}/pg_log,即集群目录下,但是日志文件可能会非常多,建议将日志重定向到其他目录或分区。

将此配置修改为/var/log/pg_log下,必须先创建此目录,并修改权限,如

[root@localhost ~]# mkdir -p /var/log/pg_log
[root@localhost ~]# chown postgres:postgres /var/log/pg_log/
[root@localhost ~]# chmod /var/log/pg_log/

重启DB服务后,日志将重定向至/var/log/pg_log下

[root@localhost ~]# su -l postgres -c '/opt/pg9.6/bin/pg_ctl -D /mnt/pgdata start'
server starting
LOG: redirecting log output to logging collector process
HINT: Future log output will appear in directory "/var/log/pg_log". [root@localhost ~]# ls /var/log/pg_log/
postgresql---18_130611.log

3.log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' ---- 日志文件命名形式,使用默认即可

4. log_rotation_age = 1d ----  单个日志文件的生存期,默认1天,在日志文件大小没有达到log_rotation_size时,一天只生成一个日志文件

5. log_rotation_size = 10MB  ---- 单个日志文件的大小,如果时间没有超过log_rotation_age,一个日志文件最大只能到10M,否则将新生成一个日志文件。

6.log_truncate_on_rotation = off ---- 当日志文件已存在时,该配置如果为off,新生成的日志将在文件尾部追加,如果为on,则会覆盖原来的日志。

7.log_lock_waits = off ---- 控制当一个会话等待时间超过deadlock_timeout而被锁时是否产生一个日志信息。在判断一个锁等待是否会影响性能时是有用的,缺省是off。

8.log_statement = 'none' # none, ddl, mod, all ---- 控制记录哪些SQL语句。none不记录,ddl记录所有数据定义命令,比如CREATE,ALTER,和DROP 语句。mod记录所有ddl语句,加上数据修改语句INSERT,UPDATE等,all记录所有执行的语句,将此配置设置为all可跟踪整个数据库执行的SQL语句。

9.log_duration = off ---- 记录每条SQL语句执行完成消耗的时间,将此配置设置为on,用于统计哪些SQL语句耗时较长。

10.log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements and their durations, > 0 logs only statements running at least this number of milliseconds

-1表示不可用,0将记录所有SQL语句和它们的耗时,>0只记录那些耗时超过(或等于)这个值(ms)的SQL语句。个人更喜欢使用该配置来跟踪那些耗时较长,可能存在性能问题的SQL语句。虽然使用log_statement和log_duration也能够统计SQL语句及耗时,但是SQL语句和耗时统计结果可能相差很多行,或在不同的文件中,但是log_min_duration_statement会将SQL语句和耗时在同一行记录,更方便阅读。

11.log_connections = off ----是否记录连接日志

12.log_disconnections = off ---- 是否记录连接断开日志

13.log_line_prefix = '%m %p %u %d %r ' ---- 日志输出格式(%m,%p实际意义配置文件中有解释),可根据自己需要设置(能够记录时间,用户名称,数据库名称,客户端IP和端口,方便定位问题)

14.log_timezone = 'Asia/Shanghai' ---- 日志时区,最好和服务器设置同一个时区,方便问题定位

服务器时区设置

[root@localhost ~]# cp -rf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

Postgresql日志收集的更多相关文章

  1. Postgresql 日志收集

    PG安装完成后默认不会记录日志,必须修改对应的(${PGDATA}/postgresql.conf)配置才可以,这里只介绍常用的日志配置. 1.logging_collector = on/off - ...

  2. postgresql 日志配置

    Postgresql日志收集   PG安装完成后默认不会记录日志,必须修改对应的(${PGDATA}/postgresql.conf)配置才可以,这里只介绍常用的日志配置. 1.logging_col ...

  3. [转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

    原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务 ...

  4. Linux下rsyslog日志收集服务环境部署记录

    rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...

  5. Linux下rsyslog日志收集服务环境部署记录【转】

    rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...

  6. 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

    作者:大数据女神-诺蓝(微信公号:dashujunvshen).本文是36大数据专稿,转载必须标明来源36大数据. 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要 ...

  7. 日志收集系统elk

    目录 elk简介 官方帮助 rsyslog rsyslog日志采集介绍与使用 综合实验 案例一: 单机ELK部署 案例二. JAVA环境配置,部署 filebeat+Elasticsearch apa ...

  8. LiveCD DSET日志收集

      DELL的LiveCD是一张PE光盘,最新版本7.1是基于CentOS 6.2系统的. 工具下载地址: http://downloads.dell.com/FOLDER01960516M/1/SL ...

  9. ExceptionLess异常日志收集框架-1

    哈哈,中秋和代码更配哦,不知不觉一年过半了,祝园友们中秋快乐 前一阵子在博客园看到了一篇博文 http://www.cnblogs.com/savorboard/p/exceptionless.htm ...

随机推荐

  1. week06 12 后端utils cloudAMQP_client.py 安装pika

    我们回到后端 pika是专门处理RabitAMQP的包 或者你可以直接一步到位 我们不能一直让我们的网络爬虫一直爬信息 一是网络消耗很大(cpu) 二是容易被网站发现被禁ip self.connect ...

  2. svn的下载及安装

    什么是SVN: SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS. SVN的下载安装: 下载地址:https: ...

  3. ubuntu下搭建svn服务器

    [ubuntu下搭建svn服务器] 1.创建目录 mkdir ~/svn/repository/ 2.创建仓库 svnadmin create repository 3.进入 repository/c ...

  4. cobbler的ks文件带有特殊字符导致错误

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAykAAACWAQMAAADg0FUUAAAAAXNSR0IArs4c6QAAAAZQTFRFq6urAA

  5. 求树的重心 poj 1655

    题目链接:https://vjudge.net/problem/POJ-1655 这个就是找树的重心,树的重心就是树里面找一个点,使得以这个点为树根的所有的子树中最大的子树节点数最小.题目应该讲的比较 ...

  6. 基于python的selenium自动化测试环境搭建

    Windows下的环境搭建: 1.安装python2.7.152.cmd里敲pip install selenium3.安装firefox47.geckodriver11(并将geckodriver. ...

  7. 738. Monotone Increasing Digits 单调递增的最接近数字

    [抄题]: Given a non-negative integer N, find the largest number that is less than or equal to N with m ...

  8. java_21 Set接口、HashSet类、LinkedSet类

    1Set 包含不可重复元素的集合,是一个无序集合. 子类:hashSet .LinkedSet 2.含有父类Collection的方法 add(): 如果 set 中尚未存在指定的元素,则添加此元素( ...

  9. Java12-java语法基础(十一)继承

    Java12-java语法基础(十一)继承 一.继承 学习要求: 1. 理解继承的概念与作用 2. 掌握继承的实现机制 3.理解继承中的覆写与覆盖 4.掌握super关键字的使用 回顾: 1.对客观世 ...

  10. IOS Javascript Date的坑

    Date对象是JavaScript提供的日期和时间的操作接口,它有多种用法.手册上或者网上也有很多文章介绍,这里就不再次复述了. 上次遇到一个坑,这里总结下,也不是什么大问题,若是如果有经验,就不会花 ...