zabbix PostgreSQL监控模板最终合并到如下repo :
监控项内容参考 :
或自行添加.
以下主要将一下如何定制模板的xml和agentd的conf.
ITEM内容截取自
https://raw.githubusercontent.com/pg-monz/pg_monz/master/pg_monz/pg_monz_template.xml
给当前模板添加Items :
选择一个合适的Items, 和将要添加的items类似.
选择克隆
<item>
<name>Buffers_alloc</name>
<type>0</type>
<snmp_community/>
<multiplier>0</multiplier>
<snmp_oid/>
<key>psql.buffers_alloc[{$PGHOST},{$PGPORT},{$PGROLE},{$PGDATABASE}]</key>
<delay>300</delay>
<history>90</history>
<trends>365</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units>buffers/s</units>
<delta>1</delta>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authpassphrase/>
<snmpv3_privpassphrase/>
<formula>1</formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type>0</data_type>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>PostgreSQL</name>
</application>
</applications>
<valuemap/>
</item>
给当前模板添加Items :
选中模板
修改name, key, 以及其他需要修改的地方.
值存储注意修改, AS IS. 不要用speed per second.
同时还需要修改agentd.conf配置.
重启zabbix_agentd, 查看主机是否已添加对应的Items.
[root@db-172-16-3-221 bin]# vi /opt/zabbix/etc/zabbix_agentd.conf.d/userparameter_pgsql.conf
# add by digoal
UserParameter=psql.database_age[*],psql -h $1 -p $2 -U $3 -d $4 -t -c "select max(age(datfrozenxid)) from pg_database"
重启zabbix_agentd, 查看主机是否已添加对应的Items.
还可以给当前模板添加触发器 :
同样克隆一个. 选择这个来克隆.
修改为age 的触发器, 超过10亿则触发.
[注意]
1. 建议使用postgresql server的启动用户启动zabbix_agentd, 否则可能造成get item的权限问题(例如读取在$PGDATA中的csvlog).
2. 建议使用zabbix_get测试zabbix_agentd配置是否正常.
[参考]