SNMP trap的意義和寫入
在SNMP定義中,我們知道它是具有Trap功能的。這個功能是什么意思呢?這還是先從它的意思說起。首先Trap在SNMP中我們可以翻譯成陷阱或者是自陷。被管理設(shè)備中的代理可以在任何時候向網(wǎng)絡(luò)管理工作站報告錯誤情況,例如預(yù)制定閾值越界程度等等。代理并不需要等到管理工作站為獲得這些錯誤情況而輪詢他的時候才會報告。這些錯誤情況就是眾所周知的SNMP自陷(trap)。
在這種結(jié)合的方法中,當(dāng)一個設(shè)備產(chǎn)生了一個自陷時,你可以使用網(wǎng)絡(luò)管理工作站來查詢該設(shè)備(假設(shè)它仍然是可到達的),以獲得更多的信息。
用snmptrapd接收SNMP trap信息,并將其寫入特定文檔2009-03-20 14:42最近在研究snmp trap、snmptrapd信息,目前為止還沒研究出如何使snmp trap自動發(fā)信息。但是可以用snmptrapd接收SNMP trap信息,并將其寫入特定文檔。
一、管理端
建立/usr/share/snmp/snmptrapd.conf(我的機器上是這個,不同機器不同,可能有的放在/etc/snmp,/usr/local/share/snmp/下,視不同情況慢慢實驗)
加入以下一行:
設(shè)置所有用戶的訪問權(quán)限:可執(zhí)行,記錄,傳遞:
authcommunity execute,log,net public
設(shè)置traphandle(即收到.1.3.6.1.4.1.2021.251.1類OID信息時,執(zhí)行test.pl)
traphandle .1.3.6.1.4.1.2021.251.1 /home/long/test.pl
這里.1.3.6.1.4.1.2021.251.1是Enterprise-OID
/home/long/test.pl是一個處理的perl文件:
#!/usr/bin/perl
use strict;
my $file="file.trap";
open(HANDOUT,">>./$file");
while(<STDIN>)
{
print HANDOUT "$_";
}
這是將snmp trap發(fā)過來的數(shù)據(jù)包輸入到file.trap文件中然后啟動/etc/init.d/snmpd start,這個要先啟動,然后使用"snmptrapd -c /etc/snmp/snmptrapd.conf"
二、代理端
在另外一臺機器中輸入命令:
snmptrap-v 2c -c public 192.168.126.99 "" .1.3.6.1.4.1.2021.251.1 sysLocation.0 s "longtengfei"
192.168.126.99 就是剛才的管理端的地址,.1.3.6.1.4.1.2021.251.1對應(yīng)的就是管理端的snmptrapd.conf中的Enterprise-OID.
執(zhí)行的結(jié)過就會出現(xiàn):在file.trap(在/root/file.trap目錄下)文件內(nèi)容變成:
<UNKNOWN>UDP:[192.168.126.200]:35327DISMAN-EVENT-MIB::sysUpTimeInstance 3:1:37:20:21
SNMPv2-MIB::snmpTrapOID.0 UCD-SNMP-MIB::ucdStartSNMPv2-MIB::sysLocation.0 longtengfei