postgreSQL集群监控方案比选
对于数据库的监控是一个老生常谈的问题,也是数据库实施后非常必要的一个工作,方便运维(DBA)自主查看主机,数据库,表,以及错误信息,极大的方便错误定位。
在云商部署,一般云厂商有自研的监控工具,如果是独立部署,则需要自己部署一套监控系统。经过调研,常用的监控方案有三种:
下面主要针对其中两种进行说明和比较,pgmonitor安装过于复杂,先不考虑。
1.pgwatch2
部署架构图:
详细部署过程,参考:https://github.com/cybertec-postgresql/pgwatch2
部署后访问3000端口即可查看dashboard,指标主要分为三类:
关于主机的指标,关于数据库的指标,关于查询的指标
使用前需要在8080端口对数据库连接进行配置:
其中一个dashboard界面如下:
2.自建监控系统,自建主要基于
Prometheus + Pgscv + node_Exporter+ Granfana+ Alertmanager 可以实现监控,预警
部署架构图如下:
node_exporter用于监控主机信息
pgsvc_exporter用于监控数据库信息
关于Prometheus和Granfana的配置请自行百度(可以基于docker安装,也可以基于源文件安装)
最终得到主机监控dashboard:
postgres数据库监控界面:
alertmanagement用于预警配置和管理,相关安装配置参见:github指南
最终效果如下,左侧为配置后在prometheus上查看alert的信息(当前触发的警报),右侧为预警的邮件通知内容
另外也支持微信,短信的预警提示
两种方案对比:
整体来说,两种方案各有优劣,使用时可以根据具体需求选择使用。