PostgreSQL日志分析工具
PostgreSQL日志審計可以配合 pgbench、jmeter...測試工具制定測試計划測試性能,由於日志審計比較影響性能,在不需要問題排查或測試的時候可以關閉。
1. pgBadger安裝
pgBadger:主頁
pgBadger:下載地址
Text-CSV_XS-1.39:下載地址
環境
- Red Hat Enterprise Linux Server release 7.4
- PostgreSQL 9.6.0
安裝包版本
分析csv格式日志需要Text-CSV_XS
- Text-CSV_XS-1.39
- pgbadger-10.3
安裝
-
上傳tar包到任意目錄
-
切換到tar包目錄執行安裝
plugs=`echo -e "Text-CSV_XS-1.39\npgbadger-10.3"`;
baseDir=`pwd`;
for plug in ${plugs};
do
tar zxf ${plug}.*;
cd ${baseDir}/${plug};
perl Makefile.PL && make && make install;
cd ${baseDir};
done;
2. PostgreSQL日志審計配置
postgresql.conf增加配置后重啟數據庫
# 指定csv格式日志
log_destination = 'csvlog'
logging_collector = on log_directory = 'pg_log'
log_filename = 'postgresql-%w.log'
log_file_mode = 0640 log_truncate_on_rotation = off log_rotation_age = 1d log_line_prefix = '%t [%r]-[%p]: %l user=%u,db=%d'
log_lock_waits = off log_checkpoints = off log_connections = off log_disconnections = off log_duration = off log_min_duration_statement = 0
3. 日志生成
訪問數據庫
# 初始化pgbenth依賴表
pgbench -U postgres -d postgres -i -s 5
# 5客戶端壓力10秒
pgbench -U postgres -d postgres -v -c 5 -T 10
生成日志
# 開啟httpd服務
systemctl start httpd.service
# 創建日志輸出目錄
mkdir -p /var/www/html/pgbadger/;
# 查找一下pgbadger命令所在目錄
which pgbadger
# 指定命令路徑 -> 指定日志路徑(名稱根據log_filename參數來的) -> 指定httpd的服務為輸出目錄: 增量生成日志
/usr/local/bin/pgbadger -I -q /data/pgdata/pg_log/postgresql-*.csv -O /var/www/html/pgbadger/
定時任務
# /etc/cron.d目錄下創建文件 pgbadger_cron 並添加如下內容
# 凌晨2點補全目錄
0 2 * * * root /usr/bin/mkdir -p /var/www/html/pgbadger/
# 凌晨2點10分分析前天統計日志
10 2 * * * root /usr/local/bin/pgbadger -I -q /data/pgdata/pg_log/postgresql-`date -d "now -1 days" "+%w"`.csv -O /var/www/html/pgbadger/
# 重啟crond
systemctl restart crond.service
結果示例

增量日志索引頁

概覽頁

SQL統計
等等....