linux-使用snmp监控邮件队列

上一篇 / 下一篇  2009-09-23 17:22:03 / 个人分类:linux

使用snmp监控邮件队列

脚本/lulyMonitorMailq.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

 


在snmpd.conf最后增加一行:
exec .1.3.6.1.4.1.2021.20.101.0 lulymailq /lulyMonitorMailq.sh

其中lulymailq是命令的名称,后面是命令以及参数。命令的名称可以随便起。
重启snmpd:/etc/init.d/snmpd restart

 

[root@localhost /]# snmpwalk -v 2c 127.0.0.1 -c public .1.3.6.1.4.1.2021.20
UCD-SNMP-MIB::ucdavis.20.101.0.1.1 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.20.101.0.2.1 = STRING: "lulymailq"
UCD-SNMP-MIB::ucdavis.20.101.0.3.1 = STRING: "/lulyMonitorMailq.sh"
UCD-SNMP-MIB::ucdavis.20.101.0.100.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.20.101.0.101.1 = STRING: "52"
UCD-SNMP-MIB::ucdavis.20.101.0.102.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.20.101.0.103.1 = ""

我们需要的是UCD-SNMP-MIB::ucdavis.20.101.0.101.1 = STRING: "52"这一行:

#snmpwalk -v 1 192.168.1.201 -c public .1.3.6.1.4.1.2021.20.101.0.101.1
UCD-SNMP-MIB::ucdavis.20.101.0.101.1 = STRING: "52"

能采集到数据之后,就可以配置cacti来制图了;


附:
内存使用率脚本
#!/bin/sh
used=`/usr/bin/free -m | grep Mem |awk '{print $3}'`
total=`/usr/bin/free -m | grep Mem |awk '{print $2}'`
echo $used
echo $total

 

目前有遇到两个问题:

1、使用cacti制图时,不能把时间间隔设成很小,比如2秒3秒抓一次数据;
2、LOADRUNNER也有SNMP功能,但LR的SNMP只能抓INTEGER的数据,但SNMP抓到SHELL的数据是STRING型,所以LR也不能用了。。。



#####################################################

目前net-snmp5.4版本,不支持exec

需要修改为extend才能使用,否则报错:

/usr/local/etc/snmp/snmpd.conf: line 411: Error: ERROR: This output format has been deprecated - Please use the 'extend' directive instead
net-snmp: 1 error(s) in config file(s)



TAG: Linux 邮件 SNMP snmp 队列 监控

 

评分:0

我来说两句

Open Toolbar