添加新的 mib 主代理 [英] add new mib master agent

查看:11
本文介绍了添加新的 mib 主代理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I was following instructions on the net-snmp website to add my own MIB support to the master agent.

Here is what I did:

  1. I created my support .c and .h file in net-snmp/agent/mibgroup/ folder.
  2. I copied my MIB file to /usr/local/share/snmp/mibs/ folder.
  3. I ran "./configure --with-mib-modules="myMib" "
  4. I ran "make" and "make install"
  5. I started snmpd with "snmpd -f -Le -d -c snmpd.conf &"
  6. I can see my MIB structure by running snmpdtranslte command. However, when I try to use snmpget -v2c -c public "MY-MIB-FILE::myVariable", I keep getting "*** = No such object available on this agent at this OID".

I did exactly what the tutorial says, and I can run snmpget and snmpset on the NET-SNMP-TUTORIAL-MIB::nstAgentModuleObject example.

Please help me understand what I missed here.

解决方案

The "No such object available on this agent at this OID" indicates that, as far as netsnmpd is concerned, there is no corresponding OID in its tree.

Don't get confused by the success of snmptranslate. Snmptranslate only operates on the MIB files themselves and doesn't require access to an snmp server at all. So the fact that snmptranslate shows your MIB details correctly is just an indication that your mib is correctly copied to $MIBDIRS or the directories listed in your .snmp/snmp.conf file (etc.).

Assuming that you're following the tutorial, the mib that you have implemented provides a single scalar variable. Scalar variables are given an index (ie. suffix) of .0. Try running either of the following commands:


snmpget -v2c -c public MY-MIB-FILE::myVariable.0

Or:


snmpwalk -v2c -c public MY-MIB-FILE::myVariable

The latter will give you a list of all of the MIB leaves under that OID, which (in your case) will include the .0 node.

If that fails it is worth ensuring that your code is being compiled in and is executing correctly. For a start, check the details at the end of the ./configure step to make sure that the summary includes your mib. eg. (result from ./configure --with-mib-modules="nstAgentModuleObject"):


---------------------------------------------------------
            Net-SNMP configuration summary:
---------------------------------------------------------

  SNMP Versions Supported:    1 2c 3
  Net-SNMP Version:           5.4.1
  Building for:               linux
snip
  Agent MIB code:             nstAgentModuleObject default_modules =>  snmpv3mibs mibII ucd_snmp notification notification-log-mib target agent_mibs agentx disman/event disman/schedule utilities host
snip
---------------------------------------------------------

For the former, you can run nm over the snmpd executable agent/.libs/libnetsnmpmibs.so file and make sure that the init_X() function that corresponds to your MIB is present. It's also worth making sure that the init_nstAgentModuleObject() function is present. If you're running make install before testing it is worth ensuring (using ldd) that the libnetsnmpmibs.so library that is being used is the one that you've just built, and that you don't have a path problem.

You can use the built in debug messaging system by adding DEBUGMSGTL() calls within your init_X() function. To see the debug messages add a -DALL option on your snmpd command line.

这篇关于添加新的 mib 主代理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆