2 zl66482368 zl66482368 于 2014.10.16 10:30 提问

关于SNMP开发的一些问题

最近要开发基于snmp协议的一个简单网管系统,主要用来管理华为的PON设备(包括读取设备信息,监控设备告警,以及动态地去注册配置设备),因为第一次接触SNMP协议,可以说一头雾水,简单罗列了下碰到的一些问题,望懂得大哥大姐能帮忙解答下:

1.准备用JAVA语言开发网管系统,用什么开发工具比较好,SNMP4j?或者OBJECTSNMP?还是其他的?(暂时准备用SNMP4j,但网上资料少得可怜)

2.网上有很多snmp4j的GET方法的例子,我拿下来后已经可以取到设备的设备名称(根据OID1.3.6.1.2.1.1.5.0获得),设备地址(根据OID1.3.6.1.2.1.1.6.0获得)等信息了。

但是我用get方式去取设备的温度(1.3.6.1.4.1.25506.2.6.1.1.1.1.12)等一些华为厂家私有MIB库定义的信息时,得到的结果却都是NoSuchObject。我不知道这是因为设备的温度是私有厂家MIB库信息的原因还是因为温度信息是TABLE形式的,所以不能用GET方式去取。

请问我该怎么去拿到这个设备温度的信息,有没有人能指点下啊?

3.网上差了很多资料,知道网管系统包括管理端和代理端,但是我们实际开发时,代理端应该不需要开发的吧?因为它本来就在被管理设备上存在的,我们只要打开被管理设备的SNMP功能就好了吧?这是我个人理解,不知道是不是这样的。

4.snmp4j中去获取管理设备信息,是不是只要知道需获取信息相应的OID就行了?比如知道设备名称的oid(1.3.6.1.2.1.1.5.0)使用GET方式就能拿到设备名称了,知道设备地址的oid(1.3.6.1.2.1.1.6.0)就能拿到设备地址了。
那获取设备的其他信息是不是也只要相同的方式就可以了?如果仅仅这样的话,设备的管理岂不是很简单?厂家给我的MIB库就仅仅只是让我去找设备信息对应的OID吗?

疑问还有很多,最主要的还是以上的几个,有没有懂的大哥大姐,求帮忙啊

~网上找了几天了,实在找不到太深入的一些资料。

2个回答

qq_33574800
qq_33574800   2015.12.30 23:56

问题2:我该怎么去拿到这个设备温度的信息--单个节点的OID获取跟TABLE表无关,提示NOSUCHOBJECT的含义是此节点不存在。mib节点应该是用错了。
问题3:代理端这块的实现要针对不同的设备,有一部分产品应该是会支持的。
问题4;GET方式获取节点信息不仅仅取决于你的OID还取决于你的节点类型。如果是表节点的话,需要先获取索引。再用索引拼装新的OID访问设备。

three_man
three_man   2014.10.20 18:52

我写过一些简单的SNMP的使用指南,可以看一下:
http://blog.csdn.net/three_man/article/details/29857689

针对你的问题
1. 开发工具,目前最常用的还是SNMP4j
2. 这个问题,你需要先管设备商去要下MIB文件,有了MIB文件就能够知道具体的类型了
3. 是的。
4. 这儿要看节点类型的,如果是varchar等这样的但数据节点只是get就可以了。但是如果是table的话就需要使用getNext,来便利得到复杂的结构。 SNMP本来就是简单协议,所以基本内容也就这么多。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!