当前位置: 技术问答>linux和unix
有NET-SNMP牛人吗?请教几个问题。
来源: 互联网 发布时间:2017-01-27
本文导语: 本帖最后由 jeffyin_wh 于 2011-04-18 10:09:20 编辑 我们有个项目是在Agent里面实现的RPC,因为load数据时RPC延时很严重,导致SNMPD自动重复请求多次。现在采用netsnmp_get_cache_handler还是不能解决重复请求的问题,请问这...
关于snmptable这个命令,调试发现指定请求一个节点时,agent会load完当前节点后会自动跑到它下一个节点去,继续load下一个节点的数据。因为一个table都延时很严重,这样就造成更大面积的延时,最后snmptable命令就是No responce,timeout 之类的了,看如下MIB结构,load完mytestTable 会自动跑到 mytestTwoTable 去load数据,而我就只指定了mytestTable,请问如果避免snmptable命令load完会跑到下级节点去?
--MIB 实例
+--mytestObj(202)
|
+--mytestObjects(1)
|
+--mytestTable(1)
| |
| +--mytestEntry(1)
| | Index: id
| |
| +-- ---- Integer32 id(1)
| | Range: 1..255
| +-- -RW- String name(2)
|
+--mytestTwoTable(2)
|
+--mytestTwoEntry(1)
| Index: idx
|
+-- ---- Integer32 idx(1)
| Range: 1..255
+-- -RW- String title(2)
另外,我们使用的是mib2c.scalar.conf和mib2c.iterate.conf生成的代码。snmpwalk命令就不用说了,肯定会timeout退出。
|
我本地做了一个简单的测试哈
可能与楼主的不太相同,就是两个表格之间还有一个叶子节点。
onetable (1)表格
num (2)标量
twotable (3)表格
然后使用walk命令遍历onetable,发现只是打印出了onetable的所有信息而并没有打印num和twotable的信息。
不知是否对楼主解决问题有所帮助。
若楼主还是有疑问的话,我们可以一起交流学习哈。
可能与楼主的不太相同,就是两个表格之间还有一个叶子节点。
onetable (1)表格
num (2)标量
twotable (3)表格
然后使用walk命令遍历onetable,发现只是打印出了onetable的所有信息而并没有打印num和twotable的信息。
不知是否对楼主解决问题有所帮助。
若楼主还是有疑问的话,我们可以一起交流学习哈。
|
哦对,snmptable的命令也是只打印出onetable的内容哈。
|
是说需要 在snmptable 后面跟上 -CB 的 option吗? 这样好像并没有完全解决问题哦
|
我觉得这种你可以在agent端缓存一下数据吧。
|
这个问题我也一直在寻找答案,帮你顶顶看
|
还有这等事情,明天写个mib自己试试看看,会不会也存在楼主一样的问题。
友情帮顶!
友情帮顶!
|
关于跑到下一个表的问题:
每一次请求需要agent返回指定数量的节点信息,这样最后一个报文会可以会遍历到下一张表以满足节点数量要求。
man snmptable
-CB
Do not use GETBULK requests to retrieve data, only GETNEXT.
-Cr REPEATERS
For GETBULK requests, REPEATERS specifies the max-repeaters value to use. For GETNEXT requests, REPEATERS specifies the number of entries to retrieve at a time.
每一次请求需要agent返回指定数量的节点信息,这样最后一个报文会可以会遍历到下一张表以满足节点数量要求。
man snmptable
-CB
Do not use GETBULK requests to retrieve data, only GETNEXT.
-Cr REPEATERS
For GETBULK requests, REPEATERS specifies the max-repeaters value to use. For GETNEXT requests, REPEATERS specifies the number of entries to retrieve at a time.
|
lz,我最近也在做net-snmp方面的工作,可否告知下如何从table中获取数据啊?为什么我写的表格每次用snmpwalk获取数据的时候,都说没有实例化对象啊,,我的表格只用mib2c.iterate.conf生成了代码,是否还需要用mib2c.scalar.conf生成代码啊?
我现在做了个表格,但是不知道怎么使用这个表格,可否告知下细节啊,谢谢!
allen201004@163.com,可以把你的代码给我共享下啊,谢谢!
我现在做了个表格,但是不知道怎么使用这个表格,可否告知下细节啊,谢谢!
allen201004@163.com,可以把你的代码给我共享下啊,谢谢!