Configuring SNMP

Changing the IBM i SNMP Attributes

CCSS products have the ability to send information via SNMP traps. Before the facility can be used, you need to configure SNMP on the IBM i. To do this, you need to enter the CHGSNMPA command and prompt it:

 

 

 

For more information and explanation concerning the parameters within the CHGSNMPA command, see the IBM Knowledge Center.

If SNMP is not already active on your system, after you run the CHGSNMPA command, you need to run the command, STRTCPSVR *SNMP. The SNMP agent will start at the next IPL. If you need it to start sooner than that, you must first start your IBM i agent. Otherwise, the MM.SNMP job will fail.

Customer Registration MIB File

We supply a company registration MIB file (ccssreg.mi2) which will register CCSS as a valid provider of SNMP traps to the host. This file needs to be loaded and incorporated onto the customer’s host SNMP system.

A copy of this file can be found under Appendix 1 – Registration MIB below.

Using SNMP Traps with QMessage Monitor

To send a message as a trap within QMessage Monitor, you must first change the EMC Forwarding Mode parameter to contain the value *TRAP as follows:

This changes the way the EMC software performs in that it will run the MMTRAP command instead of sending an FTP record (no EMC record needs be selected for this to work).

The MMSTRMTR command will now submit a new job to run in the QSYSWRK subsystem.

This job, MM.SNMP, controls and manages the sending of all SNMP traps on each system.

Now all you have to do is to set up auto-reply records to ‘Forward to Management Console’ and an SNMP trap will be sent to the previously entered IP Address. See below for an example:

 

QMessage Monitor Definition MIB File

We supply a QMM MIB definition file (ccssmm.mi2) which defines the layout of the fields we are sending. There are twenty-six fields in total. This file needs to be loaded and incorporated onto your host SNMP system.

A copy of this file can be found under Appendix 2 – QMM MIB below.

Using SNMP Traps with QSystem Monitor

QSystem Monitor works in a different way, instead of sending information from the IBM i as with QMessage Monitor, it requires an SNMP host to ‘pull’ information.

The base product has been changed so that the last collection made by MON020C is stored in a user space MONSNMP in library MSMTEMP on all systems (overwritten each time a collection is made).

The MONBCK command submits a job to run in the QSYSWRK subsystem. This job, MON.SNMP, controls and manages the sending of all SNMP traps on each system.

 

Now all you have to do is to set up your enterprise system to ‘pull’ the information from the required IBM i system.

QSystem Monitor Supplied Definition MIB File

We supply a QSM MIB definition file (ccssmsm.mi2), which defines the layout of the fields we are sending. There are fifty-seven fields in total. This needs to be loaded and incorporated onto your host SNMP system.

A copy of this file can be found under Appendix 3 – QSM MIB below.

QSystem Monitor User-Defined MIB File

When you create new or modify definitions via the Online Monitor, you also need to notify your EMC system of these changes. You can do this by utilizing the Export as MIB option from the Tools menu on the Online Monitor.

The saved file needs to then be loaded and incorporated onto the your host SNMP system.

An extract from this file can be found under Appendix 4 – QSM MIB User Defined (extract) below.

Appendix 1 – Registration MIB

CCSS-GLOBAL-REG DEFINITIONS ::= BEGIN
IMPORTS
     MODULE-IDENTITY, OBJECT-IDENTITY,
     enterprises
          FROM SNMPv2-SMI;

ccssGlobalRegModule MODULE-IDENTITY
     LAST-UPDATED "011010103000Z"
     ORGANIZATION "CCSS (Europe) Ltd"
     CONTACT-INFO
          CCSS Support
          email: support@ccssltd.com"
     DESCRIPTION
          "The CCSS (Europe) Ltd central registration module"
     ::= { ccssModules 1 }
-- CCSS's Enterprise ID
ccssRoot OBJECT IDENTIFIER ::= { enterprises 10996 }
-- Sub-tree for registrations, including modules
ccssReg OBJECT IDENTIFIER ::= { ccssRoot 1 }
ccssModules OBJECT IDENTIFIER ::= { ccssReg 1 }

-- sub-tree for company-wide objects and events
ccssGeneric OBJECT IDENTIFIER ::= { ccssRoot 2 }

-- for Product Specific objects and events
ccssProduct OBJECT IDENTIFIER ::= { ccssRoot 3 }

-- for agent profiles
ccssCaps OBJECT IDENTIFIER ::= { ccssRoot 4 }

-- for requirement specifications
ccssReq OBJECT IDENTIFIER ::= { ccssRoot 5 }

-- for experiments
ccssExpr OBJECT IDENTIFIER ::= { ccssRoot 6 }

-- CCSS's products
ccssQmm OBJECT IDENTIFIER ::= { ccssProduct 1 }
ccssQmsm OBJECT IDENTIFIER ::= { ccssProduct 2 }
ccssQrc OBJECT IDENTIFIER ::= { ccssProduct 3 }

END

Appendix 2 – QMM MIB

CCSS-QMM-MIB DEFINITIONS ::= BEGIN
IMPORTS
     MODULE-IDENTITY, OBJECT-TYPE,
     NOTIFICATION-TYPE, Integer32
          FROM SNMPv2-SMI
     TEXTUAL-CONVENTION, DisplayString
          FROM SNMPv2-TC
     MODULE-COMPLIANCE, OBJECT-GROUP
          FROM SNMPv2-CONF
     ccssModules, ccssProduct, ccssQmm
          FROM CCSS-GLOBAL-REG;

ccssQmmMibModule MODULE-IDENTITY
     LAST-UPDATED  "011010103500Z"
     ORGANIZATION  "CCSS (Europe) Ltd"
     CONTACT-INFO
          CCSS Support
          email: support@ccssltd.com"
     DESCRIPTION
          "Initial Creation"
     ::= { ccssModules 2 }

-- Subtree for message fields
ccssMsgFld    OBJECT IDENTIFIER ::= { ccssQmm 1 }

-- and one for events
ccssTrap      OBJECT IDENTIFIER ::= { ccssQmm 2 }

-- And for groups
ccssMsgGroup  OBJECT IDENTIFIER ::= {ccssQmm 3}

-- The message fields used in the event notifications for a message
ccssMsgSystem OBJECT-TYPE
     SYNTAX       DisplayString(SIZE(0..8))
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "The system on which the message was issued"
     ::= { ccssMsgFld 1 }

ccssMsgText   OBJECT-TYPE
     SYNTAX       DisplayString(SIZE(0..255))
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
         "The first level text of the message"
     ::= {ccssMsgFld 2}

ccssMsgHandle OBJECT-TYPE
     SYNTAX       Integer32
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "The internal message reference, or handle"
     ::= { ccssMsgFld 3 }

ccssMsgSeverity OBJECT-TYPE
     SYNTAX      Integer32(0..99)
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
          "The severity of the message, 0 being informational only"
     ::= { ccssMsgFld 4 }

ccssMsgType   OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..2))
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "The message type:
               01 Completion
               02 Diagnostic
               04 Informational
               05 Inquiry
               R5 Pseudo-Inquiry
               14 Notify
               15 Escape
               I1 Manual Reply
               I2 Manual Reply
               I3 Default Reply
               I4 System Dflt Reply
               I5 System Reply List
               I9 Auto Reply
               R1 Acknowledged
               R2 Deferred
               R3 Deferred"
     ::= { ccssMsgFld 5 }

ccssMsgAcgCde  OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..15))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
          "The Accounting Code of the job that issued the message"
     ::= { ccssMsgFld 6 }

ccssMsgAckUser   OBJECT-TYPE
     SYNTAX       DisplayString(SIZE(0..10))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
          "The User who Acknowledged the Message"
     ::= { ccssMsgFld 7 }

ccssMsgAutLst OBJECT-TYPE
     SYNTAX       DisplayString(SIZE(0..10))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
          "The QMM Authority List for this message"
     ::= { ccssMsgFld 8 }

ccssMsgDftRpy  OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..20))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
          "The Default Reply from the message description"
     ::= { ccssMsgFld 9 }

ccssMsgGrpPrf  OBJECT-TYPE
     SYNTAX       DisplayString(SIZE(0..10))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
          "The Group Profile of the job that issued this message"
     ::= { ccssMsgFld 10 }

ccssMsgJobName OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..10))
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "The Name of the Job that issued this message"
     ::= { ccssMsgFld 11 }

ccssMsgUser   OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..10))
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "The Name of the User for the Job that issued this message"
     ::= { ccssMsgFld 12 }

ccssMsgJobNbr  OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..6))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
          "The Number of the Job that issued this message"
     ::= { ccssMsgFld 13 }

ccssMsgJobType  OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..10))
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "The Type of the Job that issued this message
               I - Interactive
               B - Batch
               X - System"
     ::= { ccssMsgFld 14 }

ccssMsgDate   OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "The Date the message was issued (YYMMDD)"
     ::= { ccssMsgFld 15 }

ccssMsgTime   OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
         "The Time the message was issued (HHMMSS)"
     ::= { ccssMsgFld 16 }

ccssMsgID    OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..7))
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "The ID of the message"
     ::= { ccssMsgFld 17 }

ccssMsgFile   OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..10))
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "The Name of the message file for this message"
     ::= { ccssMsgFld 18 }

ccssMsgFileLib  OBJECT-TYPE
     SYNTAX       DisplayString(SIZE(0..10))
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "The Message File Library for this message"
     ::= {ccssMsgFld 19}

ccssMsgQueue   OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..10))
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "The Message Queue to which this message was issued"
     ::= { ccssMsgFld 20 }

ccssMsgQueueLib OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..10))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
          "The Library in which the Message Queue resides"
     ::= { ccssMsgFld 21 }

ccssMsgReplyDate OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Date on which the reply was entered (YYMMDD), or 0"
::= { ccssMsgFld 22 }

ccssMsgReplyTime OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "The Time at which the reply was entered (HHMMSS), or 0"
     ::= { ccssMsgFld 23 }

ccssMsgReplyUser  OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..10))
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "The User who replied to the message"
     ::= { ccssMsgFld 24 }

ccssMsgReply  OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..80))
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
"The Reply to this Message"
::= { ccssMsgFld 25 }

ccssMsgSptGrp  OBJECT-TYPE
     SYNTAX      DisplayString(SIZE(0..10))
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
          "The Name of the Support Group assigned to this Message"
     ::= { ccssMsgFld 26 }

-- The fields which make up a message
ccssGroupMsg  OBJECT-GROUP
     OBJECTS {
          ccssMsgSystem,
          ccssMsgText,
          ccssMsgHandle,
          ccssMsgSeverity,
          ccssMsgType,
          ccssMsgAcgCde,
          ccssMsgAckUser,
          ccssMsgAutLst,
          ccssMsgDftRpy,
          ccssMsgGrpPrf,
          ccssMsgJobName,
          ccssMsgUser,
          ccssMsgJobNbr,
          ccssMsgJobType,
          ccssMsgDate,
          ccssMsgTime,
          ccssMsgID,
          ccssMsgFile,
          ccssMsgFileLib,
          ccssMsgQueue,
          ccssMsgQueueLib,
          ccssMsgReplyDate,
          ccssMsgReplyTime,
          ccssMsgReplyUser,
          ccssMsgReply,
          ccssMsgSptGrp
          }
     STATUS      current
     DESCRIPTION
          "Fields giving information about an iSeries Message"
     ::= { ccssMsgGroup 1 }

-- And these fields are used on this trap when issued by the MMTRAP command
ccssNewMsg    TRAP-TYPE
     ENTERPRISE    ccssTrap
     VARIABLES {
          ccssMsgSystem,
          ccssMsgText,
          ccssMsgHandle,
          ccssMsgSeverity,
          ccssMsgType,
          ccssMsgAcgCde,
          ccssMsgAckUser,
          ccssMsgAutLst,
          ccssMsgDftRpy,
          ccssMsgGrpPrf,
          ccssMsgJobName,
          ccssMsgUser,
          ccssMsgJobNbr,
          ccssMsgJobType,
          ccssMsgDate,
          ccssMsgTime,
          ccssMsgID,
          ccssMsgFile,
          ccssMsgFileLib,
          ccssMsgQueue,
          ccssMsgQueueLib,
          ccssMsgReplyDate,
          ccssMsgReplyTime,
          ccssMsgReplyUser,
          ccssMsgReply,
          ccssMsgSptGrp
          }
     DESCRIPTION
          "A new message has been forwarded by QMessageMonitor"
     ::= 1

END

Appendix 3 – QSM MIB

CCSS-QMSM-MIB DEFINITIONS ::= BEGIN
IMPORTS
     MODULE-IDENTITY, OBJECT-TYPE,
     NOTIFICATION-TYPE, Integer32
          FROM SNMPv2-SMI
     TEXTUAL-CONVENTION, DisplayString
          FROM SNMPv2-TC
     MODULE-COMPLIANCE, OBJECT-GROUP
          FROM SNMPv2-CONF
     ccssModules, ccssProduct, ccssQmsm
          FROM CCSS-GLOBAL-REG;

ccssQmmMibModule MODULE-IDENTITY
     LAST-UPDATED "011022124600Z"
     ORGANIZATION "CCSS (Europe) Ltd"
     CONTACT-INFO
          CCSS Support
          email: support@ccssltd.com"
     DESCRIPTION
          "Initial Creation"
     ::= { ccssModules 1 }

-- Subtree for message fields
ccssMsmPerf OBJECT IDENTIFIER ::= { ccssQmsm 1 }

-- and one for events
ccssMsmTrap OBJECT IDENTIFIER ::= { ccssQmsm 2 }

-- And for groups
ccssMsmGroup OBJECT IDENTIFIER ::= {ccssQmsm 3}

ccssMsmMSCPU  OBJECT-TYPE
     SYNTAX       Integer32
     MAX-ACCESS   read-only
     STATUS      current
     DESCRIPTION
          "CPU %age, 2 Decimals"
     ::= { ccssMsmPerf 1 }

ccssMsmMSDISK OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "System ASP Disk Used (%)"
     ::= { ccssMsmPerf 2 }

ccssMsmMSACT   OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "Active to Wait Transitions per second, 1 Decimal"
     ::= { ccssMsmPerf 3 }

ccssMsmMSWTIN OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "Wait to Inel Transitions per second, 1 Decimal"
     ::= { ccssMsmPerf 4 }

ccssMsmMSACIN  OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "Active to Inel Transitions per second, 1 Decimal"
     ::= { ccssMsmPerf 5 }

ccssMsmMSMCH   OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "Machine Pool Faults per second, 1 Decimal"
     ::= { ccssMsmPerf 6 }

ccssMsmMSFLT   OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "Non-Database Faults per second, 1 Decimal"
     ::= { ccssMsmPerf 7 }

ccssMsmMSBSY   OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "Disk Busy %"
     ::= { ccssMsmPerf 8 }

ccssMsmMSREQ OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "Disk Requests per second, 1 Decimal"
     ::= { ccssMsmPerf 9 }

ccssMsmMSRSP OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "Average Response Time in seconds, 1 Decimal"
     ::= { ccssMsmPerf 10 }

ccssMsmMSTRAN  OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "Transactions processed per hour"
     ::= { ccssMsmPerf 11 }

ccssMsmMSTTRN  OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "Total Interactive Transactions this interval"
     ::= { ccssMsmPerf 12 }

ccssMsmMSSECS OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "Length of this interval in seconds"
     ::= { ccssMsmPerf 13 }

ccssMsmMSIJBS OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "Count of interactive jobs"
     ::= { ccssMsmPerf 14 }

ccssMsmMSAIJ   OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "Count of Active Interactive jobs"
     ::= { ccssMsmPerf 15 }

ccssMsmMSICP  OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "% of CPU used by Interactive Jobs, 2 Decimals"
     ::= { ccssMsmPerf 16 }

ccssMsmMSCPT   OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "Average CPU Seconds per Transaction, 1 Decimal"
     ::= { ccssMsmPerf 17 }

ccssMsmMSJBS   OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "Count of Active Jobs in the system"
     ::= { ccssMsmPerf 18 }

ccssMsmMSABJ  OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "Count of active Batch Jobs"
     ::= { ccssMsmPerf 19 }

ccssMsmMSUS1  OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "User Data element 1, 2 Decimals"
     ::= { ccssMsmPerf 20 }

ccssMsmMSUS2   OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS  read-only
     STATUS       current
     DESCRIPTION
          "User Data element 2, 2 Decimals"
     ::= { ccssMsmPerf 21 }

ccssMsmMSUS3  OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "User Data element 3, 2 Decimals"
     ::= { ccssMsmPerf 22 }

ccssMsmMSUS4  OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "User Data element 4, 2 Decimals"
     ::= { ccssMsmPerf 23 }

ccssMsmMSUS5  OBJECT-TYPE
     SYNTAX      Integer32
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
          "User Data element 5, 2 Decimals"
     ::= { ccssMsmPerf 24 }

ccssMsmMSUS6  OBJECT-TYPE
<


Still have questions? We can help. Submit a case to Technical Support.

Last Modified On: July 10, 2018