Mapping-configuration, attributes.xml
This file defines the mapping from SNMP-oids to MBeans and their attributes.
(Note: xml driven get/set mapping functionality is available since jboss v4.0.4.GA.)
The toplevel element attribute-mapping contains a list of mbeans.
Each mbean element has to have a name attribute that specifies the
JMX object name of the mbean to monitor. It can also have an oid-prefix element
that will be prepended to the oids of the attributes. The mbean element contains a list
of attribute tags that each have to have a name attribute for the
MBean-attribute-name and an oid attribute that defines the oid under which
this attribute can be queried.
Setup in general configuration
In order to work, the mapping file must be included in the SnmpAgentService-MBean in an attribute called RequestHandlerResName as the following snippet shows
<!-- The SNMP adaptor MBean --> <mbean code="org.jboss.jmx.adaptor.snmp.agent.SnmpAgentService" name="jboss.jmx:name=SnmpAgent,service=snmp,type=adaptor"> <attribute name="RequestHandlerClassName">org.jboss.jmx.adaptor.snmp.agent.RequestHandlerImpl</attribute> <attribute name="RequestHandlerResName">/attributes.xml</attribute>
Example
This is an excerpt from the sample file from the snmp-adaptor:
<attribute-mappings> <!-- system basic information --> <mbean name="jboss.system:type=ServerInfo" oid-prefix=".1.2.3.4.1"> <attribute name="ActiveThreadCount" oid=".1"></attribute> <attribute name="FreeMemory" oid=".2"></attribute> <attribute name="MaxMemory" oid=".3"></attribute> </mbean> <mbean name="jboss.system:service=ThreadPool"> <attribute name="QueueSize" oid=".1.2.3.4.1.4"></attribute> </mbean> <!-- tomcat global http request processing --> <mbean name="jboss.web:name=http-0.0.0.0-8080,type=GlobalRequestProcessor"> <attribute name="requestCount" oid=".1.2.3.4.1.5"></attribute> </mbean> <!-- Tx Manager statistics --> <mbean name="jboss:service=TransactionManager"> <attribute name="CommitCount" oid=".1.2.3.4.1.6"></attribute> <attribute name="RollbackCount" oid=".1.2.3.4.1.7"></attribute> <attribute name="TransactionCount" oid=".1.2.3.4.1.8"></attribute> </mbean> <!-- DefaultDS statistics --> <mbean name="jboss.jca:name=DefaultDS,service=ManagedConnectionPool" oid-prefix=".1.2.3.4.1"> <attribute name="InUseConnectionCount" oid=".9"></attribute> </mbean> </attribute-mappings>
Note that the provided values will change in the future.
The adaptor now also has support for the MIB-2 system group (RFC1213)
Reload a changed config
The SnmpAdaptor-MBean now has a reconfigureRequestHandler Method which forces the adaptor to reread the attributes.xml file without the need to completely restart the adaptor.
Example SNMP-MIB for the above example file
This is an extremely simple MIB file that you can load into your management station to
query the respective values.
Note that this MIB will change in the future.
JBOSS-MIB DEFINITIONS ::=BEGIN -- Tree roots org OBJECT IDENTIFIER ::= { iso 2 } -- "iso" = 1 jboss OBJECT IDENTIFIER ::= { org 3 } as OBJECT IDENTIFIER ::= { jboss 4 } system OBJECT IDENTIFIER ::= { as 1 } -- .1.2.3.4.1 mgmt OBJECT IDENTIFIER ::= { as 5 } snmp OBJECT IDENTIFIER ::= { mgmt 6 } agent OBJECT IDENTIFIER ::= { snmp 7 } -- system parameters activeThreadCount OBJECT-TYPE ACCESS read-only DESCRIPTION "The number of active Threads in the system" ::= { system 1 } -- .1.2.3.4.1.1 freeMemory OBJECT IDENTIFIER ::= {system 2} -- .1.2.3.4.1.2 maxMemory OBJECT IDENTIFIER ::= {system 3} -- .1.2.3.4.1.3 threadPoolQueueSize OBJECT-TYPE ACCESS read-only DESCRIPTION "The size of the thread pool queue" ::= {system 4 } requestCount8080 OBJECT IDENTIFIER ::= {system 5} txCommitCount OBJECT IDENTIFIER ::= {system 6 } txRollbackCount OBJECT IDENTIFIER ::= {system 7 } txActiveCount OBJECT IDENTIFIER ::= {system 8 } dbInUseCount OBJECT-TYPE ACCES read-only DESCRIPTION "The number of db connections currently in use" ::= { system 9 }
snmp-set
The adaptor now also supports snmp-set. In order for an entry to be settable, it not only needs to be marked read-write in the MIB, but also have an attribute mode in the attributes.xml file with a value of rw as in the following example:
<mbean name="jboss.jmx:name=SnmpAgent,service=snmp,type=systemInfo" oid-prefix=".1.3.6.1.2.1.1"> <attribute name="SysDescr" oid=".1" mode="rw"></attribute> <!-- can be modified over snmp -->
Note that for this to work, you have to define a write-community in jboss-service.xml for the
main adaptor mbean and also have to set it in your agent. If you fail to do so, the set-request will silently time out (this comes from the underlying library).
Related
JBossOIDs
Referenced by:
Comments