写具体内容前,我们需要先思考如下几个问题?

  (1)  什么是SnmpTrap ?

(2)SnmpTrap 是用来干什么的?

(3)为什么要设计一个通用的SnmpTrap接收功能?

 

 1、什么是SnmpTrap ?

      摘自网络: SNMP Trap是SNMP的一部分,当被监控段出现特定事件,可能是性能问题,甚至是网络设备接口宕掉等,代理端会给管理站发告警事件。通过告警事件,管理站可以通过定义好的方法来处理告警。

    通俗的来讲:就是设备厂商做了一个监控设备的代理程序,当设备出现故障时,发送的一个告警事件。

2、SnmpTrap 是用来干什么的?

    主要是用来进行告警,为了更好的对设备进行管理,设备厂商一般都会有状态的管理服务器,用来纳管运行的各个设备,当某个设备出现故障时,代理端会上送的管理端。进行报警,方便维护人员及时发现,并解决问题。

3、为什么要设计一个通用的SnmpTrap接收功能?

 带着这个问题,我们就开始了下面的的思考和设计。

  随着信息化的发展,各行各业对监控的需求逐步增强,各厂家提供的监控过于分散,不能完全满足客户的需求,为了建立统一的监控系统,集成接入各厂商的事件,目前SNMP协议在业界的广泛应用,各厂商都基于SNMP实现的Trap 主动告警的功能。为了更便捷,易于扩展,事件统一集中,故进行Trap 通用接入的设计与实现。

 

1)首先要对设备进行分类:

设备接入分类:网络设备(交换机、防火墙、路由器)、存储设备、硬件设备等

2)涉及的接入交易:

    Trap IP接入管理。
    Trap 设备注册管理。
    Trap 报文解析配置。
    Trap 事件预警。
    Trap 推送配置。
    指标黑名单管理。
    事件信息。
    事件详情。
    字典映射维护。

 

3)接入流程

SnmpTrap 事件 接入管理的通用设计思路

 

4) Trap 报文构成

VBS=[{variable=290 days, 8:51:28.19, oid=1.3.6.1.2.1.1.3.0, type=TimeTicks}, {variable=1.3.6.1.4.1.2011.5.25.41.4.7, oid=1.3.6.1.6.3.1
.1.4.1.0, type=OID}, {variable=94, oid=1.3.6.1.4.1.2011.5.25.41.1.7.1.1.10.140, type=Integer32}, {variable=90, oid=1.3.6.1.4.1.2011.5.25.41.1.7.1.1.11.140, type=Integer32}, {variable=GigabitEtherne
t1/3/0/38, oid=1.3.6.1.4.1.2011.5.25.41.1.7.1.1.19.140, type=OctetString}]

5)Trap 涉及的端口及协议

  采用UDP协议,默认使用162端口。

 

 

相关文章: