SNMP4J-AgentJMX is an API that works on top of SNMP4J-Agent and SNMP4J to provide support for mapping content of an MBean server to a SNMP4J-Agent based SNMP agent.
To map MBeans of a server to SNMP, the following steps are necessary:
- Define or download a MIB. If you need to create one, use MIB Designer because you will have to redesign your MIB often in an iterative process. Using a visual tool which is capable of undo/redo and moving/refactoring MIB nodes saves many hours of work and bug search.
- Create the SNMP4J-Agent object initialization for MOTables & MOScalars to hold the MIB structure. This step is called "creating the MIB stubs". This can be done automated for SNMP4J-Agent by AgenPro (code generation from the MIB).
Create a your own MOFactory (
myJmxMoFactory) based on JMXDefaultMOFactory that actually creates SNMP4J-AgentJMX based ManagedObjects (MOScalarJMX and MOTableJMX).
Subclass the Mib class generated by AgenPro from the MIB and call (see also the
addJvmManagementMibInstrumentatonmethod of the sample MIB instrumentation class
Statically map the OIDs of the MIB (generated in the Mib class by AgenPro) to the MBean names of the MBean server:
Bind the mapping to an MBean:
- That's all for scalars. For tables there is more to do. Of course, you also need to setup the SNMP agent with its securtiy, listen ports, etc. See the
JMXTestAgentfor a simple example of that.