本节简单介绍了一款用于分析PostgreSQL数据库日志文件的工具:pgbadger,这是一款使用Perl实现的轻量级日志分析工具。
一、简介
pgbadger通过分析PG的日志文件,以图表的形式展现数据库的各项活动和状态信息,其愿景是:"Make your reports in seconds!".
特性
1.图表输出:输出的图表可单独下载为PNG文件,这个功能对于DBA来说,用于数据库巡检截图会比较管用。
2.并行分析:使用-j或-J指定并行度
3.压缩文件:可支持gzip压缩文件
4.增量报告:支持增量模式,比如按天分析,最后可以叠加为按周/月分析
详细的Features列表请参见官网.
要求
数据库端开启日志,可使用syslog、stderr、csvlog或jsonlog等多种格式。
log_destination='csvlog'
logging_collector=on
log_rotation_age=1d
log_rotation_size=128MB
log_min_duration_statement = 0
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
log_autovacuum_min_duration = 0
log_error_verbosity = default
二、安装
pgbadger使用Perl实现,需要安装Perl相关的工具包:
yum -y install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
yum -y install perl-CPAN
cpan Text::CSV
cpan JSON::XS
下载最新的pgbadger,并安装:
tar zxvf pgbadger-9.2.tar.gz
cd pgbadger-9.2.tar.gz
perl Makefile.PL
make && sudo make install
三、使用
命令示例,分析postgresql-2018-08-31_094131.csv文件,输出pgreport.html文件:
#pgbadger postgresql-2018-08-31_094131.csv -o pgreport.html
[=======================> ] Parsed 110195 bytes of 110906 (99.36%), queries: 9, events: 3
LOG: Ok, generating html report...
通过报告文件基本上可以从宏观和微观上了解PG的运行情况.
pgreport.html文件部分截图:
四、参考资料
pgbadger官网
pgbadger on GitHub:
pgbadger