PostgreSQL日志分析工具——pgBadger

摘要

创新互联"三网合一"的企业建站思路。企业可建设拥有电脑版、微信版、手机版的企业网站。实现跨屏营销,产品发布一步更新,电脑网络+移动网络一网打尽,满足企业的营销需求!创新互联具备承接各种类型的网站建设、做网站项目的能力。经过十载的努力的开拓,为不同行业的企事业单位提供了优质的服务,并获得了客户的一致好评。

之前曾介绍过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

 
 
 
 
  1. tar zxvf pgbadger-9.2.tar.gz
  2. cd pgbadger-9.2
  3. [root@localhost pgbadger-9.2]# ll
  4. total 1416
  5. drwxr-xr-x. 8 root root    4096 Sep 11 01:13 blib
  6. -rw-rw-r--. 1 root root   94609 Jul 28 07:45 ChangeLog
  7. -rw-rw-r--. 1 root root     347 Jul 28 07:45 CONTRIBUTING.md
  8. drwxrwxr-x. 2 root root    4096 Jul 28 07:45 doc
  9. -rw-rw-r--. 1 root root     903 Jul 28 07:45 LICENSE
  10. -rw-r--r--. 1 root root   24018 Sep 11 01:13 Makefile
  11. -rw-rw-r--. 1 root root    1400 Jul 28 07:45 Makefile.PL
  12. -rw-rw-r--. 1 root root      81 Jul 28 07:45 MANIFEST
  13. -rw-rw-r--. 1 root root     334 Jul 28 07:45 META.yml
  14. -rw-rw-r--. 1 root root 1256247 Jul 28 07:45 pgbadger
  15. -rw-r--r--. 1 root root       0 Sep 11 01:13 pm_to_blib
  16. -rw-rw-r--. 1 root root   30799 Jul 28 07:45 README
  17. drwxrwxr-x. 3 root root    4096 Jul 28 07:45 resources
  18. drwxrwxr-x. 2 root root    4096 Jul 28 07:45 tools
  19. perl Makefile.PL
  20. make;
  21. make install; 

查看安装版本

 
 
 
 
  1. [root@localhost pgbadger-9.2]# which pgbadger
  2. /usr/local/bin/pgbadger
  3. [root@localhost pgbadger-9.2]# pgbadger -V
  4. pgBadger version 9.2 

PostgreSQL配置

 
 
 
 
  1. logging_collector = on
  2. log_filename = 'postgresql-%w.log'
  3. log_file_mode = 0640
  4. log_truncate_on_rotation = on
  5. log_rotation_age = 1d
  6. log_min_duration_statement = 0
  7. log_checkpoints = on
  8. log_connections = on
  9. log_disconnections = on
  10. log_duration = on
  11. log_lock_waits = on
  12. log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d ' 

安装httpd、php

 
 
 
 
  1. yum install httpd
  2. chkconfig httpd on
  3. service httpd start
  4. yum install php 

查看/var/www

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

日志分析

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

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

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

增量模式用于连续获取分析结果。

以增量模式执行pgBadger会在第二天创建下一个报告(增量报告)。

 
 
 
 
  1. [root@localhost ~]# pgbadger -I /opt/postgres/db/pgsql-9.5.9/data/pg_log/*.log -o /var/www/pgbadger/out.html -f stderr
  2. [========================>] Parsed 1499636 bytes of 1499636 (100.00%), queries: 0, events: 0
  3. [========================>] Parsed 10485846 bytes of 10485846 (100.00%), queries: 65379, events: 0
  4. [========================>] Parsed 743891 bytes of 743891 (100.00%), queries: 4625, events: 0
  5. LOG: Ok, generating HTML daily report into /var/www/pgbadger//2017/09/11/...
  6. LOG: Ok, generating HTML daily report into /var/www/pgbadger//2017/09/12/...
  7. LOG: Ok, generating HTML weekly report into /var/www/pgbadger//2017/week-38/...
  8. LOG: Ok, generating global index to access incremental reports...
  9. [root@localhost ~]# ll /var/www/pgbadger/
  10. total 692
  11. drwxr-xr-x. 4 root root   4096 Sep 11 21:09 2017
  12. -rw-r--r--. 1 root root 695474 Sep 12 21:15 index.html
  13. -rw-r--r--. 1 root root    187 Sep 12 21:15 LAST_PARSED
  14. drwxrwxrwx. 6 1107 1107   4096 Aug 28 17:44 postgresql-9.5.9
  15. [root@localhost ~]# ll /var/www/pgbadger/2017/
  16. total 8
  17. drwxr-xr-x. 4 root root 4096 Sep 12 21:15 09
  18. drwxr-xr-x. 2 root root 4096 Sep 11 21:09 week-38
  19. [root@localhost ~]#  

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

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

总结

pgBadger是一个完美的分析工具,旨在提高数据库的性能,因为它具有丰富的统计结果。

当你不知道PostgreSQL性能坏的原因,如果你认为查询执行时间是可疑的,可以尝试使用它。

分享文章:PostgreSQL日志分析工具——pgBadger
转载源于:http://www.shufengxianlan.com/qtweb/news40/186640.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联