前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Postgresql 监控你说了不算,谁说了算(3 pgwatch)

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

作者头像
AustinDatabases
发布2020-03-26 15:43:11
1.1K0
发布2020-03-26 15:43:11
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

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

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;

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档