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 App Connect MIBs.
In the lexicon of SNMP, a App Connect 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 App Connect MIBs
Files downloaded from the App Connect WMC have multiple MIB DEFINITIONS = BEGIN - END sections. Each section comprises a MIB with its own hierarchy. To poll for App Connect-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.
-- 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
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.
$ 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.