Postgresql 监控你说了不算,谁说了算? (1 pgcluu)

人生可能如同塑料袋,轻薄,毫无意义,但装满东西,就可以变成任意的形态,可大可小,可软可硬,取决于他的,是里面的东西,而不是塑料袋。

事情的开始是由一个 叫 贾森的同学开始的,所以开始准备一些关于POSTGRESQL 监控相关的东西,目前一共 四期 (已经完成,通过各种监控软件,达到360 度的监控 postgresql, 以下是第一期)

Postgresql 的监控方法很多,数量越来越多的PG 的监控在通过手工的方法估计是不赶趟了,所以应允而生的就是各种的工具,当然有收费的也有免费的,所以不说说总结一下总是不妥。不知道会说几期,另外有一个明确的规则的就是收费的都不说。

至于监控,也不能直接上来就说,PG的监控也是可以从内到外,有层次的,我们可以看一下,下面的这个图。

所以监控来说我们需要评判一个监控TOOLS是否OK,可以看看上面的那个表,是否都能覆盖到。

其中可以监控PG的方式很多,PG_WATCH, PGCLUU,PGBADGER, PGHERO,PMM for postgresql  等等,可能还有更多,没有列出来。

今天要开始说的是PGCLUU 这个软件,首先这个软件是免费的,另外要说一点,为什么要上边那个图,大部分免费的软件可能都不能做到上面所有的选项,所以必须的联合使用。

我们看看pgcluu 的卖点是什么:

pgCluu is a PostgreSQL performances monitoring and auditing tool.

OK 定位已经有了,性能监控和审计工具。以下以最新的的3.1为例

pgCluu 是通过perl语言编写的,所以系统中必须有perl的环境,所以你的确认你的环境中是否有perl -v 如果没有反应或报错,那就的安装一下 perl 的环境了。

下面是假设你已经安装了perl 环境后的情况。

pgcluu 有两种安装方式一种是yum的安装方式,一种是下载包然后解压后就可以使用,但你要自己设置一些变量环境,这里采用压缩包的方式,然后将压缩包的文件放到了 /usr/local/pgcluu 目录中然后在系统变量环境中指定这个环境,同时你要安装 yum install sysstat    ,在做完这一切后,我们可以运行一下,至于怎么运行,后面说,我们不看过程,看疗效。

在运行了其中的一个命令后,我得到了这些

由于信息量比较大,这里挑挑拣拣的说说,其他的没有说到不见得没有用,大家可以自己看看,或许能有更多的收获。

在做完上面的事情,你在运行一个命令后,就可以得到下面的这张图

大致说一下这个软件的监控( 实际上我认为这不是一个监控这是一个融合了,整体的  postgresql cluster 的信息综合体,并且包含了一些大部分DBA 关注的信息)

其中有德哥在 GITHUB 中安装POSTGRESQL 提到的一些关于 LINUX核心参数的调整里面的东西,这里可以通过这个PGCLUU 来看看你调整了没有,当前的参数是什么。

以及内存的信息,包含甄别shmmax 等配置是否存在瓶颈(具体请参见德哥的GITHUB)

同时也包含,一些日报,周报或者分析问题时需要的系统级别的信息,其实我倒是觉得这个放到写周报里面倒是蛮方便的。(不过是英文)

另外还有一些关于当前数据库的基本信息,例如到底数据库中有多少extension或者数据库的总体大小

下面是统计数据库的增长幅度,这也是周报中的常客,当然也能发现一些问题,例如表膨胀导致数据库SIZE 忽高忽低。

根据表空间来进行分析

当然死锁的次数也能进行统计和展示

cache hit 的情况

关心临时表的SIZE 的情况也有项目可以体现

check point 有没有写等待的问题,也有迹可循

对于一段时间的 DML  与 select 比率也可以进行统计和展示

我们关心的TPS

当然如果老板问,对每一个数据库的分项指标进行统计,PGCLUU 也是可以满足的,绝对是问到哪里都顺访顺水

再有一些统计信息,关于表, tuple , index 等等

说到这里,估计想试试的人会不少,那上面的那些东西是怎么生成的,才是重要的。

这里我们说说pgcluu 里面的东西

操作的过程主要是依靠两个命令来完成的,pgcluu_coollected + pgcluu 来完成的。估计从名字就可以看出,信息的输出分为两个步骤   1 信息的收集,2 信息的格式变化,及输出。

下面我们举例,我们想一个小时进行一次统计,PG的数据库的信息,并且间隔为10秒一次。

首先我们来进行数据的收集

1 我们可以给pgcluu 建立一个用户 readlonly

ALTER DEFAULT PRIVILEGES IN SCHEMA public grant select on tables to readonly;

这样操作完毕后,会有报错,但目前使用下来,暂未影响使用,另外也有其它的方法可以解决,但想写一篇关于权限的,这里就不写了

2  我们开始通过这个readonly用户使用

pgcluu_collectd -E 200 -i 30 /pgdata/pgcluu -h 192.168.198.80  -U readonly  -W pgcluu -p5432 -d postgres

我们先收集信息到目录 /pgdata/pgcluu 中  上面的方法是针对众多POSTGRESQL 中收集信息使用的并不是本地收集,也就是说我们可以建立一个监控服务器,然后收集是所有的pG的信息 到一台机器,然后开始分析,做成全面自动化的方案,具体请依据个人的需求来。

3  在我们收集完这些信息后我们需要生成网页信息

pgcluu -o /pgdata/pgcluu/ /pgdata/pgcluu/

生成网页信息后,就可以进行阅读了,默认的文件是index.html, 建立一个网站就可以进行阅读了,当然也可以rsync 同步到 一个服务器,进行留存。

总结一下,PGCLUU 是一个目前比较好的适合进行定期数据库信息分析,或查找问题的方法,这个工具比较灵活适合二次开发,但缺点也是显而易见的,他不是实时的显示,所以解决问题的面是有限制的,同时也没有能显示慢查询的东西,所以我们还得继续找合适来弥补他缺失的监控。

待.. 2 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值