SNMP basics

The Simple Network Management Protocol (SNMP) is an Internet standard protocol used primarily in network management systems to monitor network devices for conditions that warrant administrative attention. Devices that typically support SNMP include routers, switches, servers, workstations and printers. This section introduces SNMP basics and provides an overview of Cast Iron MIBs.

In the lexicon of SNMP, a Cast Iron Integration Appliance is referred to as a "network element" or "managed device," indicating that it is a citizen on a network and available to be managed. Network elements include an agent that provides information about the element. Agents perform two key functions. First, they respond to requests from the management system and secondly, send notifications about events on the network element. Asynchronous notifications from agent to manager are referred to as traps.

SNMP traps enable an agent to notify the management station of significant events by way of an unsolicited SNMP message. Information provided through polling or traps are defined in Management Information Bases (MIBs). A MIB is a virtual database used for managing the entities in a communications network. MIBs define a hierarchy of objects, with each object having its own Object Identifier (OID). An OID is specified by numbers separated by periods, for example: ".1.3.6.1.2.1.1." A OID is sometimes referred to by a common name. For example, the specific OID .1.3.6.1.2.1.1 can be referred to as "system." The SNMP protocol defines many public MIBs, and also allows for organizations to define custom, application-specific MIBs.

Understanding Cast Iron MIBs

Files downloaded from the Cast Iron WMC have multiple MIB DEFINITIONS = BEGIN - END sections. Each section comprises a MIB with its own hierarchy. To poll for Cast Iron-specific information, use CASTIRON-IA-MIB. Each MIB has a MODULE-IDENTITY that describes the MIB function. A comment section that follows MODULE-IDENTITY provides an overview of the MIB contents and contains an Object Summary that lists the name and OID of every MIB object.

Note: Some tools, such as those provided by NET-SNMP, require each MIB to be split into a single file. For more information on splitting MIBs, see Setting up an SNMP receiver.
A section of the Object Summary from a CASTIRON-IA-MIB follows:
--   ciIaProjectSummary                             ciia.1.1.1
--    ciIaNbrProjects                               ciia.1.1.1.1
--    ciIaNbrRunningOrchs                           ciia.1.1.1.2
--    ciIaNbrStoppedOrchs                           ciia.1.1.1.3
--    ciIaNbrRunningJobs                            ciia.1.1.1.4
--    ciIaNbrCompletedJobs                          ciia.1.1.1.5
--    ciIaNbrErroredJobs                            ciia.1.1.1.6
As shown, an organizational node (in this case, OBJECT-IDENTITY, which is similar to a directory) called ciIaProjectSummary contains general information about projects. Inside that "directory" are specific items (OBJECT-TYPEs) containing the number of projects, the number of running and stopped orchestrations and more. To get more information about the meaning of these items, search the file for the name of the item. For example, to get information about ciIaNbrRunningJobs, searching the file for that string turns up the following:
ciIaNbrRunningJobs OBJECT-TYPE                      -- ciia.1.1.1.4
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of currently running jobs.
        "
::= { ciIaProjectSummary 4 }
The key areas are:
  • ciIaNbrRunningJobs OBJECT-TYPE - Defines the name of the object. Note that there is a comment at the end giving a shortened form of the OID.
  • SYNTAX Unsigned32 - This is an unsigned integer whose value could go up or down.
  • MAX-ACCESS read-only - A read-only value. The manager may ask for it but cannot change it.
  • DESCRIPTION - Describes the object.
The following example illustrates the data displayed when polling for ProjectSummary information:
$ snmpwalk -v 2c -c public -M "+/home/choller/mibs" -m "+CASTIRON-IA-MIB" flintstone2 ciIaProjectSummary
CASTIRON-IA-MIB::ciIaNbrProjects.0 = Gauge32: 2
CASTIRON-IA-MIB::ciIaNbrRunningOrchs.0 = Gauge32: 0
CASTIRON-IA-MIB::ciIaNbrStoppedOrchs.0 = Gauge32: 14
CASTIRON-IA-MIB::ciIaNbrRunningJobs.0 = Gauge32: 0
CASTIRON-IA-MIB::ciIaNbrCompletedJobs.0 = Gauge32: 0
CASTIRON-IA-MIB::ciIaNbrErroredJobs.0 = Gauge32: 0
The following data is displayed when polling lciIaProjectTable:
--   ciIaProjectTable                               ciia.1.1.2
--    ciIaProjectEntry                              ciia.1.1.2.1
--     ciIaProjEntryIndex                           ciia.1.1.2.1.1
--     ciIaProjEntryName                            ciia.1.1.2.1.2
--     ciIaProjEntryVersion                         ciia.1.1.2.1.3
--     ciIaProjEntryConfig                          ciia.1.1.2.1.4
--     ciIaProjEntryState                           ciia.1.1.2.1.5
--     ciIaProjEntryNbrRunning                      ciia.1.1.2.1.6
--     ciIaProjEntryNbrCompleted                    ciia.1.1.2.1.7
--     ciIaProjEntryNbrErrored                      ciia.1.1.2.1.8
--     ciIaProjEntryTimePublished                   ciia.1.1.2.1.9
SNMP Tables can be challenging. SNMP tables indicate the name, version, configuration, state and other information about each project on the appliance, similar to a database schema. Each entry item (for example, ciIaProjEntryName, ciIaProjEntryVersion ) describes a column in the table. You can search through the MIB for the string to find more information on each item. Note: Attempting to "walk" the Project table in an iterative fashion may present problems. Instead, always use a tool feature that understands tables when viewing table information. The following example illustrates a "walk" technique. In this case a project was published and then cloned to create a new configuration, resulting in two table rows. As the output indicates, it is difficult to understand which items are associated with specific rows. In this case, you need to view the index (the last piece of the OID) to determine the correct arrangement of items and rows.
$ snmpwalk -v 2c -c public -M "+/home/choller/mibs" -m "+CASTIRON-IA-MIB" flintstone2 ciIaProjectTable
CASTIRON-IA-MIB::ciIaProjEntryName.98304 = STRING: OnlineLicensing
CASTIRON-IA-MIB::ciIaProjEntryName.98305 = STRING: OnlineLicensing
CASTIRON-IA-MIB::ciIaProjEntryVersion.98304 = STRING: 1.0
CASTIRON-IA-MIB::ciIaProjEntryVersion.98305 = STRING: 1.0
CASTIRON-IA-MIB::ciIaProjEntryConfig.98304 = STRING: Default
CASTIRON-IA-MIB::ciIaProjEntryConfig.98305 = STRING: OnlineLicensingClone
CASTIRON-IA-MIB::ciIaProjEntryState.98304 = INTEGER: undeployed(1)
CASTIRON-IA-MIB::ciIaProjEntryState.98305 = INTEGER: undeployed(1)
CASTIRON-IA-MIB::ciIaProjEntryNbrRunning.98304 = Gauge32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrRunning.98305 = Gauge32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrCompleted.98304 = Counter32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrCompleted.98305 = Counter32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrErrored.98304 = Counter32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrErrored.98305 = Counter32: 0
CASTIRON-IA-MIB::ciIaProjEntryTimePublished.98304 = STRING: 2009-6-12,16:36:20.0,+0:0
CASTIRON-IA-MIB::ciIaProjEntryTimePublished.98305 = STRING: 2009-6-12,16:36:20.0,+0:0
When information is mapped using the snmptable command, it is displayed more clearly, as shown in the following example:
$ snmptable -v 2c -c public -M "+/home/choller/mibs" -m "+CASTIRON-IA-MIB" flintstone2 ciIaProjectTable
SNMP table: CASTIRON-IA-MIB::ciIaProjectTable

 PEN*                 PEV PEC                  PES          PER COM PEE		PETP
 OnlineLicensing      1.0 Default              undeployed   0   0   0    2009-6-12,16:36:20.0,
                                                                         +0:0
 OnlineLicensing      1.0 OnlineLicensingClone undeployed   0   0   0    2009-6-12,16:36:20.0,
                                                                         +0:0

*Table Key: PEN=ciIaProjEntryName, PEV=ciIaProjEntryVersion, PEC=ciIaProjEntryConfig, 
 PES=ciIaProjEntryState, PER=ciIaProjEntryNbrRunning, COM=ciIaProjEntryNbrCompleted, 
 PEE=ciIaProjEntryNbrErrored, PETP=ciIaProjEntryTimePublished

Note that these examples use textual names rather than OIDs. Because a function of the MIB is to map between OID and textual name, you should not need to use OIDs on a regular basis.




Feedback | Notices


Timestamp icon Last updated: Wednesday, February 17, 2016


http://pic.dhe.ibm.com/infocenter/wci/v7r0m0/topic/com.ibm.wci.appliance.doc/Monitoring/snmp_basics.html