FAQ:Agent 10

From Net-SNMP Wiki
Jump to: navigation, search

Which should I use?

That's not easy to answer in general.

If there's an existing agent that already implements the desired new MIB, then it makes sense to re-use that, via whatever extension protocol that agent might support. Note that the SMUX protocol has essentially been superceded by AgentX, which provides a fuller and more reliable mechanism than either SMUX or proxied SNMP. So ideally, this would be the preferred extension approach. But if the target subagent only supports SMUX or basic SNMP, then that would dictate the extension protocol to use.

Implementing the module in C within the main agent (directly or via dlmod) is probably the most efficient and reliable, closely followed by embedded perl (or python) extensions. These have the advantage of minimal overheads between the code implementing the MIB module, and the agent framework, and no inter-process communication issues. But this does assume that there's a suitable mechanism for retrieving the necessary information.

If the new MIB is monitoring or managing some other subsystem, external to the agent, then it may be necessary to embed a subagent within the subsystem itself - particularly if there's no suitable public API to retrieve the necessary information. In this case, AgentX is probably the most appropriate way forward.
Alternatively, you could implement the missing public management API for that subsystem, and develop a module within the main agent instead.

   FAQ:Agent
   
  1. What MIBs are supported?
  2. What protocols are supported?
  3. How do I configure the agent?
  4. How do I remove a MIB from the agent?
  5. I've installed a new MIB file. Why can't I query it?
  6. How do I add a MIB to the agent?
  7. What's the difference between 'exec', 'sh', 'extend' and 'pass'?
  8. What's the difference between AgentX, SMUX and proxied SNMP?
  9. What is the purpose of 'dlmod'?
  10. Which extension mechanism should I use?
  11. Can I use AgentX when running under Windows?
  12. How can I run AgentX with a different socket address?
  13. How can I turn off SMUX support?
  14. How can I combine two copies of the 'mib2' tree from separate subagents?
  15. What traps are sent by the agent?
  16. Where are these traps sent to?
  17. How can I send a particular trap to selected destinations?
  18. When I run the agent it runs and then quits without staying around. Why?
  19. After a while the agent stops responding, and starts eating CPU time. Why?
  20. How can I stop other people getting at my agent?
  21. How can I listen on just one particular interface?
  22. The agent is complaining about 'snmpd.conf'. Where is this?
  23. Why does the agent complain about 'no access control information'?
  24. How do I configure access control?
  25. How do I configure SNMPv3 users?
  26. The 'createUser' line disappears when I start the agent. Why?
  27. What's the difference between /var/net-snmp and /usr/local/share/snmp?
  28. My new agent is ignoring the old snmpd.conf file. Why?
  29. Where should the snmpd.conf file go?
  30. Why am I getting "Connection refused"?
  31. Why can't I see values in the UCDavis 'extensible' or 'disk' trees?
  32. Why can't I see values in the UCDavis 'memory' or 'vmstat' tree?
  33. What do the CPU statistics mean - is this the load average?
  34. How do I get percentage CPU utilization using ssCpuRawIdle?
  35. What about multi-processor systems?
  36. The speed/type of my network interfaces is wrong - how can I fix it?
  37. The interface statistics for my subinterfaces are all zero - why?
  38. Does the agent support the RMON-MIB?
  39. What does "klread: bad address" mean?
  40. What does "nlist err: wombat not found" (or similar) mean?
  41. What does "Can't open /dev/kmem" mean?
  42. The system uptime (sysUpTime) returned is wrong!
  43. Can the agent run multi-threaded?
  44. Can I use AgentX (or an embedded SNMP agent) in a threaded application?