linux snmptrap的发送与接收

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的发送与接收就完成了。
相关文章
相关标签/搜索