需求是这样的。
由于需要管理服务器的一些参数,比如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的发送与接收就完成了。
分享到:
相关推荐
`snmp_trap`协议接收工具是针对SNMP Trap消息设计的应用,允许用户在Windows、Linux和Unix系统上接收并处理这些 traps。 SNMP Trap工作原理: 1. 设备触发事件:当网络设备(如路由器、交换机或服务器)遇到预定义...
通过以上步骤,你可以创建一个基本的、跨平台的SNMP trap接收器,它可以与网络设备进行通信,接收并处理来自不同设备的trap通知。在实际应用中,你可能还需要考虑安全性,例如使用安全的SNMP版本(如v3),并配置...
在实际应用中,SNMP_TRAP监听工具通常与网络管理系统(NMS)结合使用,NMS通过解析TRAP信息来自动化网络监控和管理。同时,为了确保安全,应当对发送TRAP的设备进行白名单配置,防止恶意或未经授权的TRAP消息干扰...
linux下基于netsnmp写的trap服务器,纯C代码,可解析出trap发送方的地址及trap消息内容,可直接编译和测试。编译方法为: gcc trap.c -lnetsnmp
在Agent端,使用`snmptrap`命令发送一个Test Trap到管理站,观察管理站的反应。如果启动`snmptrapd`遇到问题,可能需要重新编译并安装缺失的SNMP模块。 五、实际应用示例 在上述示例中,管理站在接收到Trap后尝试...
1. 发送陷阱:你可以使用 SnmpTrap 工具模拟设备发送陷阱,以便测试 SNMP 管理系统是否能正确接收和处理。 2. 配置陷阱接收器:管理站需要配置为监听特定端口(默认为 UDP 162),并识别来自不同设备的陷阱消息。 3....
1. **SNMP**: 这是最基础的组件,提供Trap的发送和接收功能。在Linux系统中,通常预装了`net-snmp`或`libsnmp`库。 2. **SNMPTT**: SNMP Trap翻译器,负责将接收到的Trap解析并转发给Zabbix。下载源代码后编译安装...
- **Trap**:SNMP代理主动发送给管理站的通知,用于报告异常情况。 8. **SNMP++关键类和函数** - `Snmp`: 主要的SNMP通信类,用于发送GET、SET请求和接收响应。 - `VariableList`: 用于存储OID和其对应的值。 -...
Manager端运行在Linux操作系统上,部署有耶健同学编写的SNMP应用软件,用于发送GET、GET-NEXT和SET等命令,以查询或修改网络设备的状态。Agent端则位于网络中的各个设备上,接收并响应Manager端的请求。 #### 2. ...
这个库可能包含了SNMP协议版本1、2c和3的支持,以及陷阱(trap)发送和接收等功能。 4. **pingsend.dcu**: 这看起来是FreePascal或Delphi的单元文件,可能是一个用于发送SNMP“ping”请求的组件。在SNMP中,"ping...
3. GET、SET 和 TRAP 操作:GET 用于获取变量值,SET 用于修改变量值,TRAP 用于设备向管理站发送事件通知。 4. PDU(Protocol Data Unit):SNMP 报文的数据结构,包含请求和响应信息。 5. OID(Object Identifier...
4. 配置和测试:配置SNMP Agent的监听端口、社区字符串(security参数)以及trap接收设置,并进行功能和性能测试。 此外,OAM(Operation, Administration, and Maintenance,操作、管理与维护)协议在EPON系统中也...
管理站则是负责发送请求、接收响应并处理信息的中心控制点;MIB是设备配置和状态信息的结构化数据库。 在SUSE 11上安装SNMP,你需要执行以下步骤: 1. 更新系统: 使用`zypper`命令更新你的SUSE 11系统的软件包...
此外,SNMP还支持陷阱(Trap)功能,即设备在特定事件发生时主动向NMS发送通知。在`snmpd.conf`中启用陷阱服务,并指定一个陷阱接收端口: ```conf trapsink localhost public 162 ``` 然后,你可以在NMS上配置...
5. snmptrap:Trap 生产工具,用于生成 SNMP Trap 消息。 Net-SNMP 代码结构 Net-SNMP 代码结构主要包括: 1. agent/ Directory:包含 SNMP 代理服务器的代码。 2. apps/ Directory:包含 SNMP 应用程序的代码。 ...
SNMP通过发送和接收管理信息来实现对网络设备的配置、故障检测和性能监控。 **net-snmp项目** `net-snmp` 是一个开源的SNMP软件库,它包含了SNMP代理(agent)、管理站(manager)和一系列实用工具。`...
示例代码片段(设置Trap发送): ```c // 创建Trap请求 snmp_pdu *pdu = snmp_pdu_create(SNMP_MSG_TRAP); // 添加变量绑定 snmp_add_var_typed_oid(pdu, SNMP_TYPE_OCTET_STR, my_oid, oid_len, &message, sizeof...