Linux-使用snmp監控郵件佇列

Michael_DD發表於2015-05-04
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)




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29500582/viewspace-1621385/,如需轉載,請註明出處,否則將追究法律責任。

相關文章