文档章节

pgBadger(PostgreSQL日志分析工具)

yonj1e
 yonj1e
发布于 2017/09/11 17:04
字数 1001
阅读 7.4K
收藏 10

码上生花,ECharts 作品展示赛正式启动!>>>

摘要

之前曾介绍过PostgreSQL的日志审计,这会将执行的SQL输出到服务日志(pg_log),势必会带来性能问题,真正的问题是,这些记录对我们有多少帮助?所以我们来看一下如何使用增加的日志记录来做一些有用的事情。

pg_stat_statements 不仅输出SQL语句,还可以输出执行时间等,通过分析此服务器日志,可以知道执行什么样的SQL,以及缩小范围找到哪些SQL有可能出现性能问题。

SQL日志分析工具pgBadger

pgBadger 主页:home 下载地址:download

pgBadger是在Perl中创建的一个脚本,与PHP脚本中开发的名为pgFouine的程序具有相同的功能。 在命令行上指定并执行服务器日志时,会生成一个将服务器日志分析为HTML文件的报告。

此外,它不仅收集SQL,还收集服务器日志中的错误日志等。

环境

CentOS 6.9、PostgreSQL9.5.9、pgBadger 9.2

安装pgBadger

tar zxvf pgbadger-9.2.tar.gz
cd pgbadger-9.2
[root@localhost pgbadger-9.2]# ll
total 1416
drwxr-xr-x. 8 root root    4096 Sep 11 01:13 blib
-rw-rw-r--. 1 root root   94609 Jul 28 07:45 ChangeLog
-rw-rw-r--. 1 root root     347 Jul 28 07:45 CONTRIBUTING.md
drwxrwxr-x. 2 root root    4096 Jul 28 07:45 doc
-rw-rw-r--. 1 root root     903 Jul 28 07:45 LICENSE
-rw-r--r--. 1 root root   24018 Sep 11 01:13 Makefile
-rw-rw-r--. 1 root root    1400 Jul 28 07:45 Makefile.PL
-rw-rw-r--. 1 root root      81 Jul 28 07:45 MANIFEST
-rw-rw-r--. 1 root root     334 Jul 28 07:45 META.yml
-rw-rw-r--. 1 root root 1256247 Jul 28 07:45 pgbadger
-rw-r--r--. 1 root root       0 Sep 11 01:13 pm_to_blib
-rw-rw-r--. 1 root root   30799 Jul 28 07:45 README
drwxrwxr-x. 3 root root    4096 Jul 28 07:45 resources
drwxrwxr-x. 2 root root    4096 Jul 28 07:45 tools

perl Makefile.PL

make;

make install;

查看安装版本

[root@localhost pgbadger-9.2]# which pgbadger
/usr/local/bin/pgbadger
[root@localhost pgbadger-9.2]# pgbadger -V
pgBadger version 9.2

PostgreSQL配置

logging_collector = on
log_filename = 'postgresql-%w.log'
log_file_mode = 0640
log_truncate_on_rotation = on
log_rotation_age = 1d
log_min_duration_statement = 0
log_checkpoints = on
log_connections = on
log_disconnections = on
log_duration = on
log_lock_waits = on
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d '

安装httpd、php

yum install httpd
chkconfig httpd on
service httpd start
yum install php

查看/var/www

[root@localhost www]# pwd
/var/www
[root@localhost www]# ll
total 20
drwxr-xr-x. 2 root root 4096 Aug 15 15:45 cgi-bin
drwxr-xr-x. 3 root root 4096 Sep 11 02:23 error
drwxr-xr-x. 2 root root 4096 Sep 11 03:43 html
drwxr-xr-x. 3 root root 4096 Sep 11 02:23 icons
drwxr-xr-x. 3 root root 4096 Sep 11 04:33 pgbadger

日志分析

./pgbench -i
./pgbench -c 10 -t 1000

[root@localhost ~]# pgbadger /opt/postgres/db/pgsql-9.5.9/data/pg_log/*.log -o /var/www/pgbadger/out.html -f stderr
[========================>] Parsed 10485802 bytes of 10485802 (100.00%), queries: 65341, events: 2
[========================>] Parsed 755640 bytes of 755640 (100.00%), queries: 70036, events: 2
LOG: Ok, generating html report...
[root@localhost ~]# 

在浏览器打开/var/www/pgbadger/out.html

连续日志分析(增量模式)

增量模式用于连续获取分析结果。
以增量模式执行pgBadger会在第二天创建下一个报告(增量报告)。

[root@localhost ~]# pgbadger -I /opt/postgres/db/pgsql-9.5.9/data/pg_log/*.log -o /var/www/pgbadger/out.html -f stderr
[========================>] Parsed 1499636 bytes of 1499636 (100.00%), queries: 0, events: 0
[========================>] Parsed 10485846 bytes of 10485846 (100.00%), queries: 65379, events: 0
[========================>] Parsed 743891 bytes of 743891 (100.00%), queries: 4625, events: 0
LOG: Ok, generating HTML daily report into /var/www/pgbadger//2017/09/11/...
LOG: Ok, generating HTML daily report into /var/www/pgbadger//2017/09/12/...
LOG: Ok, generating HTML weekly report into /var/www/pgbadger//2017/week-38/...
LOG: Ok, generating global index to access incremental reports...

[root@localhost ~]# ll /var/www/pgbadger/
total 692
drwxr-xr-x. 4 root root   4096 Sep 11 21:09 2017
-rw-r--r--. 1 root root 695474 Sep 12 21:15 index.html
-rw-r--r--. 1 root root    187 Sep 12 21:15 LAST_PARSED
drwxrwxrwx. 6 1107 1107   4096 Aug 28 17:44 postgresql-9.5.9
[root@localhost ~]# ll /var/www/pgbadger/2017/
total 8
drwxr-xr-x. 4 root root 4096 Sep 12 21:15 09
drwxr-xr-x. 2 root root 4096 Sep 11 21:09 week-38
[root@localhost ~]# 

这里创建一个具有年份的目录,链接所有报告的索引页面以及保存最后一个解析行的文件。

以增量模式创建报表时,会创建链接每个报表页面的索引页(index.html)。

总结

pgBadger是一个完美的分析工具,旨在提高数据库的性能,因为它具有丰富的统计结果。
当你不知道PostgreSQL性能坏的原因,如果你认为查询执行时间是可疑的,可以尝试使用它。

© 著作权归作者所有

yonj1e
粉丝 17
博文 20
码字总数 31358
作品 0
济南
后端工程师
私信 提问
加载中
请先登录后再评论。
PostgreSQL DBA(3) - 日志分析工具pgbadger简介

本节简单介绍了一款用于分析PostgreSQL数据库日志文件的工具:pgbadger,这是一款使用Perl实现的轻量级日志分析工具。 一、简介 pgbadger通过分析PG的日志文件,以图表的形式展现数据库的各项活...

EthanHe
2018/08/31
0
0
PG 慢日志分析工具pgbadger

失效地址 https://github.com/dalibo/pgbadger https://github.com/darold/pgbadger https://blog.csdn.net/ctypyb2002/article/details/80733465 下载地址:https://github.com/darold/pgb......

osc_bouq2lox
2018/09/01
10
0
pgBadger 9.1 发布,PostgreSQL 日志分析工具

pgBadger 9.1 发布了。该版本是一个常规维护版本,修复了一些小问题,还有一个关于错误类的分布和一些功能的增强。 当 SQLState 在 log_line_prefix 中可用时,添加错误类分布的报告(参阅 ...

局长
2017/01/28
1.6K
0
PostgreSQL数据库备份和还原(七)

备份数据库三种方法: SQL转储 文件系统级备份。 持续存档。 pgdump是一个常规的 PostgreSQL客户端应用程序. pgdump不能以特殊权限运行,必须具有对要备份的所有表的读访问权限. pgdump连接受普...

IdealReality
2018/10/14
0
0
PostgreSQL数据库备份和还原

备份数据库三种方法: SQL转储 文件系统级备份。 持续存档。 pgdump是一个常规的 PostgreSQL客户端应用程序. pgdump不能以特殊权限运行,必须具有对要备份的所有表的读访问权限. pgdump连接受普...

鸿鹄安然
2018/10/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenvSwitch系列之四 ovs-ofctl命令使用

Open vSwitch系列之一 Open vSwitch诞生 Open vSwitch系列之二 安装指定版本ovs Open vSwitch系列之三 ovs-vsctl命令使用 Open vSwitch系列之四 ovs-ofctl命令使用 Open vSwitch系列之五 网桥...

osc_y9y4gqxx
42分钟前
11
0
27岁了,程序员写给自己的一封信

前言 相信很多人小时候的梦想都是当科学家,现在想想当初太傻,发现这些根本不可选。就跟考清华还是北大一样,当初纠结的要死,结果发现自己只是普通人,过着普通的生活,上着一眼望到头的班...

osc_teeurf8z
43分钟前
18
0
mysql 存储过程 查询结果集循环处理游标使用

注意每个版本的mysq的存储过程,触发器写法都会有些许区别,注意查看官方版本,不然你网上copy的语句可能执行无效,或者不成功 官方英文说明文档 https://dev.mysql.com/doc/refman/5.7/en/...

Love彼岸花开
44分钟前
7
0
Dump微信PC端的界面Duilib文件

零、有啥用 网上大多数的微信逆向思路,是CE搜索数据得到地址,OD下访问断点,然后在堆栈里面大海捞针的找Call,效率太低了。 其实微信的界面是用Duilib做的,Duilib的界面布局写在XML文件。...

osc_paqz1zc7
44分钟前
17
0
VNC电脑客户端,VNC电脑客户端下载!

IIS7服务器管理工具能够作为VNC的客户端,进行VNC的命令操作,可在客户端,下载,安装VNC软件! 同时,它也可以作为FTP的客户端,进行FTP的命令操作!它能够批量连接Windows和Linux系统下的服...

Raymond13
44分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部