snmp服务如何加载自定义mib库文件

C++语言 码拜 7年前 (2015-07-10) 1887次浏览 0个评论
 

如题,最近项目有个snmp接口开发的需求,要用到自定义mib库文件(如何自定义还没找到方法),手里有几个可测试用的mib文件,不知道怎么关联到snmp服务,是不是有类似linux里面的snmp.conf的配置,查了好多资料都没有结果,请知道的帮忙指导一下

40分

加载自定义的mib库文件,需要对snmp的代理的进行改写,然后才能使用。网上有很多开源的snmp代码,如:net-snmp、snmp++等,推荐使用net-snmp。
 

嗯,谢谢,我用的是snmp++,是可以操作mib对象,现在主要问题是自定义的mib文件怎么能让snmp服务找到,像这种.iso.org.dod.internet.mgmt.mib-2.system.sysLocation,可以直接访问对应的oid就可以设置sysLocation,如果我自定仪的*etone.collect.drop.Msu,怎么才能够被访问呢,要加载mib?怎么加载?想死了55

10分

记得linux下是需要自己配置的,修改snmp的相关文件。我只是用到了最基本的,所以具体操作不是很清楚。
 
没研究过snmp++。但是我想肯定要修改snmp代理端吧,你只有OID,没有OID对应的操作方法,怎么实现get和set的功能。我用的是net-snmp,而且第一个步骤就是生成自定义mib对应的.h和.c文件,然后修改,再重新编译代理端的lib和exe。

引用 2 楼 的回复:

引用 1 楼 的回复:

加载自定义的mib库文件,需要对snmp的代理的进行改写,然后才能使用。网上有很多开源的snmp代码,如:net-snmp、snmp++等,推荐使用net-snmp。

嗯,谢谢,我用的是snmp++,是可以操作mib对象,现在主要问题是自定义的mib文件怎么能让snmp服务找到,像这种.iso.org.dod.internet.mgmt.mib-2.syst……

 
嗯,多谢~snmp++里面是封装了一类get/set方法,可以直接设置oid对应节点的值,我理解的也不多,这两天看了一些基本的东西。代理端我理解就是存放mib仓库的地方,不知道你说的lib和exe是指什么文件?

引用 4 楼 的回复:

没研究过snmp++。但是我想肯定要修改snmp代理端吧,你只有OID,没有OID对应的操作方法,怎么实现get和set的功能。我用的是net-snmp,而且第一个步骤就是生成自定义mib对应的.h和.c文件,然后修改,再重新编译代理端的lib和exe。

引用 2 楼 的回复:
引用 1 楼 的回复:

加载自定义的mib库文件,需要对snmp的代理的进行改写,然后才能使用。网上有……

 
我弄的是windows下的,所以又静态链接库和可执行文件(exe)。如果是linux下的话,应该是源码安装。linux不是很熟,不好意思,就帮不了你了。

10分

不知道你说的lib和exe是指什么文件?
对应的就是linux下的libsnmp.so和snmpd之类的
 
是 就是楼上说的这两个文件。
 
我是win平台的,snmpd.lib和snmp.exe这两个文件我知道,本地也测试了几个简单的例子,==,你是说自定义mib库文件需要生成.h和.c(cpp)编译到snmpd.lib里去?我再看看,多谢
 
我应该是要重新编译代码的,还没有这么先进吧,能直接解析mib,知道这个OID是干啥的,自己去执行。
 
引用 10 楼 的回复:

我应该是要重新编译代码的,还没有这么先进吧,能直接解析mib,知道这个OID是干啥的,自己去执行。

我也是不知道怎么关联mib文件和snmp服务,才想当然的认为应该会有snmp里面应该会有类似加载之类的动作关联自定义的mib文件,就像sql加载数据库文件那样。现在看来是agent++是需要针对mib文件生成目标代码,只是sdmp++好像不一样。我自己再去研究研究,顺便再问下,我们对一个MID文件节点的操作是不是都是通过oid操作的?这样oid是设定死的了么?

 
是通过OID操作的。OID也写死的,而且在整个MIB中式唯一的。
 
这本该是我强项的,我们以前用net-snmp,但是用了不久就全部被TR69替代掉了,所以没研究过net-snmp.
 
引用 13 楼 的回复:

这本该是我强项的,我们以前用net-snmp,但是用了不久就全部被TR69替代掉了,所以没研究过net-snmp.

嗯,谢谢,主要纠结的的是如何使用自定义的mib文件,net-snmp我没有去看,听huangwenshen同学的意思是要针对具体mib文件生成目标代码…但是像基本的SYSDESCR “1.3.6.1.2.1.1.1.0”获取系统信息的描述,难道说对应代码已经写在snmp_pp.lib中了么?

 
SYSDESCR,在net-snmp中是就是有相应的代码在静态链接库中。

引用 14 楼 的回复:

引用 13 楼 的回复:

这本该是我强项的,我们以前用net-snmp,但是用了不久就全部被TR69替代掉了,所以没研究过net-snmp.

嗯,谢谢,主要纠结的的是如何使用自定义的mib文件,net-snmp我没有去看,听huangwenshen同学的意思是要针对具体mib文件生成目标代码…但是像基本的SYSDESCR “1.3.6.1.2.1.1.1.0”获取系统信息的描述……

 
嗯,谢谢,最后请教一个问题,MIB对应的.h .c(cpp)代码是怎么生成的,网上看到有人用AgentPro,但是找了半天没有找到下载!

引用 15 楼 的回复:

SYSDESCR,在net-snmp中是就是有相应的代码在静态链接库中。

引用 14 楼 的回复:

引用 13 楼 的回复:

这本该是我强项的,我们以前用net-snmp,但是用了不久就全部被TR69替代掉了,所以没研究过net-snmp.

嗯,谢谢,主要纠结的的是如何使用自定义的mib文件,net-snmp我没有去看,听huangwenshen同学的意思是要针对具体……

 
net-snmp是用的mib2c.bat ,snmp++ 应该也有相应的批处理。google一下吧。
 
嗯,多谢,http://www.agentpp.com/agentpp3_5/download_agentpp/download_agentpp.html这个网站上有snmp++开发相关的几个下载~需要的同学可以去参考下
to huang:你好,可能snmp的基本原理没有完全弄清楚,现在我要一些统计信息到代理端的mib文件中,这样,我是不是管理端和代理端都要开发?管理端保存数据到代理端的mib,同时代理端接受其他管理端的请求?
(用AgenPro生成snmp++代码发现只有.h文件,只包含几个和oid、名称关联的宏定义,然后又生成了相应的agent++代码发现里面的cpp文件中包含一些类似创建mib文件的信息add_col(new SnmpDisplayString(colProcessName, READONLY, new NS_SNMP OctetStr()));
查了一下agent++是开发代理端的api,晕了,之前一直理解是我只需要往mib里面存放数据就行了,现在看来两边都要做么?感谢!)

引用 17 楼 的回复:

net-snmp是用的mib2c.bat ,snmp++ 应该也有相应的批处理。google一下吧。

 
还有一个问题, ,如果要使用自定义的MIB文件,是不是必须要申请OID的,不然oid怎么确定,是不是可以随便写一个较大的值?
 
1、代理端是需要自己去编写,管理端都是通用的不用做改变。
2、自己创建的OID一般都是在“1.3.6.1.4.1”这个OID下面续写,思科啊、微软啊这些公司的OID都是写在这个下面的。至于数值你估计一个比较大的和别人没冲突的。
 
多谢多谢,对流程基本了解

引用 20 楼 的回复:

1、代理端是需要自己去编写,管理端都是通用的不用做改变。
2、自己创建的OID一般都是在“1.3.6.1.4.1”这个OID下面续写,思科啊、微软啊这些公司的OID都是写在这个下面的。至于数值你估计一个比较大的和别人没冲突的。

 
因为这个工具其实叫“AgenPro”而不是“AgentPro”…我也被误导了很久,找都找不到…

引用 16 楼 su_guolong 的回复:

嗯,谢谢,最后请教一个问题,MIB对应的.h .c(cpp)代码是怎么生成的,网上看到有人用AgentPro,但是找了半天没有找到下载!

[Quote=引用 15 楼 的回复:]

SYSDESCR,在net-snmp中是就是有相应的代码在静态链接库中。

引用 14 楼 的回复:

引用 13 楼 的回复:

这本该是我强项的,我们以前用net-snmp,但是用了不久就全部被TR69替代掉了,所以没研究过net-snmp.

嗯,谢谢,主要纠结的的是如何使用自定义的mib文件,net-snmp我没有去看,听huangwenshen同学的意思是要针对具体……

 
另外想问一下 楼主
最后这个项目你是怎么搞定的
我遇到和你基本相同的问题
 
还有,楼主,这个AgenPro不是要License吗?请问你是从哪里搞到的?

引用 22 楼 K0000000r 的回复:

因为这个工具其实叫“AgenPro”而不是“AgentPro”…我也被误导了很久,找都找不到…

Quote: 引用 16 楼 su_guolong 的回复:

嗯,谢谢,最后请教一个问题,MIB对应的.h .c(cpp)代码是怎么生成的,网上看到有人用AgentPro,但是找了半天没有找到下载!

[Quote=引用 15 楼 的回复:]

SYSDESCR,在net-snmp中是就是有相应的代码在静态链接库中。

引用 14 楼 的回复:

引用 13 楼 的回复:

这本该是我强项的,我们以前用net-snmp,但是用了不久就全部被TR69替代掉了,所以没研究过net-snmp.

嗯,谢谢,主要纠结的的是如何使用自定义的mib文件,net-snmp我没有去看,听huangwenshen同学的意思是要针对具体……

 
楼主,Agenpro license有吗?
 
我静态加载的自定义MIB,怎么访问不到?
shixiaohui@shixiaohui:~/share/net-snmp-5.7.1$ snmpget -v2c -c public localhost 1.3.6.1.4.1
.41066
TS-OID-MIB::tskj = No Such Object available on this agent at this OID
 
如何在Linux用snmp编程获得oid的配置文件

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明snmp服务如何加载自定义mib库文件
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!