



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浅谈Linux中开发SNMP TrapSNMP Trap 是一种标准的报告机制,广泛应用在各种网络管理软件中。本文详细介绍了 SNMP Trap 的基本概念,以及 Linux 下面 net-snmp 对SNMP Trap的开发与应用。1. SNMP Trap简介SNMP简单网络管理协议(Simple Network Management Protocol)是一种应用层协议,是TCP/IP协议族的一部分。它使网络设备之间能够方便地交换管理信息。能够让网络管理员管理网络的性能,发现和解决网络问题及进行网络的扩充。SNMP Trap 是 SNMP 的一部分,当被监控段出现特定事件,可能是性能问题,甚至是网络设备接口宕掉等,代理端会给管理站发告警事件。假如在特定事件出现的时刻,不是由 Agent 主动通知 NMS(Network Management Station ),那么 NMS 必须不断地对 Agent 进行轮询。这是非常浪费计算资源的方法,正如人们用中断通知 CPU 数据的到达,而不是让 CPU 进行轮询一样。Trap 通知是更加合理的选择。总的来说,SNMP Trap 就是被管理设备主动发送消息给 NMS 的一种机制。 2. SNMP Trap报文Trap PDU不同于其他类型的PDU格式,Trap PDU包含的部分都是为描述事件而定义的,见下图所示:PDUenterpriseagent-addrgeneric-trapspecific-traptime- stampvar-list各部分的解释如下:enterprise:企业标识、对象标识。agent-addr:产生Trap的被管理设备的地址。generic-trap:用于识别Trap的类型,取值0-6,6代表特殊代码的扩展。specific-trap:与generic-trap一起标识扩展Trap类型。time-stamp:时间戳,系统从上次启动到产生该Trap的系统时间。var-list:绑定的对象标识-值等数据。3. 设计一个 Trap 消息Trap 消息也是用 MIB 来定义的。在下面的例子中,我们定义了一个 Trap 消息:fxPortReset、fxPortResetOK。树型结构如下:fxBMDevTrap . 1.3.6.1.4.1.33619.10.3.1.52 +-fxBMDevAlarm . 1.3.6.1.4.1.33619.10.3.1.52.1 +-fxBMPortAlarm . 1.3.6.1.4.1.33619.10.3.1.52.1.1 |-fxPortReset . 1.3.6.1.4.1.33619.10.3.1.52.1.1.1 |-fxPortResetOK . 1.3.6.1.4.1.33619.10.3.1.52.1.1.2fxPortReset、fxPortResetOK被定义为 NOTIFICATION类型,即 SNMPv2 类型的 Trap。4. SNMP Trap的实现把定义的MIB命名为fxBMDevTrap.txt,利用mib2c.notify.conf配置文件,生成fxBMDevTrap.c和fxBMDevTrap.h。此生成方法参照mib2c工具的使用。由模版生成的文件,不论哪种对象,都会有固定模式的整体结构。在模版文件中对节点进行定义,函数定义。处理函数,用来处理代理端所要发送的数据,数据的添加就是我们要手工实现的。我们所要做的工作就是把所需上报的数据导入到其中。模版是针对单个变量来处理的:1) Trap处理函数int send_fxPortReset_trap( void )其实现主要为: snmp_varlist_add_variable(&var_list, snmptrap_oid, OID_LENGTH(snmptrap_oid), ASN_OBJECT_ID, fxPortReset_oid, sizeof(fxPortReset_oid);首先添加trap对象,指定告警的对象为fxPortReset。如果trap需要根据情况绑定数据,以提供更多事件信息,可继续添加数据到链表,也可指定绑定数据的对象标识符。 snmp_varlist_add_variable(&var_list, fxBMPortIndex_oid, OID_LENGTH(fxBMPortIndex_oid), ASN_INTEGER, (u_char *)&temp, sizeof(temp);如果有多组数据绑定,就要简单重复调用snmp_varlist_add_variable 函数,因此链表var_list包含了指定类型的数据。一个 SNMP Trap创建成功后,调用相应的API将其发送出去即可: send_v2trap( var_list );最后需要做清理工作,代码如下: snmp_free_varbind( var_list );具体可参考源代码包agentmibgroupexamples下的notification.c和notification.h文件。2) Trap的触发SNMP Trap是由Agent主动发出,NMS不对Trap做响应。当某个事件发生时,就会发送Trap消息。因此在事件触发时,可以调用上面的Trap处理函数发送。相应地事件调用相应的事件处理函数,例如:在端口重启时就可以调用send_fxPortReset_trap(),来发送PortReset的Trap。3) SNMP_TRAP_API关于SNMP Trap的发送,NET-SNMP给出了三个api函数:send_easy_trap, send_trap_vars, send_v2trap。send_easy_trap: 发送SNMPv1和SNMPv2标准的Trap消息;send_trap_vars: 发送可添加绑定数据的Trap消息;send_v2trap: 支持绑定数据的SNMPv2扩展Trap。参照源码,send_easy_trap和send_v2trap最终都是调用send_trap_vars,只是传递参数不同而已。5. NET-SNMP Trap实现1) NET-SNMP Trap配置我们将生成的XXX.c和XXX.h静态编译到snmpd进程中,Trap的发送还需指定管理端地址和端口。在配置文件中,添加下面关键字:authtrapenable 1 /打开trap自动告警的开关,1代表开启、2代表关闭trapsink host community port /指定trap发送的地址、共同体和端口共同体和端口可以不指定,默认为public和162。SNMPv2的Trap关键字为trap2sink。2) SNMP Trap查看MG-SOFT管理软件可以接收Trap消息,启动MIB Browser-Tools-Trap Ringer Console。在显示面板上可以查看接收到Trap的发送端、接收端、时间、共同体、协议版本、对象以及绑定的数据等信息。SNMP Trap分两大类:标准Trap、扩展Trap。标准Trap: generic字段标示Trap类型,specific字段为0,Time字段表示从snmpd启动到Trap发生所经历的时间,enterprise标示对象sysObjectID的值。扩展Trap: generic字段均为6,enterprise和specific在Trap定义中给出,扩展的 Trap 通常是由以下几个部分连接而成:enterprise + 0 + specific trap。可由enterprise和specific一起来判断该Trap对象,其他与标准Trap相同。3) 其他问题当开启MG-SOFT软件的Trap Ringer Console工具时,往往出现绑定162端口出错,可能原因是162端口已经被占用。解决方法有两种:a) 禁用服务,打开Windows下的本地服务,禁用windows自己的SNMP Trap功能,开启MG-SOFT SNMP Trap Service。b) 修改端口,打开MIB Browser-View-MIB Browser Preferences,设置Trap Ringer下的Ports,这里默认用的是162,我们也可以改成其他未使用的端口。同样地,snmpd的配置文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025济钢集团有限公司校园招聘(48人)笔试参考题库附带答案详解
- 2025江西新鸿人力资源服务有限公司招募见习人员3人笔试参考题库附带答案详解
- 2025新疆兵团金融发展服务中心招聘事业单位工作人员(1人)笔试历年参考题库附带答案详解
- 2025年浙江金华市轨道交通集团运营有限公司第一批招考4人笔试参考题库附带答案详解
- 2025年国网中兴有限公司高校毕业生招聘(第二批)调剂笔试参考题库附带答案详解
- 2025山东中胶阿胶有限公司招聘19人笔试参考题库附带答案详解
- 2025四川自贡华荟文化产业发展有限公司招聘3人笔试参考题库附带答案详解
- 2025中国华冶科工集团有限公司校园招聘280人笔试参考题库附带答案详解
- 地铁工程安全培训内容课件
- 危险品安全培训会议课件
- 2025年国家工作人员学法用法题库(含答案)
- 中秋国庆节假期安全教育安全防范不松懈宣传课件模板
- 级配碎石培训课件
- 2025年新团员入团考试试题及答案
- 第2课《中国人首次进入自己的空间站》课件-2025-2026学年统编版语文八年级上册
- 罗茨风机检修方案课件
- 2025年青协社团笔试题目及答案
- 光伏电站智能监控系统建设方案
- 供水工程成本预算与动态控制方案
- GB/T 45860.1-2025光纤激光束焊机的验收试验第1部分:光纤输送机的激光组件
- 卒中后抑郁症的中医治疗
评论
0/150
提交评论