PostgreSQL日志分析工具

postgresqllinux

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

安装

  1. 上传tar包到任意目录

  2. 切换到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统计

等等....

PostgreSQL日志分析工具的更多相关文章

  1. 可视化日志分析工具Gltail的安装与使用

    可视化日志分析工具Gltail的安装与使用      GlTail.rb 是一款带有浓郁的 Geek 风格的可视化日志分析工具,它采用 Ruby 技术构建,并利用 OpenGL 图形技术进行渲染,呈现 ...

  2. 【转】gc日志分析工具

    性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...

  3. GC之七--gc日志分析工具

    性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...

  4. 日志分析工具ELK配置详解

    日志分析工具ELK配置详解 一.ELK介绍 1.1 elasticsearch 1.1.1 elasticsearch介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分 ...

  5. GoAccess日志分析工具使用文档

    ----Sevck 2016/3/4 17:24:13 #1软件说明: GoAccess是一款开源.实时,运行在命令行终端下的web日志分析工具.该工具提供快速.多样的HTTP状态统计,可以令管理员不 ...

  6. 强大的日志分析工具 -- NSLogger

    转:http://www.cnblogs.com/yingkong1987/p/3329945.html 强大的日志分析工具 -- NSLogger 源码:https://github.com/fpi ...

  7. Log Parser 微软强大的日志分析工具

    Log Parser(微软网站下载)是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件.XML 文件.CSV(逗号分隔符)文件,以及操作系统的事件日志.注册表.文件系统.A ...

  8. Mysql 配置慢查询日志(SlowQueryLog)以及使用日志分析工具

    [ 查看系统关于慢查询的设置 ] mysql> show variables like '%slow%'; +---------------------------+-------------- ...

  9. 日志分析工具-ApexSQL介绍

    原文:日志分析工具-ApexSQL介绍 使用场景:业务数据异常变化,通过代码分析不出来的时候,迫不得已需要通过日志来分析 下载地址:http://www.apexsql.com/Download.as ...

随机推荐

  1. 在LabWindows/CVI中能同时读写一个文件吗?

    主要软件: 主要软件版本: 6.0 主要软件修正版本: N/A 次要软件: N/A 问题: 我需要在一个线程中将数据写入文件中,同时在另一个线程中读取这个文件中的数据,这样做可以吗?解答: 使用CVI ...

  2. advanceInstaller安装文件的ICON

    修改以下配置 点击icon图标位置可重新选择

  3. C++11 并发编程库

    C++11 并发编程 C++11 新标准中引入了几个头文件来支持多线程编程,他们分别是: <atomic>:该头文主要声明了两个类, std::atomic 和 std::atomic_f ...

  4. Hadoop源码解读系列目录

    Hadoop源码解读系列 1.hadoop源码|common模块-configuration详解2.hadoop源码|core模块-序列化与压缩详解3.hadoop源码|core模块-远程调用与NIO ...

  5. JAVAFX 项目 SpringBoot 最简单的集成

    1,JAVA 版本 JDK 1.8 2,首先我们创建一个 springboot 的空项目,只添加以下的依赖 <dependency> <groupId>org.springfr ...

  6. [转帖]Beyond compare4密钥

    Beyond compare4密钥 https://blog.csdn.net/lemontree1945/article/details/92963423 学习一下 最近想破解水卡.... w4G- ...

  7. 全球DEM高程数据下载

    本文主要介绍如何使用“迈高图-地图数据下载器”(以下简称:迈高图)下载全球DEM高程数据,任意下载范围自动拼接.裁剪.DEM高程数据支持下载导出为:GeoTIFF.XYZ.南方CASS等常用数据格式. ...

  8. 我瞅瞅源码系列之---flask

     快速使用  通过werkzurg 了解wsgi  threading.local和高级  LocalStack和Local对象实现栈的管理  Flask源码之:配置加载  Flask源码之:路由加载 ...

  9. 一个基于tcp的socket简单对话小例子

    首先我们需要写连个py文件,一个server,一个client. import socket sk = socket.socket() # sk.bind(('ip',port)) sk.bind(( ...

  10. MySQL视图、触发器、事务、存储过程、内置函数、流程控制、索引

    一.视图 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 如果频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图 create view tea ...