linux snmptrap的發送與接收linux
因爲須要管理服務器的一些參數,好比CPU使用率,IOwait之類的指標,管理方經過snmpwalk進行五分鐘一次對受管服務器的輪詢。 shell
此類指標爲業務指標,是必須瞭解的一些參數,另須要有告警指標信息。 服務器
但因爲告警信息通常是由受管服務器進行主動告警,這時候就不能經過管理方主動使用snmpwalk來進行,而是由受管服務器經過snmptrap進行。 this
如下是對雙方進行snmptrap的一些設置。 pwa
首先是管理方,須要先配置snmptrapd.conf,能夠將之放在與snmpd.conf同一個路徑下,在我本地環境下爲(/etc/snmp/snmptrapd.conf) code
配置代碼: Conf代碼 authcommunity execute,log,net public traphandle .1.3.6.1.4.1.2021.251.1 /root/traptest/test.pl 其中authcommunity是爲了設置全部用戶的訪問權限:可執行,記錄,傳遞。 設置traphandle(即收到.1.3.6.1.4.1.2021.251.1類OID信息時,執行test.pl)。 test.pl的內容: Perl代碼 #!/usr/bin/perl use strict; my $file="file.trap"; open(HANDOUT,">>./$file"); while(<STDIN>) { print HANDOUT "$_"; } 而後輸入命令: Linux代碼 snmptrapd -c /etc/snmp/snmptrapd.conf 將此配置文件設置爲默認配置文件,並啓動snmptrapd進程: Linux代碼 # snmptrapd -d -f -Lo 在受管方,使用命令: Linux代碼 snmptrap -v 2c -c public 10.0.0.214:162 "" .1.3.6.1.4.1.2021.251.1 sysLocation.0 s "this is test" 然後在管理方會接收到以下信息: Linux代碼 Received 98 bytes from UDP: [221.176.14.88]:58750 0000: 30 60 02 01 01 04 06 70 75 62 6C 69 63 A7 53 02 0`.....public.S. 0016: 04 1B CE 4F F1 02 01 00 02 01 00 30 45 30 10 06 ...O.......0E0.. 0032: 08 2B 06 01 02 01 01 03 00 43 04 28 8D B0 5B 30 .+.......C.(..[0 0048: 18 06 0A 2B 06 01 06 03 01 01 04 01 00 06 0A 2B ...+...........+ 0064: 06 01 04 01 8F 65 81 7B 01 30 17 06 08 2B 06 01 .....e.{.0...+.. 0080: 02 01 01 06 00 04 0B 6C 6F 6E 67 74 65 6E 67 66 .......this is test 0096: 65 69 2012-07-16 10:44:17 <UNKNOWN> [UDP: [221.176.14.88]:58750]: DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (680374363) 78 days, 17:55:43.63 SNMPv2-MIB::snmpTrapOID.0 = OID: UCD-SNMP-MIB::ucdStart SNMPv2-MIB::sysLocation.0 = STRING: this is test 至此,最簡單的snmptrap的發送與接收就完成了。