* 在/etc/hosts.allow中加入准許接收的網段
snmptrapd: 192.168.0.0/255.255.0.0 : Allow
* 建立/etc/snmp/snmptrapd.conf
disableAuthorization yes
traphandle default /usr/sbin/snmptthandler
disableAuthorization不做認證的動作
traphandle告知traphandle的所在位置
default則表示接受全部的OID而不是只接受特定的OID
* 修改/etc/init.d/snmptrapd中的OPTIONS
OPTIONS="-On -C -c /etc/snmp/snmptrapd.conf -Ls2 -p /var/run/snmptrapd.pid"
-On意思是指以數字形式秀出OID
-C是不讀其他的設定檔只讀-c後面指定的設定檔
-c後面指定要讀入的設定檔
-Ls2使指用syslog記錄LOG並且記錄在local2的facility
-p將trap daemon的process ID記錄在檔案中
2. 安裝snmptt
* 安裝 Config::IniFiles perl module
安裝後才能讓perl正常讀取ini檔
wget http://search.cpan.org/CPAN/authors/id/W/WA/WADG/Config-IniFiles-2.38.tar.gz
解壓縮
perl Makefile.pl
make
make install
* wget http://downloads.sourceforge.net/snmptt/snmptt_1.2.tgz?modtime=1181989825&big_mirror=0
解壓縮snmptt
* cp snmptt snmptthandler snmpttconvert snmpttconvertmib ./contrib/sendemail.sh 至/usr/sbin
* cp snmptt.ini至/etc/snmp/
* cp snmptt-init.d /etc/init.d/snmpttd
chmod 755 /etc/init.d/snmpttd
chmod 755 /usr/sbin/sendemail.sh
chkconfig --level 345 snmptrapd on
chkconfig --level 345 snmpttd on
* useradd snmptt
groupadd snmptt
* mkdir /var/log/snmptt /var/spool/snmptt
chown snmptt /var/log/snmptt
chown snmptt /var/spool/snmptt
* 修改snmptt.ini
mode = daemon
daemon_uid = snmptt
spool_directory = /var/spool/snmptt/
log_enable = 1
log_file = /var/log/snmptt/snmptt.log
unknown_trap_log_enable = 1
unknown_trap_log_file = /var/log/snmptt/unknown.log
snmptt_conf_files = <
/etc/snmp/snmptt.conf
END
將想要讀入的conf檔寫在這裡
snmpttd啟動時便會把這些檔讀入
這些conf檔就是要用來比對OID以及所要進行的動作
* cp examples/snmptt.conf.generic /etc/snmp/snmptt.conf
o 基本上snmptt.conf裡面中的coldStart,warmStart,linkdown,linkup,authenticationFailure就已
達到基本Router所要的網管功能.
o 如果需要如當linkdown時, 發mail或簡訊時, 可以修改如下:
EXEC /usr/sbin/sendemail.sh "FORMAT NIC switchover to slot $3 from slot $5"
3. 修改/etc/syslog.conf
local0.* /var/log/snmptt.log
local2.* /var/log/snmptrapd.log
4. 啟動service
service syslog restart (如果有裝syslog-ng 則重啟syslog-ng)
service snmptrapd start
service snmpttd start
5. Trouble Shooting:
* check /var/log/snmptrapd.log
6. check /var/log/snmptt/snmptt.log
check /var/log/snmptt/unknown.log
snmptt有更很棒的好處, 就是你不用自己一個個去study每個Device的MIB, 再轉成有用的rule, 你可以直接用
snmpttconvertmib.
1. snmpttconvertmib --in=/usr/share/snmp/mibs/XXX.txt --out=/etc/snmp/XXX.conf
2. vi /etc/snmp/snmptt.ini
snmptt_conf_files = <
/etc/snmp/snmptt.conf
/etc/snmp/XXX.conf
END
3. service snmpttd reload
就可以開始接收XXX的Trap了.
不時看看/var/log/snmptt/unknown.log, 再把無法translate的mib給加入. 以Cisco為例, 有幾個好用tool:
1. http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml
2. http://tools.cisco.com/Support/SNMP/do/BrowseMIB.do?local=en&step=2
3. http://tools.cisco.com/Support/SNMP/do/MIBSupport.do?local=en&step=3
4. 不過最好用的是這個http://tools.cisco.com/Support/SNMP/do/BrowseOID.do?local=en
把在unkown.log中的cisco mib, 截取一部份貼入, 就會告訴你要load那個mib, 再用snmpttconvertmib加入至
snmp_cisco.conf.
===============================================
SNMP Client 的設定
只要在/etc/snmp/snmpd.conf的最後加上下面兩行即可
trapsink 192.168.187.133 public
trap2sink 192.168.187.133 public
中間的IP是snmptrapd主機的IP
改完後重新啟動snmp
service snmpd restart
沒有留言 :
張貼留言