样例:使用cacti进行邮件队列监控:
在被监控服务器上,增加脚本:
/usr/local/luly/MonitorMailq.sh
#!/bin/bash
# check postfix mail for snmpd
mailq=$(mailq | grep 'Request')
if [ $? -eq 1 ]; then
echo '0'
exit 0
fi
mail_sum=$(echo $mailq | awk '{print $5}')
echo $mail_sum
授权:chmod +x /usr/local/luly/MonitorMailq.sh
在/usr/local/etc/snmp/snmpd.conf最后增加一行:
extend .1.3.6.1.4.1.2021.53 mailq /usr/local/luly/MonitorMailq.sh
其中mailq是命令的名称,后面是命令以及参数。命令的名称可以随便起。
重启snmpd;
[root@localhost ~]# snmpwalk -v 2c localhost -c public .1.3.6.1.4.1.2021.53
UCD-SNMP-MIB::ucdavis.53.1.0 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.53.2.1.2.12.77.111.110.105.116.111.114.77.97.105.108.113 = STRING: "/usr/local/luly/MonitorMailq.sh"
UCD-SNMP-MIB::ucdavis.53.2.1.3.12.77.111.110.105.116.111.114.77.97.105.108.113 = ""
UCD-SNMP-MIB::ucdavis.53.2.1.4.12.77.111.110.105.116.111.114.77.97.105.108.113 = ""
UCD-SNMP-MIB::ucdavis.53.2.1.5.12.77.111.110.105.116.111.114.77.97.105.108.113 = INTEGER: 5
UCD-SNMP-MIB::ucdavis.53.2.1.6.12.77.111.110.105.116.111.114.77.97.105.108.113 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.53.2.1.7.12.77.111.110.105.116.111.114.77.97.105.108.113 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.53.2.1.20.12.77.111.110.105.116.111.114.77.97.105.108.113 = INTEGER: 4
UCD-SNMP-MIB::ucdavis.53.2.1.21.12.77.111.110.105.116.111.114.77.97.105.108.113 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.53.3.1.1.12.77.111.110.105.116.111.114.77.97.105.108.113 = STRING: "4"
UCD-SNMP-MIB::ucdavis.53.3.1.2.12.77.111.110.105.116.111.114.77.97.105.108.113 = STRING: "4"
UCD-SNMP-MIB::ucdavis.53.3.1.3.12.77.111.110.105.116.111.114.77.97.105.108.113 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.53.3.1.4.12.77.111.110.105.116.111.114.77.97.105.108.113 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.53.4.1.2.12.77.111.110.105.116.111.114.77.97.105.108.113.1 = STRING: "4"
确认mailq中的个数可知,
UCD-SNMP-MIB::ucdavis.53.4.1.2.12.77.111.110.105.116.111.114.77.97.105.108.113.1 = STRING: "4"这个即为我们想要的值;
[root@localhost ~]# snmpwalk -v 2c localhost -c public .1.3.6.1.4.1.2021.53.4.1.2.12.77.111.110.105.116.111.114.77.97.105.108.113.1
UCD-SNMP-MIB::ucdavis.53.4.1.2.12.77.111.110.105.116.111.114.77.97.105.108.113.1 = STRING: "4"
生成数据源
在cacti界面中console->Templates->Data Templates,然后点击右上角的Add,如下图:
Templates 中的name是给这个数据模板的命名,Data Source中的name将来显示在Data Sources中,我这里添加“|host_description|-MonitorMailq”,选get snmp data,Internal Data Source Name也可以随便添,这个用来给rrd文件命名,设置完之后点击create,然后下面会多出一些选项,我们只需填写一项就可以,就是OID那一项,把 我们上面记下来的OID填写进去:
添加模板制图
在cacti界面中console->Templates->Graph Templates,然后点击右上角的Add,如下图:
Graph Template中的name是将来显示在图片上面中间的内容,我这里添加"|host_description|-MonitorMailq",然后create,上面会多出一些选项,Graph Template Items 这里就是让我们添加数据源;
这里增加Graph Item Type为AVEA区域显示类型;
然后分别增加:average/last/max这几个类型的数据源;
添加完后如下图:
把模板添加进去被监控机里
在New Graphs中选择主机然后在Graph Templates中的下拉表拉选我们添加的模板,点击create
Console->Management->Graph Tress->Default Tree->Tree Items->对应IP旁边的Add
这时在Graphs->Tree Mode->IP中,应该可以看到监控的数据了;