用net-snmp扩展table对象的代理?

时间:2021-09-15 16:52:14
Help help me,please!

最近研究net-snmp对table对象的代理扩展,遇到一些问题,折腾了几天也没搞定,希望高人能给点指点啊!
下面是我的mib文件列表:
+--lianyiMIB(32189)
   |
   +--lianyiMIBObjects(1)
      |
      +--lianyiPublic(1)
         |
         +-- -RW- Integer32 s1(1)
         |        Range: 0..2147483647
         +-- -RW- String    s2(2)
         |        Size: 0..1024
         +-- -R-- String    s3(3)
         +-- -R-- String    s4(4)
         |
         +--lyTable(5)
            |
            +--lyEntry(1)
               |  Index: lyIndex
               |
               +-- -R-- Integer32 lyIndex(1)
               +-- -R-- String    lyDescr(2)
               |        Textual Convention: DisplayString
               |        Size: 0..255
               +-- -RW- EnumVal   lyAdminStatus(3)
                        Values: up(1), down(2), testing(3)

我用mib2c生成两个文件:lianyiPublic.h lianyiPublic.c
这两个文件中自然不包含lyTable部分的内容,然后对这两个文件进行更改后,加入agent中进行编译、make、make install,之

后可以通过snmpwalk -v2c 192.168.12.77 -c public lianyiPublic 可以查看到四个scalar对象的值。
如下:
LIANYI-MIB::s1.0 = INTEGER: 96
LIANYI-MIB::s2.0 = ""
LIANYI-MIB::s3.0 = Hex-STRING: 07 00 00 00 6C 75 65 
LIANYI-MIB::s4.0 = Hex-STRING: 07 00 00 00 6C 75 65 
这说明scalar的扩展正确!

下面我对Table进行扩展。
我的做法是:
用 mib2c -c mib2c.mfd.conf lyTable 生成一些文件;然后对文件进行简单的更改,只更改会影响程序编译执行的部分,
同时为变量赋了些固定的值。
之后,我在lianyiPublic.h文件中增加:
config_add_mib(LIANYI-MIB)


config_require(util_funcs)

config_require(lyTable)

config_require(lyTable_interface)

config_require(lyTable_data_access)

config_require(lyTable_data_get)

config_require(lyTable_data_set)
在lianyiPublic.c文件中增加:
#include "lyTable.h"
然后用以下命令重新编译agent:
./configure -with-mib-modules="lianyiPublic lyTable"  
(./configure -with-mib-modules="lianyiPublic"的方式也采用过)
make
make install
snmpd
snmpwalk -v2c 192.168.12.77 -c public lianyiPublic
结果提示:
LIANYI-MIB::s1.0 = INTEGER: 96
LIANYI-MIB::s2.0 = ""
LIANYI-MIB::s3.0 = Hex-STRING: 07 00 00 00 6C 75 65 
LIANYI-MIB::s4.0 = Hex-STRING: 07 00 00 00 6C 75 65 
没有显示出lyTable中的对象;
snmpwalk -v2c 192.168.12.77 -c public ifTable
结果提示:
LIANYI-MIB::lyTable = No Such Object available on this agent at this OID。

我的问题就是:上面为什么不能正常显示ifTable中对应的值?也即:为什么ifTable加载失败?

2 个解决方案

#1


你现在这个问题解决了吗?我也有类似的问题,如果解决了,拿出来分享一下好吗?

#2


帮顶一下。。。。

#1


你现在这个问题解决了吗?我也有类似的问题,如果解决了,拿出来分享一下好吗?

#2


帮顶一下。。。。