参考文章:http://www.ibm.com/developerworks/cn/linux/l-cn-snmp/
SNMP简单网络管理协议,其中其支持的一个命令snmptrap命令,用于模拟向管理机发送trap消息。
vi /etc/snmp/snmptrapd.conf
添加
traphandle default /usr/local/zabbix/bin/snmptrap.sh #处理脚本
authCommunity execute public
启动陷阱方法:
snmptrapd -C -c /etc/snmp/snmptrapd.conf -Lf /var/log/net-snmptrap.log
上面命令中的选项表示:
- -C : 表示不使用net-snmp默认路径下的配置文件snmptrapd.conf;
- -c : 指定snmptrapd.conf文件;
- -d : 显示收到和发送的数据报,通过这个选项可以看到数据报文;
- -f : 默认情况下,snmptrapd是在后台中运行的,加上这个选项,表示在前台运行;
- -L : 指定日志记录在哪里,后面的o表示直接输出到屏幕上,如果是跟着f表示日志记录到指定的文件中;
可通过snmptrapd -h查看命令帮助了解该命令的使用。
Generic Type包括7种, 分别是:
snmptrap -v1 -c public 192.168.12.1 .1.3.6.1.4.1.1 192.168.12.12 2 3 1000 1.3.6.1.9.9.44.1.2.1 i 12 1.3.4.1.2.3.1 s zzz
输出结果:
2010-06-28 15:45:12 bogon [192.168.2.125] (via UDP: [192.168.12.12]->[192.168.12.1]:-32761 TRAP, SNMP v1, community public
SNMPv2-SMI::enterprises.1 Link Down Trap (3) Uptime: 0:00:10.00
SNMPv2-SMI::internet.9.9.44.1.2.1 = INTEGER: 12 SNMPv2-SMI::org.4.1.2.3.1 = STRING: "zzz"
snmptrap -v1 -c public 192.168.12.1 .1.3.6.1.4.1.1 38.1.55.63 2 3 1000 1.3.6.1.9.9.44.1.2.1 i 12 1.3.4.1.2.3.1 s zzz
snmptrap -v1 -c public 192.168.12.1 .1.3.6.1.4.1.1 38.1.55.63 2 3 1000 1.3.4.1.2.3.1 s "test v1"
snmptrap -v 2c -c public 192.168.12.1 "" 1.3.6.1.4.1.2345 SNMPv2-MIB::sysLocation.0 s "test v2"
snmptrap -v3 -l authNoPriv -a MD5 -u 'mytestsnmpuser' -A 'mytestsnmpuser' -c public 192.168.12.1 "" 1.3.6.1.4.1.2345 SNMPv2-MIB::sysLocation.0 s "test v3"
Received 60 byte packet from UDP: [192.168.12.1]:39976->[192.168.12.1]:162
0000: 30 3A 02 01 00 04 06 70 75 62 6C 69 63 A4 2D 06 0:.....public.-.
0016: 06 2B 06 01 04 01 01 40 04 26 01 37 3F 02 01 02 .+.....@.&.7?...
0032: 02 01 03 43 02 03 E8 30 13 30 11 06 06 2B 04 01 ...C...0.0...+..
0048: 02 03 01 04 07 74 65 73 74 20 76 31 .....test v1
2016-11-18 15:27:24 38.1.55.63(via UDP: [192.168.12.1]:39976->[192.168.12.1]:162) TRAP, SNMP v1, community public
SNMPv2-SMI::enterprises.1 Link Down Trap (3) Uptime: 0:00:10.00
SNMPv2-SMI::org.4.1.2.3.1 = STRING: "test v1"
Received 91 byte packet from UDP: [192.168.12.1]:54102->[192.168.12.1]:162
0000: 30 59 02 01 01 04 06 70 75 62 6C 69 63 A7 4C 02 0Y.....public.L.
0016: 04 13 D7 30 E5 02 01 00 02 01 00 30 3E 30 10 06 ...0.......0>0..
0032: 08 2B 06 01 02 01 01 03 00 43 04 25 28 33 AA 30 .+.......C.%(3.0
0048: 15 06 0A 2B 06 01 06 03 01 01 04 01 00 06 07 2B ...+...........+
0064: 06 01 04 01 92 29 30 13 06 08 2B 06 01 02 01 01 .....)0...+.....
0080: 06 00 04 07 74 65 73 74 20 76 32 ....test v2
2016-11-18 15:29:24 <UNKNOWN> [UDP: [192.168.12.1]:54102->[192.168.12.1]:162]:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (623391658) 72 days, 3:38:36.58 SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.2345 SNMPv2-MIB::sysLocation.0 = STRING: test v2
Received 187 byte packet from UDP: [192.168.12.1]:58668->[192.168.12.1]:162
0000: 30 81 B8 02 01 03 30 11 02 04 77 18 AC F1 02 03 0.....0...w.....
0016: 00 FF E3 04 01 01 02 01 03 04 3B 30 39 04 11 80 ..........;09...
0032: 00 1F 88 80 77 D2 34 6B F1 4B 18 58 00 00 00 00 ....w.4k.K.X....
0048: 02 01 4E 02 01 00 04 0E 6D 79 74 65 73 74 73 6E ..N.....mytestsn
0064: 6D 70 75 73 65 72 04 0C 5F E9 B2 DC D7 BD B8 04 mpuser.._.......
0080: F7 0D BF DB 04 00 30 63 04 11 80 00 1F 88 80 77 ......0c.......w
0096: D2 34 6B F1 4B 18 58 00 00 00 00 04 00 A7 4C 02 .4k.K.X.......L.
0112: 04 2D 03 BF 32 02 01 00 02 01 00 30 3E 30 10 06 .-..2......0>0..
0128: 08 2B 06 01 02 01 01 03 00 43 04 25 28 15 7F 30 .+.......C.%(..0
0144: 15 06 0A 2B 06 01 06 03 01 01 04 01 00 06 07 2B ...+...........+
0160: 06 01 04 01 92 29 30 13 06 08 2B 06 01 02 01 01 .....)0...+.....
0176: 06 00 04 07 74 65 73 74 20 76 33 ....test v3
配置文件内容authCommunity log,execute,net public 与 authCommunity execute public 的区别
authCommunity log,execute,net public的输出内容格式为:
Received 93 byte packet from UDP: [192.168.12.1]:48241->[192.168.12.1]:162
0000: 30 5B 02 01 01 04 06 70 75 62 6C 69 63 A7 4E 02 0[.....public.N.
0016: 04 77 A7 51 18 02 01 00 02 01 00 30 40 30 10 06 .w.Q.......0@0..
0032: 08 2B 06 01 02 01 01 03 00 43 04 13 13 5D 76 30 .+.......C...]v0
0048: 15 06 0A 2B 06 01 06 03 01 01 04 01 00 06 07 2B ...+...........+
0064: 06 01 04 01 92 29 30 15 06 08 2B 06 01 02 01 01 .....)0...+.....
0080: 06 00 04 09 6A 75 73 74 20 68 65 72 65 ....just here
2016-11-18 09:52:45 <UNKNOWN> [UDP: [192.168.12.1]:48241->[192.168.12.1]:162]:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (320036214) 37 days, 0:59:22.14 SNMPv2-MIB::snmpTrapOID.0 = OID: SNMPv2-SMI::enterprises.2345 SNMPv2-MIB::sysLocation.0 = STRING: just here
authCommunity execute public的输出内容格式为:
Received 93 byte packet from UDP: [192.168.12.1]:46390->[192.168.12.1]:162
0000: 30 5B 02 01 01 04 06 70 75 62 6C 69 63 A7 4E 02 0[.....public.N.
0016: 04 46 7C C8 61 02 01 00 02 01 00 30 40 30 10 06 .F|.a......0@0..
0032: 08 2B 06 01 02 01 01 03 00 43 04 25 09 9A 64 30 .+.......C.%..d0
0048: 15 06 0A 2B 06 01 06 03 01 01 04 01 00 06 07 2B ...+...........+
0064: 06 01 04 01 92 29 30 15 06 08 2B 06 01 02 01 01 .....)0...+.....
0080: 06 00 04 09 6A 75 73 74 20 68 65 72 65 ....just here
配置文件/etc/snmp/snmptrapd.conf说明
traphandle default /usr/local/zabbix/bin/snmptrap.sh #处理脚本
authCommunity execute public
以 authCommunity 开头的一行配置了 snmptrapd 的安全设置,表示可以接收 community 为”public”的 SNMP Trap,并且本进程可以有 log,net 和 execute 的权限。
Log 权限表明收到 Trap 之后 snmptrapd 可以记录日志;execute 表明收到 Trap 之后可以执行 traphandle 中所指定的操作。Net 表示 snmptrapd 可以将接收到的 Trap 信息转发到其他的 Receiver 去。(假如需要转发,还需要对给定的 OID 指定以 forward 为开始的处理细节:forward OID|default DESTINATION)