Linux 下为某设备新增SNMP协议支持的经验总结

来源:互联网 发布:sql注入工具怎么使用 编辑:程序博客网 时间:2024/05/11 17:06

官网资料:www.net-snmp.org

这是一个值得我回味和总结的问题,花了好长时间,好容易才弄得一些窍门.


一般步骤:

1> 由于在MIB浏览器(很多种)里面,MIB库文件被解析成树形结构,因此,先进行树形结构的设计. 确定要浏览哪些节点.

2> 尽量多地参看MIB库文件,看看别人是怎么写的,从而一步一步实现.每个节点要什么类型,方法属性是要注意的

3> 完成MIB文件后,在浏览器里面检查是否有语法错误,windows下比较简单,基本上就是打开文件,或者compile一下;

如果是在linux命令行下,先安装snmp这个软件,版本号要对应好,将MIB文件放在指定目录(不知道就用net-snmp-conf查看)

别忘了设置、编辑一下指定目录的(通常是home目录了.snmp/xxx)snmp.conf文件,以便程序可以搜索到你的MIB文件.

就要用以下命令:

snmptranslate -m xxx-MIB -On -IR iso.3.6.1.4.1.x.x.x.x (oid根据需要填写)

snmptranslate -m xxx-MIB -Of -IR 节点名字 (这里也是根据需要填写)

snmptranslate -m xxx-MIB -Tp -IR 节点名字或者oid (这里也是根据需要填写)

检查无误后,既可以开始代码的编写,实现具体的功能.

4> 用mib2c这个命令行工具,在linux下产生代码框架

我这里是这样

mib2c -c mib.old-api.conf xxx(top节点名称)

有很多种API,具体的根据需要去了解,无非是标量和table表

接着就是修改源码编译规则,agent/Makefile以及agent/mibgroup/Makefile mib_modules_includes.h mib_modules_inits.h

5> 代码编译没问题后,产生的snmpd文件就是可以放到目标机器上的程序了

6> 用snmpwalk snmpget snmpset等程序进行测试

snmpwalk -v1 public 192.168.1.x 2>/dev/null iso.1.123.3.4.,4.23.xxx