#简介
pgbadger,
这是
一款使用
Perl
实现的轻量级日志分析工具
。通过分析
PG
的日志文件,以图表的形式展现数据库的各项活动和状态信息。专为提高速度而构建,可以完整地报告
PostgreSQL
日志文件。它是一个单一的小型
Perl
脚本,其性能优于大多数其他
PostgreSQL
日志分析器。
特性
1.
图表输出
:
输出的图表可单独下载为
PNG
文件。
2.
并行分析
:
使用
-j
或
-J
指定并行度
3.
压缩文件
:
可支持
gzip
压缩文件
4.
增量报告
:
支持增量模式
,
比如按天分析
,
最后可以叠加为按周
/
月分析
#下载安装
从
GitHub
下载
(https://github.com/darold/pgbadger)
:
tar xzf pgbadger-11.x.tar.gz
cd pgbadger-11.x /
perl Makefile.PL
make && sudo make install
#配置
1.
打开
SQL
日志记录
log_min_duration_statement=0
如果执行的
SQL
语句超过了这个参数设置的值,就会记录到日志里面,类似于
MySQL
中的慢查询日志。默认值为
-1
,不记录到日志。当前我们系统设置的是
1000ms
,也就是大于
1s
的
SQL
语句将被记录到日志。
2.
设置日志的前缀信息
这个分两种情况。和
log_destination
参数有关系。
如果是“
stderr
”日志格式,
log_line_prefix
必须至少为:
log_line_prefix=’
%
t[
%
p]
:
‘
日志的前缀也可以添加用户、数据库名称,应用程序名称和客户端
IP
地址,如下所示:
log_line_prefix=’
%
t[
%
p]
:
user=
%
u
,
db=
%
d
,
app=
%
a
,
client=
%
h’
如果是“
syslog
”日志格式,
log_line_prefix
就是:
log_line_prefix=’user =
%
u
,
db=
%
d
,
app=
%
a
,
client=
%
h’
3.
打开其他日志记录
为了让
pgBadger
能够更好的分析,需要开启一些基础记录功能。
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
log_statement=none
这里不要
log_statement
不要启用,因为
pgBadger
不会解析它的日志格式。
4.
设置字符集
最后一个是设置字符集。要确保自己的语言环境是英文的。
lc_messages=’en_US.UTF- 8
’
以上参数设置完成之后,进入到
pgbadger
目录运行,指定日志文件输出成
html
格式。
pgbadger /disk1/postgresql12/log/postgresql-2021-12-30_000000.log
或者
pgbadger –prefix ‘%t [%p]: user=%u,db=%d’ /disk1/postgresql12/log/postgresql-2020-11-26_093001.log -o 11-26_093001.html