はじめに
pgBadgerはPostgreSQLのログファイルを解析しレポートを出力するツールです。
上の公式サイトにサンプルがあり、次のようなレポートを表示することができます。
今回はPostgreSQL12にpgBadgerをインストールしてみます。
特に新しい情報はなく、以下のサイトを参考に実施しただけのメモです。
pgBadgerのインストールと設定
PostgreSQL12はRPMでインストールしたので、pgBadgerもRPMからインストールします。
# yum install -y pgbadger
~省略~
Installed:
pgbadger.noarch 0:11.1-1.rhel7
Dependency Installed:
perl-Text-CSV_XS.x86_64 0:1.00-3.el7
postgres.confの設定は以下のように変更しています。
log_filename = 'postgresql-%Y-%m-%d.log'
log_min_duration_statement = 0 # 0にすると全てのクエリが保存されるので、1000(ms)にしても良い
log_line_prefix = '%t [%p]: [%l-1] user=%u, db=%d'
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
lc_messages = 'C'
log_autovacuum_min_duration = 0
log_error_verbosity = default
Apache HTTPDのインストール
レポートはHTMLファイルで出力されるので、Webサーバもたてておきます。
# yum install -y httpd
# systemctl start httpd
# systemctl enable httpd
レポートの出力
以下のコマンドでレポートを出力します。
# /usr/bin/pgbadger -f '%t [%p]: [%l-1] user=%u, db=%d' -I -q /data/log/postgresql*.log -O /var/www/html/
出力したレポートは次のようになります。
毎日自動でレポートを出力するには、次のようにcronに登録しておきます。
0 4 * * * /usr/bin/pgbadger --retention 2 -I -q /data/log/postgresql.YYYY-mm-dd-HHMMSS -O /var/www/pg_reports/