Postgresql 监控你说了不算,谁说了算(3 pgwatch)

2020-03-26 15:43:11 浏览数 (1)

之前几期的监控肯能有人不大认同,你这一个是特殊时期分析问题的,一个是分析日志的,我要的是正常人用的那种监控,正常人的那种

OK ,你就当我不正常咯, 你自己搞咯

今天要说的就是看上去高大上,又正常的pg_watch2, pg_watch 是有一段历史了从这个2上就知道,他有 1.所以如果做得不好也就不会有什么续集。

我们来看看pgwatch2 到底能做点什么支持,我们一条条的来看

1 非侵入性设置,基本功能不需要扩展或超级用户权限

2直观的指标表示使用Grafana仪表盘引擎与可选的报警

3 通过在纯SQL中定义指标(因此它们也可以来自业务域),易于扩展

4 支持4中数据库存储监控数据库 pPostgreSQL, InfluxDB, Graphite, Prometheus

5 可以监视PostgreSQL集群的全部或部分DBs

6 度量/间隔的全局或DB级配置

7 PgBouncer, AWS RDS和Patroni支持

8 内部健康检查API来监视度量收集状态

9 即使在监控数百个DBs时,收集器的资源需求也非常低

安装上我们采用目前最流行的DOCKER 方式来安装pgwatch2

首先我们现在监控机上安装好DOCKER

在启动DOCKER 后,直接运行官方的给出的下载安装命令

我们选择使用 influx 作为监控数据库的承载数据库

代码语言:javascript复制
docker run -d --name pw2 -v pg:/var/lib/postgresql -v influx:/var/lib/influxdb -v grafana:/var/lib/grafana -v pw2:/pgwatch2/persistent-config -p 8080:8080 -p 3000:3000 -e PW2_TESTDB=true cybertec/pgwatch2

系统安装的比较慢,如果你安装过PYTHON 包非国内镜像,你就会理解技术下载无国界这句话就是笑话。

那么按照PGWATCH2 需要知道我平均每台机器消耗是多少,CPU MEMROY, 磁盘,根据cybertec 官方给出的信息

最低2G内存起,每台监控的PG的机器保存一个月的数据需要2G 空间(这里指的是时序熟即可influxdb),根据其他的类似经验,你最好准备大于16G内存,500G 的磁盘空间,6核心的CPU 保存数据量在15天 到 30天 来承载大约40台的需要监控的机器。当然这样配置打开页面也不怎么快。

启动后,直接打开页面就是下图这样的 通过 8080 端口,这个就是配置页面

在配置完毕后,打开监控的页面,大致就是下面这样的

目前这个pg_watch可以观察的参数,说些主要的

1 系统的主从关系

2 开始的时间长度

3 当前的连接的sessions

4 TPS

5 重复索引,无效索引

6 临时空间

7 CPU

8 长查询的时间

9 ARCHIVING 的状态

10 WAL 平均每秒的流量

11 最大的 autovacuum duration的时间等等

12 复制槽,以及replication lag

13 关于查询中的SCAN 信息

14 I U D 每秒速度

通过大致的介绍,这块免费的监控很适合作为大屏展示,如果需要查看细致的信息也可以点进去看

本身pgwatch2 在安装和配置中也遇到一些问题

1 权限的问题,他的权限并没有向pghero那样说的明白(或许是他也有收费版的因素),在文档中说明可以使用pg_monitor role 来使用,程序已经尽力避免使用superuser 权限来做监控了,但实际操作中,如果使用pg_monitor 则会有部分监失效。还是恢复了superuser的权限,才能

2 使用docker 来进行安装和使用,暂未找到如果在容器外给参数清理数据的方法。

3 配置的端口在 8080 ,查看监控数据的端口在 3000

另外在安装的过程中,如果不熟悉DOCKER 以及PG数据库不支持PYTHON 则会出现一些问题

具体如必须需要重新编译数据库,加入PYTHON 的支持,如下需要在数据库的配置文件,以及数据库中进行extension

代码语言:javascript复制
shared_preload_libraries = 'pg_stat_statements'

CREATE EXTENSION pg_stat_statements;

CREATE EXTENSION plpythonu;

共享支持,共同提高,抵御风险,实现共赢,有意可加群,共享文件,入群可随意下载,不断更新

0 人点赞