`
shenlan177
  • 浏览: 67516 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

linux snmptrap的发送与接收。

 
阅读更多
需求是这样的。

由于需要管理服务器的一些参数,比如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`协议接收工具是针对SNMP Trap消息设计的应用,允许用户在Windows、Linux和Unix系统上接收并处理这些 traps。 SNMP Trap工作原理: 1. 设备触发事件:当网络设备(如路由器、交换机或服务器)遇到预定义...

    用net-snmp的api实现trap接收,windows+linux

    通过以上步骤,你可以创建一个基本的、跨平台的SNMP trap接收器,它可以与网络设备进行通信,接收并处理来自不同设备的trap通知。在实际应用中,你可能还需要考虑安全性,例如使用安全的SNMP版本(如v3),并配置...

    SNMP_TRAP监听工具

    在实际应用中,SNMP_TRAP监听工具通常与网络管理系统(NMS)结合使用,NMS通过解析TRAP信息来自动化网络监控和管理。同时,为了确保安全,应当对发送TRAP的设备进行白名单配置,防止恶意或未经授权的TRAP消息干扰...

    linux c 基于netsnmp写的trap服务器

    linux下基于netsnmp写的trap服务器,纯C代码,可解析出trap发送方的地址及trap消息内容,可直接编译和测试。编译方法为: gcc trap.c -lnetsnmp

    Snmp_trap的配置与使用.doc

    在Agent端,使用`snmptrap`命令发送一个Test Trap到管理站,观察管理站的反应。如果启动`snmptrapd`遇到问题,可能需要重新编译并安装缺失的SNMP模块。 五、实际应用示例 在上述示例中,管理站在接收到Trap后尝试...

    Use-SnmpTrap-Tools.rar_SNMPtrap

    1. 发送陷阱:你可以使用 SnmpTrap 工具模拟设备发送陷阱,以便测试 SNMP 管理系统是否能正确接收和处理。 2. 配置陷阱接收器:管理站需要配置为监听特定端口(默认为 UDP 162),并识别来自不同设备的陷阱消息。 3....

    Zabbix - snmp trap监控教程(SNMPTT安装所需软件包)

    1. **SNMP**: 这是最基础的组件,提供Trap的发送和接收功能。在Linux系统中,通常预装了`net-snmp`或`libsnmp`库。 2. **SNMPTT**: SNMP Trap翻译器,负责将接收到的Trap解析并转发给Zabbix。下载源代码后编译安装...

    SNMP++ linux下的环境搭建与编译及测试

    - **Trap**:SNMP代理主动发送给管理站的通知,用于报告异常情况。 8. **SNMP++关键类和函数** - `Snmp`: 主要的SNMP通信类,用于发送GET、SET请求和接收响应。 - `VariableList`: 用于存储OID和其对应的值。 -...

    LINUX环境下用C++实现SNMP网管协议

    Manager端运行在Linux操作系统上,部署有耶健同学编写的SNMP应用软件,用于发送GET、GET-NEXT和SET等命令,以查询或修改网络设备的状态。Agent端则位于网络中的各个设备上,接收并响应Manager端的请求。 #### 2. ...

    snmp.rar_HTTPSend.d_SNMP_linux snmp++_pingsend.dcu_snmp编程

    这个库可能包含了SNMP协议版本1、2c和3的支持,以及陷阱(trap)发送和接收等功能。 4. **pingsend.dcu**: 这看起来是FreePascal或Delphi的单元文件,可能是一个用于发送SNMP“ping”请求的组件。在SNMP中,"ping...

    snmp++/agent++(Linux+Windows)编译通过

    3. GET、SET 和 TRAP 操作:GET 用于获取变量值,SET 用于修改变量值,TRAP 用于设备向管理站发送事件通知。 4. PDU(Protocol Data Unit):SNMP 报文的数据结构,包含请求和响应信息。 5. OID(Object Identifier...

    EPON网管系统中SNMP Agent在Linux下的研究与实现.pdf

    4. 配置和测试:配置SNMP Agent的监听端口、社区字符串(security参数)以及trap接收设置,并进行功能和性能测试。 此外,OAM(Operation, Administration, and Maintenance,操作、管理与维护)协议在EPON系统中也...

    SUSE11下snmp安裝包

    管理站则是负责发送请求、接收响应并处理信息的中心控制点;MIB是设备配置和状态信息的结构化数据库。 在SUSE 11上安装SNMP,你需要执行以下步骤: 1. 更新系统: 使用`zypper`命令更新你的SUSE 11系统的软件包...

    snmp.rar_snmp linux

    此外,SNMP还支持陷阱(Trap)功能,即设备在特定事件发生时主动向NMS发送通知。在`snmpd.conf`中启用陷阱服务,并指定一个陷阱接收端口: ```conf trapsink localhost public 162 ``` 然后,你可以在NMS上配置...

    net-snmp开始教程

    5. snmptrap:Trap 生产工具,用于生成 SNMP Trap 消息。 Net-SNMP 代码结构 Net-SNMP 代码结构主要包括: 1. agent/ Directory:包含 SNMP 代理服务器的代码。 2. apps/ Directory:包含 SNMP 应用程序的代码。 ...

    net-snmp-5.2.2源代码

    SNMP通过发送和接收管理信息来实现对网络设备的配置、故障检测和性能监控。 **net-snmp项目** `net-snmp` 是一个开源的SNMP软件库,它包含了SNMP代理(agent)、管理站(manager)和一系列实用工具。`...

    NET-SNMP开发简述

    示例代码片段(设置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...

Global site tag (gtag.js) - Google Analytics