Simple Network Management Protocol (SNMP) is the most popular network management protocol in the TCP/IP protocol suite, using a simple request/response protocol that communicates management information about the configuration and status of nodes between two types of SNMP software entities: SNMP applications, also called SNMP managers and SNMP agents.
Essentially, SNMP agents expose management data on the managed systems as variables. The protocol also permits active management tasks, such as modifying and applying a new configuration through remote modification of these variables. The variables accessible via SNMP are organized in hierarchies.
SNMP itself does not define which information (which variables) a managed system should offer. Rather, SNMP uses an extensible design, where the available information and other metadata (such as type and description of the variable) is described by Management Information Bases (MIBs). MIBs describe the structure of the management data of a device subsystem
Objects in the MIB are defined using a subset of Abstract Syntax Notation One (ASN.1) called "Structure of Management Information Version 2 (SMIv2)" RFC 2578.
The MIB is hierarchical (tree-structured) and entries are addressed through object identifiers or OID.
The IANA OID registry contains a list of registered entities that use OIDs to reference internal structures (e.g. directory attributes). Each entity is assigned an initial referential value (e.g. 220.127.116.11.4.1.2312 for Red Hat, see http://www.oid-info.com/get/18.104.22.168.4.1.2312) and thereafter the internal numbering plan is up to the entity to define (e.g. 22.214.171.124.4.1.23126.96.36.199 might refer to the "ActiveThreadCount" attribute of the JBoss Application Sever). This allows for precise referencing of data attributes in a company or other entity. See diagram below representing the JBoss Application Server hierarchy
A managed object (sometimes called a MIB object, an object, or a MIB) is one of any number of specific characteristics of a managed device. Managed objects are made up of one or more object instances (identified by their OIDs), which are essentially variables.
Object identifiers (OID) uniquely identifies managed objects in the MIB hierarchy.
To obtain values of objects from the manager, it is necessary to specify the instance of the object. The instance of an object is specified by appending an instance index to the object identifier, by example for ActiveThreadCount attribute of the JBoss Application Server the OID to query would be 188.8.131.52.4.1.23184.108.40.206.0.
Two types of managed objects exist:
- Scalar object A Scalar Object defines a single object instance. A scalar object by definition has only one instance as opposed to a table. Therefore, an instance index of zero is always specified when retrieving the value of a scalar object. An instance index higher than 0 can only be used in the case of tabular objects, which can have multiple instances.
- Tabular object A Tabular Object defines multiple related object instances that are grouped in MIB tables. The JBoss SNMP Adaptor uses two types of ways to access values in a table :
- a separate index column for tabular objects that represents arrays and java.util.List since they are indexed, but to query the Java index that starts at 0 in an array or List, it will start at index .1 for SNMP as .0 is reserved for scalar objects
- For tabular objects whose type is a java.util.Map or a wildcard used in a MBean, the index column will be named as per the key of the data in the row.
JBoss Application Server and Mobicents now features a revamped SNMP Adaptor, leveraging snmp4j as a Java implementation of SNMP, that wraps the JMX MBean and Notifications to allow monitoring and configuration of the Application Server and applications deployed on it through the SNMP protocol.Note: the documentation for the previous version can be found here http://community.jboss.org/wiki/JBossSNMPAdapter
The Adaptor now supports all versions of the protocol, v1, v2c and v3 including security for v2c and v3. It also has supports for tables and both traps and informs.
The Adaptor is broke down in 2 pieces :
The SNMP Adaptor Walkthrough will guide through on how to monitor and manage the JBoss Application Server, its components and the applications deployed within it through SNMP by wrapping the JMX MBeans