之前几期的监控肯能有人不大认同,你这一个是特殊时期分析问题的,一个是分析日志的,我要的是正常人用的那种监控,正常人的那种
OK ,你就当我不正常咯, 你自己搞咯
今天要说的就是看上去高大上,又正常的pg_watch2, pg_watch 是有一段历史了从这个2上就知道,他有 1.所以如果做得不好也就不会有什么续集。
我们来看看pgwatch2 到底能做点什么支持,我们一条条的来看
1 非侵入性设置,基本功能不需要扩展或超级用户权限
2直观的指标表示使用Grafana仪表盘引擎与可选的报警
3 通过在纯SQL中定义指标(因此它们也可以来自业务域),易于扩展
4 支持数据库存储监控数据库 pPostgreSQL, InfluxDB, Graphite, Prometheus
5 可以监视PostgreSQL集群的全部或部分DBs
6 度量/间隔的全局或DB级配置
7 PgBouncer, AWS RDS和Patroni支持
8 内部健康检查API来监视度量收集状态
9 即使在监控数百个DBs时,收集器的资源需求也非常低
安装上我们采用目前流行的DOCKER 方式来安装pgwatch2
首先我们现在监控机上安装好DOCKER
在启动DOCKER 后,直接运行官方的给出的下载安装命令
我们选择使用 influx 作为监控数据库的承载数据库
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
shared_preload_libraries = 'pg_stat_statements'
CREATE EXTENSION pg_stat_statements;
CREATE EXTENSION plpythonu;
共享支持,共同提高,抵御风险,实现共赢,有意可加群,共享文件,入群可随意下载,不断更新