Version 10

    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: