[转]SNMP编程经验总结

本文作者冷胜魁分享了SNMP编程的经验,包括MIB模块的构成、mib2c工具的使用、MIB对象定义注意事项、Table的处理以及SNMP Agent的两种运行模式。在编写MIB文件时,需注意避免下划线命名,Table定义应明确,并留意索引字段重复。此外,介绍了sub-agent与snmpd的AgentX通讯配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自http://blog.chinaunix.net/uid-20644632-id-4115425.html

 

SNMP编程经验总结 冷胜魁(Seaquester)
lengshengkui@gmail.com
2013-10-30

1. MIB模块一般都由变量和表组成。因此net-snmp把SMI中的对象分为两大类:scalar和table。scalar包含我们常用的整型,字符串等数据类型。table是scalar的一种集合,由一个和多个列组成,类似于数据库中的表。它必须有一个索引项,用来按顺序检索表项。

2. mib2c工具通过模版把MIB文件解析成.c和.h文件,但它生成的仅仅是个框架,还需要手工在相应地方添加相应代码。mib2c有很多模版,可以根据需要来调用。mib2c目前不支持同时解析scalar和table对象,对于具有这两种对象的MIB模块,需要分别生成代码文件,然后再合并。

3. 在MIB文件中定义object时,要注意object的名字不能含有下划线“_”,否则,在使用mib2c生成代码时,会提示error:Bad operator (_): At line nn in xx_MIB.txt。

4. 今天在编写一个MIB文件时发现,如果定义的是Table,需要注意Table的名字(名字必须带有Table)。否则,可能无法用mib2c生成代码。

5. 如果MIB文件中有Table,则在用mib2c生成代码之后,需要注意,Table的Index字段可能会被重复定义。需要小心检查。

6. 使用net-snmp的库编写的SNMP Agent模块,支持两种模式。一种是master agent,这种模式的agent不需要snmpd就可以运行。
另外一种是sub-agent,必须要依赖于snmpd才能运行,sub-agent与snmpd之间通过AgentX协议通讯(local socket)。
运行sub-agent之前,必须修改snmpd.conf。最简单的方法是,创建一个新文件,文件内容只包含下面几行:
    rocommunity public
    rwcommunity private
    master agentx
这几行主要是告诉snmpd 启用AgentX协议,sub-agent的community定义等。
然后,先启动snmpd,再运行sub-agent程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值