数据库作为IT系统最重要的一部分,也是最难的一部分,因为需要有足够多的自定义监控项,所以今天就写一篇从0到1的文章,如果简单的监控PG,后续再来慢慢从1到1.1,高手请勿喷哦。




zabbix 内置键值监控cpu zabbix监控gpu_zabbix 内置键值监控cpu


正文

我的环境

  • zabbix版本:5.2
  • 系统版本:CentOS 8
  • PG版本:13
  • Agent版本:5.2

创建监控角色账号

PG10正式推出了监控的角色,所以利用了PG这一特性,用pg_monitor角色进行监控,如果是10以前版本,需要创建SUPERUSER。

sudo - postgrespsqlCREATE USER kasar WITH PASSWORD 'xiaoyu123' INHERIT;GRANT pg_monitor TO kasar;


zabbix 内置键值监控cpu zabbix监控gpu_前端模板 gpu监控_02


如果您的版本为10以下,就执行下面的命令(截图略)

sudo - postgrespsqlCREATE USER kasar WITH PASSWORD 'xiaoyu123';GRANT SELECT ON pg_stat_database TO kasar;ALTER USER kasar WITH SUPERUSER;

修改PG权限控制文件,这里需要注意的是,PG的权限控制是自上而下匹配,如果第一条匹配上了,就不会继续匹配,所以需要注意将下面三条放入最前面

vi /var/lib/pgsql/13/data/pg_hba.confhost all kasar 127.0.0.1/32 trusthost all kasar 0.0.0.0/0 md5host all kasar ::0/0 md5


zabbix 内置键值监控cpu zabbix监控gpu_sql_03


zabbix 内置键值监控cpu zabbix监控gpu_重启_04

出现这样的错误就是权限问题,将上面命令放置最前


重启服务或不重启服务刷新权限配置

systemctl start postgresql-13##或者是不重启刷新配置su - postgrespsql select pg_reload_conf();


zabbix 内置键值监控cpu zabbix监控gpu_配置文件_05

重新加载配置文件


创建zabbix agent家目录(如果有请忽略),同时将相关脚本模板分别复制到zabbix agent根目录和配置文件目录(脚本文件私聊我或者自行寻找)

mkdir /var/lib/zabbixcp -r /kasar/postgresql  /var/lib/zabbix/cp -r /kasar/template_db_postgresql.conf /etc/zabbix/zabbix_agentd.d/


zabbix 内置键值监控cpu zabbix监控gpu_重启_06


zabbix 内置键值监控cpu zabbix监控gpu_配置文件_07

相关脚本文件


修改zabbix agent 配置文件,加载用户自定义脚本,同时启动zabbix agent

vi /etc/zabbix/zabbix_agentd.confsystemctl start zabbix-agent && systemctl enable zabbix-agent


zabbix 内置键值监控cpu zabbix监控gpu_sql_08

无则加上


前端配置


zabbix 内置键值监控cpu zabbix监控gpu_zabbix 内置键值监控cpu_09

创建主机,填入相关信息


zabbix 内置键值监控cpu zabbix监控gpu_sql_10

加入PG模板


zabbix 内置键值监控cpu zabbix监控gpu_配置文件_11

宏只需要改PG_USER


zabbix 内置键值监控cpu zabbix监控gpu_前端模板 gpu监控_12

数据就OK了


zabbix 内置键值监控cpu zabbix监控gpu_重启_13

出图正常


zabbix 内置键值监控cpu zabbix监控gpu_重启_14

唯一不足的这里的值一直为0,有高手可以私信我啥原因,谢谢


写在最后

该文档仅仅是从0到1的文章,难度在于初始接入对该软件的不熟悉,另外一个是对数据库本身也不太熟悉,所以实现起来难度比较大,在zabbix4.0版本之前,通过其他脚本实现,无疑加大了监控的入门门槛,4.0之后官方提供了许多好用且入门简单的模板,使得更多的人可以跨入监控的领域,有兴趣的同学可以试试,有问题可以留言或者私信我,模板和脚本直接私信我就好了。