需求是这样的。
由于需要管理服务器的一些参数,比如CPU使用率,IOwait之类的指标,管理方通过snmpwalk进行五分钟一次对受管服务器的轮询。
此类指标为业务指标,是必须了解的一些参数,另需要有告警指标信息。
但由于告警信息一般是由受管服务器进行主动告警,这时候就不能通过管理方主动使用snmpwalk来进行,而是由受管服务器通过snmptrap进行。
以下是对双方进行snmptrap的一些设置。
首先是管理方,需要先配置snmptrapd.conf,可以将之放在与snmpd.conf同一个路径下,在我本地环境下为(/etc/snmp/snmptrapd.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的内容:
#!/usr/bin/perl
use strict;
my $file="file.trap";
open(HANDOUT,">>./$file");
while(<STDIN>)
{
print HANDOUT "$_";
}
然后输入命令:
snmptrapd -c /etc/snmp/snmptrapd.conf
将此配置文件设置为默认配置文件,并启动snmptrapd进程:
# snmptrapd -d -f -Lo
在受管方,使用命令:
snmptrap -v 2c -c public *.*.*.* "" .1.3.6.1.4.1.2021.251.1 sysLocation.0 s "longtengfei"
而后在管理方会接收到如下信息:
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 .......longtengf
0096: 65 69 ei
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: longtengfei
至此,最简单的snmptrap的发送与接收就完成了。
分享到:
相关推荐
snmp4j 实现snmp trap发送与接收
最近调试SNMP协议,要调试设备上的trap发送功能,需要在windows端接收,,也支持Linux和unix,需要java环境,找来找去很辛苦终于找到这款软件,挺不错的
windows平台下,用于接收snmp协议的trap消息的小软件,可以测试你编写的trap命令是否发送成功了
C语言中net-snmp-trap发送代码,测试可行。
Java使用SNMP4J实现snmp trap接口发送消息_20170808_LK
snmp trap 接收
NULL 博文链接:https://jyao.iteye.com/blog/357216
linux下基于netsnmp写的trap服务器,纯C代码,可解析出trap发送方的地址及trap消息内容,可直接编译和测试。编译方法为: gcc trap.c -lnetsnmp
监听SNMPtrap消息的小工具,自带解析功能
SNMP TRAP消息其实就是UDP报文,TRAP服务器就是UDP服务器(即接收方,UDP端口为162),发送TRAP消息的其实就是UDP客户端。 本demo包含TRAP接收的服务器和发送TRAP消息的UDP客户端两个部分,基于SnmpSharpNet做的,...
使用snmp++在mfc下简单实现Trap接收,监视接口状态为DOWN或UP。
用net-snmp的c apis实现trap的接收,类似于snmptrapd工具的实现,但是更为简单。
java实现snmp数据包发送和接收资料,个人收集的,免费下吧。
vc++ snmp trap例子 源码
轻型的SNMP协议实现(占有体积低,占有内存低),嵌入式开发的首选实现。
SNMP Trap 接收工具,可以在windows 10 上运行,亲测可用,不需要安装dll,打开即可用。
利用SNMP4J实现Snmp Trap完整例子 - 企业应用 - Java - JavaEye论坛.mht
WINDOWS下SNMP TRAP接收调试软件,可显示TRAP信息列表和TRAP信息的编码内容,非常适合嵌入式SNMP协议开发者使用。
snmp4j的发送和接收trap