Page 2 of 2

Re: Problem with snmp v3

Posted: Tue Mar 04, 2014 8:31 pm
by Ravil
sreinhardt wrote:v1, v2, and v3 are generally completely separate oids and mibs. Could you provide the mib you think should work with this please?
This is part of the MIB file:

Code: Select all

-- ***************************************************************************
-- ***************************************************************************
--
-- File         : immalert.mib
-- Description  : Integrated Management Module mib for SNMP alerts
-- By           : IBM
-- Version      : 2.3
-- Date         : July 26, 2011
--
--
-- Copyright (c) 2011 IBM  All Rights Reserved.
--
-- 
-- Contains MIB description for: 
--  This MIB is used by the IMM to generate traps
--  for Alert conditions detected by the SP.
-- ***************************************************************************
-- ***************************************************************************
-- ***************************************************************************
-- Revisions:
--
-- July 26, 2011 - 2.3 - correction to "Alert Severity Value", range 0..65535 
-- ***************************************************************************
        IMMALERT-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            OBJECT-TYPE                          FROM RFC-1212
            enterprises,
            Counter, TimeTicks, IpAddress        FROM RFC1155-SMI
            mib-2,
            DisplayString                        FROM RFC1213-MIB;


        -- MIB for IMM Alerts starts here


        ibm            OBJECT IDENTIFIER ::=   { enterprises 2 }

        -- IBM products group

        ibmProd        OBJECT IDENTIFIER ::=   { ibm 6 }

        -- IBM Netfinity SP

        supportProcessor OBJECT IDENTIFIER ::= { ibmProd 158 }

        -- IBM IMM Alert

        immalertMIB   OBJECT IDENTIFIER ::= { supportProcessor 5 }

        -- the nfspalt generic trap generator group

        immtrapg      OBJECT IDENTIFIER ::=   { immalertMIB 1 }

        altDateTime    OBJECT-TYPE
                       SYNTAX  DisplayString
                       ACCESS  read-only
                       STATUS  mandatory
                       DESCRIPTION
                       "Timestamp of Local Date and Time when alert was generated"
                       ::= { immtrapg 1 }

        altSpTxtId        OBJECT-TYPE
                       SYNTAX  DisplayString
                       ACCESS  read-only
                       STATUS  mandatory
                       DESCRIPTION
                       "SP System Identification - Text Identification"
                       ::= { immtrapg 3 }

        altSysUuid     OBJECT-TYPE
                       SYNTAX  DisplayString
                       ACCESS  read-only
                       STATUS  mandatory
                       DESCRIPTION
                       "Host System UUID(Universal Unique ID)"
                       ::= { immtrapg 5 }
                       
        altSysSern     OBJECT-TYPE
                       SYNTAX  DisplayString
                       ACCESS  read-only
                       STATUS  mandatory
                       DESCRIPTION
                       "Host System Serial Number"
                       ::= { immtrapg 6 }
        
        altPriority     OBJECT-TYPE
                       SYNTAX  INTEGER (0..65535)
                       ACCESS  read-only
                       STATUS  mandatory
                       DESCRIPTION
                       "Alert Severity Value
                          - Critical Alert(0)
                          - Non-Critical Alert(2)
                          - System Alert(4)
                          - Recovery(8)"
                       ::= { immtrapg 8 }

        altMsgText     OBJECT-TYPE
                       SYNTAX  DisplayString
                       ACCESS  read-only
                       STATUS  mandatory
                       DESCRIPTION
                       "Alert Message Text"
                       ::= { immtrapg 9 }

        altMsgID       OBJECT-TYPE
                       SYNTAX  INTEGER
                       ACCESS  read-only
                       STATUS  mandatory
                       DESCRIPTION
                       "Alert Message ID"
                       ::= { immtrapg 10 }

        altMsgIDPrefix OBJECT-TYPE
                       SYNTAX  DisplayString
                       ACCESS  read-only
                       STATUS  mandatory
                       DESCRIPTION
                       "Alert Message ID"
                       ::= { immtrapg 11 }	
                       
				   
        altHostContact  OBJECT-TYPE
                       SYNTAX  DisplayString
                       ACCESS  read-only
                       STATUS  mandatory
                       DESCRIPTION
                       "Host Contact"
                       ::= { immtrapg 12 }

        altHostLocation  OBJECT-TYPE
                       SYNTAX  DisplayString
                       ACCESS  read-only
                       STATUS  mandatory
                       DESCRIPTION
                       "Host Location"
                       ::= { immtrapg 13 }

-- ******************************************
-- Critical Traps
-- ******************************************
        ibmSpTrapTempC        TRAP-TYPE
                                ENTERPRISE  immalertMIB
                                VARIABLES
                                  {
                                  altDateTime,
                                  altSpTxtId,
                                  altSysUuid,
                                  altSysSern,
                                  altMsgID,
                                  altMsgIDPrefix,
                                  altPriority,
                                  altMsgText,
                                  altHostContact,
                                  altHostLocation
                                  }
                                  DESCRIPTION
                                    "Critical Alert: Temperature threshold exceeded."
                                  ::= 0

        ibmSpTrapVoltC        TRAP-TYPE
                              ENTERPRISE  immalertMIB  
                              VARIABLES
                                {
                                altDateTime,
                                altSpTxtId,
                                altSysUuid,
                                altSysSern,
                                altMsgID,
                                altMsgIDPrefix,
                                altPriority,
                                altMsgText,
                                altHostContact,
                                altHostLocation
                                }
                                DESCRIPTION
                                  "Critical Alert: Voltage threshold exceeded."
                                ::= 1

        ibmSpTrapPowerC       TRAP-TYPE
                              ENTERPRISE  immalertMIB
                              VARIABLES
                                {
                                altDateTime,
                                altSpTxtId,
                                altSysUuid,
                                altSysSern,
                                altMsgID,
                                altMsgIDPrefix,
                                altPriority,
                                altMsgText,
                                altHostContact,
                                altHostLocation
                                }
                                DESCRIPTION
                                  "Critical Alert: Power failure."
                                ::= 4

This is part of the conf file:

Code: Select all

#
#
#
#
MIB: IMMALERT-MIB (file:/etc/snmp/mibs/immalert-x3650.mib) converted on Mon Mar  3 09:56:17 2014 using snmpttconvertmib v1.4
#
#
#
EVENT ibmSpTrapTempC .1.3.6.1.4.1.2.6.158.5.0.0 "Status Events" Normal
FORMAT Critical Alert: Temperature threshold exceeded. $*
EXEC /usr/local/nagios/libexec/eventhandlers/submit_check_result $r TRAP 0 "Critical Alert: Temperature threshold exceeded. $*"
SDESC
Critical Alert: Temperature threshold exceeded.
Variables:
  1: altDateTime
  2: altSpTxtId
  3: altSysUuid
  4: altSysSern
  5: altMsgID
  6: altMsgIDPrefix
  7: altPriority
  8: altMsgText
  9: altHostContact
  10: altHostLocation
EDESC
#
#
#
EVENT ibmSpTrapVoltC .1.3.6.1.4.1.2.6.158.5.0.1 "Status Events" Normal
FORMAT Critical Alert: Voltage threshold exceeded. $*
EXEC /usr/local/nagios/libexec/eventhandlers/submit_check_result $r TRAP 0 "Critical Alert: Voltage threshold exceeded. $*"
SDESC
Critical Alert: Voltage threshold exceeded.
Variables:
  1: altDateTime
  2: altSpTxtId
  3: altSysUuid
  4: altSysSern
  5: altMsgID
  6: altMsgIDPrefix
  7: altPriority
  8: altMsgText
  9: altHostContact
  10: altHostLocation
EDESC
#
#
#
EVENT ibmSpTrapPowerC .1.3.6.1.4.1.2.6.158.5.0.4 "Status Events" Normal
FORMAT Critical Alert: Power failure. $*
EXEC /usr/local/nagios/libexec/eventhandlers/submit_check_result $r TRAP 0 "Critical Alert: Power failure. $*"
SDESC
Critical Alert: Power failure.
Variables:
  1: altDateTime
  2: altSpTxtId
  3: altSysUuid
  4: altSysSern
  5: altMsgID
  6: altMsgIDPrefix
  7: altPriority
  8: altMsgText
  9: altHostContact
  10: altHostLocation
EDESC
#
#
#
EVENT ibmSpTrapHdC .1.3.6.1.4.1.2.6.158.5.0.5 "Status Events" Normal
FORMAT Critical Alert: Hard disk drive failure. $*
EXEC /usr/local/nagios/libexec/eventhandlers/submit_check_result $r TRAP 0 "Critical Alert: Hard disk drive failure. $*"
SDESC
Critical Alert: Hard disk drive failure.
Variables:
  1: altDateTime
  2: altSpTxtId
  3: altSysUuid
  4: altSysSern
  5: altMsgID
  6: altMsgIDPrefix
  7: altPriority
  8: altMsgText
  9: altHostContact
  10: altHostLocation
EDESC
#
#
#
EVENT ibmSpTrapFanC .1.3.6.1.4.1.2.6.158.5.0.11 "Status Events" Normal
FORMAT Critical Alert: Single Fan failure. $*
EXEC /usr/local/nagios/libexec/eventhandlers/submit_check_result $r TRAP 0 "Critical Alert: Single Fan failure. $*"
SDESC
Critical Alert: Single Fan failure.
Variables:
  1: altDateTime
  2: altSpTxtId
  3: altSysUuid
  4: altSysSern
  5: altMsgID
  6: altMsgIDPrefix
  7: altPriority
  8: altMsgText
  9: altHostContact
  10: altHostLocation
EDESC
#
#
#
EVENT ibmSpTrapIhcC .1.3.6.1.4.1.2.6.158.5.0.36 "Status Events" Normal
FORMAT Critical Alert: Incompatible hardware configuration. $*
EXEC /usr/local/nagios/libexec/eventhandlers/submit_check_result $r TRAP 0 "Critical Alert: Incompatible hardware configuration. $*"
SDESC
Critical Alert: Incompatible hardware configuration.
Variables:
  1: altDateTime
  2: altSpTxtId
  3: altSysUuid
  4: altSysSern
  5: altMsgID
  6: altMsgIDPrefix
  7: altPriority
  8: altMsgText
  9: altHostContact
  10: altHostLocation
EDESC
#
#
#
With IBM site was downloaded two MIBs for this equipment.
immalert.mib - 29kb and imm.mib - 329kb;
immalert.mib I was able to translate in immalert.conf (illustrated above). imm.mib a was not able to translate (illustrated below)

Code: Select all

[root@localhost Baiburin]# snmpttconvertmib --in=/shares/Baiburin/imm.mib --out=/shares/Baiburin/test.conf --exec='/usr/local/nagios/libexec/eventhandlers/submit_check_result $r TRAP 0'
exec: /usr/local/nagios/libexec/eventhandlers/submit_check_result $r TRAP 0


*****  Processing MIB file *****

snmptranslate version: NET-SNMP version: 5.5
severity: Normal

File to load is:        /shares/Baiburin/imm.mib
File to APPEND TO:      /shares/Baiburin/test.conf

MIBS environment var:   /shares/Baiburin/imm.mib
mib name: IMM-MIB


Processing MIB:         IMM-MIB
#
skipping a TRAP-TYPE / NOTIFICATION-TYPE line - probably an import line.


Done

Total translations:        0
Successful translations:   0
Failed translations:       0

The MIB file did not contain any TRAP-TYPE or NOTIFICATION-TYPE definitions,
so no translations occured.  Try another MIB file.
This is part of the file imm.mib (It is have OIDs):

Code: Select all

-- File         : imm.mib
-- Description  : Integrated Management Module mib for SNMP
-- By           : IBM
-- Version      : 1.36
-- Date         : October 29, 2012
--
--
-- Copyright (c) 2012 IBM  All Rights Reserved.
--
-- 
-- Contains MIB description for: 
--   This MIB is to be used to provide configuration support of IMM as well as monitoring support 
--   for the system.
-- ***************************************************************************
-- ***************************************************************************
-- ***************************************************************************
-- Revisions: 
--     5/12/2010  
--     Function equivalent to current IMM.  The top level OID and name was changed so it is a  different
--     MIB than current IMM MIB although many objects are in common.  This MIB was extended from the current 
--     IMM MIB to cover the full functionality of the IMM.  It does not yet cover new features that are unique to IMM2. 
--
-- ***************************************************************************
        IMM-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            OBJECT-TYPE                          FROM RFC-1212
            enterprises                          FROM RFC1155-SMI
            DisplayString                        FROM RFC1213-MIB
            IpAddress                            FROM RFC1155-SMI 
            -- PTE: added following 7/12/2011
            Gauge                                FROM RFC1155-SMI

            TEXTUAL-CONVENTION                   FROM SNMPv2-TC
            TRAP-TYPE                            FROM RFC-1215;

            InetAddressIPv6 ::= TEXTUAL-CONVENTION
                        DISPLAY-HINT "02x:02x:02x:02x:02x:02x:02x:02x"
                        -- PTE: changed to mandatory
                        -- STATUS       current
                        STATUS       mandatory
                        DESCRIPTION
                        "Represents an IPv6 network address. Since MIB browsers
                         may require different formats, the address is
                         expected to be the 16 byte address in network-byte order,
                         and shortened formats such as 0::0 are not accepted in SET
                         operations. Two common examples are:

                         The NetSNMP command line will accept SET requests like:
                           snmpset -v1 -cprivate <host> s 2001:00:00:00:FFFF:CCC4:BBB2:AAA6

                         Other MIB browsers may require the SET request value to be formatted as:
                           # 0x20 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xFF 0xCC 0xC4 0xBB 0xB2 0xAA 0xA6"
                        SYNTAX       OCTET STRING (SIZE (16))

            EntryStatus ::= INTEGER
                         { valid(1),
                           createRequest(2),
                           underCreation(3),
                           invalid(4)
                         }

              -- The status of a table entry.
              --
              -- Setting this object to the value invalid(4) has the
              -- effect of invalidating the corresponding entry.
              -- That is, it effectively disassociates the mapping
              -- identified with said entry.
              -- It is an implementation-specific matter as to whether
              -- the agent removes an invalidated entry from the table.
              -- Accordingly, management stations must be prepared to
              -- receive tabular information from agents that corresponds
              -- to entries currently not in use.  Proper
              -- interpretation of such entries requires examination
              -- of the relevant EntryStatus object.
              --
              -- An existing instance of this object cannot be set to
              -- createRequest(2).  This object may only be set to
              -- createRequest(2) when this instance is created.  When
              -- this object is created, the agent may wish to create
              -- supplemental object instances to complete a conceptual
              -- row in this table.  Immediately after completing the
              -- create operation, the agent must set this object to
              -- underCreation(3).
              --
              -- Entries shall exist in the underCreation(3) state until

              -- the management station is finished configuring the
              -- entry and sets this object to valid(1) or aborts,
              -- setting this object to invalid(4).  If the agent
              -- determines that an entry has been in the
              -- underCreation(3) state for an abnormally long time,
              -- it may decide that the management station has
              -- crashed.  If the agent makes this decision,
              -- it may set this object to invalid(4) to reclaim the
              -- entry.  A prudent agent will understand that the
              -- management station may need to wait for human input
              -- and will allow for that possibility in its
              -- determination of this abnormally long period.

        -- IBM enterprise group  
        ibm         OBJECT IDENTIFIER ::=   { enterprises 2 }

        -- IBM products group
        ibmAgents      OBJECT IDENTIFIER ::=   { ibm 3 }

        -- IBM e-Server Advanced System Management Support Processor(SP) agent group
        netfinitySupportProcessorAgent OBJECT IDENTIFIER ::= { ibmAgents 51 }

        -- IBM integrated Management Module
        ibmIntegratedManagementModuleMIB     OBJECT IDENTIFIER ::= { netfinitySupportProcessorAgent 3 }

-- ***************************************************************************
-- Start: Define groups of objects within the ibmRemoteSupSnmpMIB
-- ***************************************************************************
  --This group of objects provides the various environmental monitors for the
  -- local system and the IMM
  monitors OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 1 } 

  --This group of objects provides the error log objects for the IMM
  errorLogs OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 2 }
  
  --This group of objects provides configuration functions for the IMM
  configureSP     OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 3 }

  --This group of objects provides configuration functions for the system(server)
  generalSystemSettings  OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 4 }

  --This group of objects provides configuration functions for system power
  systemPower  OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 5 }
  
  --This group of objects provides functions to boot the IMM and system
  restartReset      OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 6 }
  
  --This group of objects provides functions to update the IMM firmware
  firmwareUpdate    OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 7 }
  
    --This group of objects provides functions Service Advisor
  serviceAdvisor     OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 8 }

-- ****************************************************************************
--  Monitors
-- ****************************************************************************   
    -- ************************************************************************
    -- Temperature
    -- ************************************************************************
    temperature OBJECT IDENTIFIER ::= { monitors 1 }  
     tempNumber 		OBJECT-TYPE
         SYNTAX			Gauge
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The present number of rows in the temperature table."
         ::= { temperature 1 }

     tempTable 			OBJECT-TYPE
         SYNTAX			SEQUENCE OF TempEntry
         ACCESS			not-accessible
         STATUS			mandatory
         DESCRIPTION	"This table contains temperature measurement information."
         ::= { temperature 2 }

     tempEntry 			OBJECT-TYPE
         SYNTAX			TempEntry
         ACCESS			not-accessible
         STATUS			mandatory
         DESCRIPTION	"Each row contains parameters related to a temperature measurement channel."
         INDEX			{ tempIndex }
         ::= { tempTable 1 }

     TempEntry ::=
         SEQUENCE {
	     tempIndex		INTEGER,
	     tempDescr		DisplayString,
	     tempReading	INTEGER,  
   	     tempNominalReading	INTEGER,
	     tempNonRecovLimitHigh	INTEGER,
	     tempCritLimitHigh	INTEGER,
	     tempNonCritLimitHigh INTEGER,
	     tempNonRecovLimitLow	INTEGER,
	     tempCritLimitLow	INTEGER,
	     tempNonCritLimitLow INTEGER
         }

     tempIndex 			OBJECT-TYPE
         SYNTAX			INTEGER (1..100)
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"This column is used to identify a particular 
				temperature measurement channel."
         ::= { tempEntry 1 }

     tempDescr 			OBJECT-TYPE
         SYNTAX			DisplayString (SIZE(0..31))
         ACCESS			read-only

         STATUS			mandatory
         DESCRIPTION	"A description of the temperature measurement 
				channel."
         ::= { tempEntry 2 }

     tempReading 		OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Degrees Celsius"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The measured temperature."
         ::= { tempEntry 3 }
      
     tempNominalReading	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Degrees Celsius"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The nominal temperature, if available."
         ::= { tempEntry 4 }

     tempNonRecovLimitHigh	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Degrees Celsius"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The non-recoverable limit for the measured temperature. If 
				the measured value rises above this limit a trap is sent."
         ::= { tempEntry 5}

     tempCritLimitHigh    	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Degrees Celsius"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The critical limit for the measured temperature. If 
				the measured value rises above this limit a trap is sent."
         ::= { tempEntry 6}

     tempNonCritLimitHigh	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Degrees Celsius"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The non-critical limit for the measured temperature. If 
				the measured value rises above this limit a trap is sent."
         ::= { tempEntry 7}

     tempNonRecovLimitLow	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Degrees Celsius"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The non-recoverable limit for the measured temperature. If 
				the measured value falls below this limit a trap is sent."
         ::= { tempEntry 8}

     tempCritLimitLow    	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Degrees Celsius"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The critical limit for the measured temperature. If 
				the measured value falls below  this limit a trap is sent."
         ::= { tempEntry 9}

     tempNonCritLimitLow	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Degrees Celsius"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The non-critical limit for the measured temperature. If 
				the measured value falls below  this limit a trap is sent."
         ::= { tempEntry 10}

    -- ************************************************************************
    -- Voltages
    -- ************************************************************************
    voltage OBJECT IDENTIFIER ::= { monitors 2 } 
    --------------------------------------------------------------------------------
     voltNumber 		OBJECT-TYPE
         SYNTAX			Gauge
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The present number of rows in the voltage table."
         ::= { voltage 1 }

     voltTable 			OBJECT-TYPE
         SYNTAX			SEQUENCE OF VoltEntry
         ACCESS			not-accessible
         STATUS			mandatory
         DESCRIPTION	"This table contains voltage measurement information."
         ::= { voltage 2 }

     voltEntry 			OBJECT-TYPE
         SYNTAX			VoltEntry
         ACCESS			not-accessible
         STATUS			mandatory
         DESCRIPTION	"Each row contains parameters related to a 
				voltage measurement channel."
         INDEX			{ voltIndex }
         ::= { voltTable 1 }

     VoltEntry ::=
         SEQUENCE {
	     voltIndex		INTEGER,
	     voltDescr		DisplayString,
	     voltReading	INTEGER,
	     voltNominalReading INTEGER,
	     voltNonRecovLimitHigh	INTEGER,
	     voltCritLimitHigh	INTEGER,
	     voltNonCritLimitHigh  	INTEGER,
	     voltNonRecovLimitLow	INTEGER,
	     voltCritLimitLow	   	INTEGER,
	     voltNonCritLimitLow	INTEGER			
         }

     voltIndex 			OBJECT-TYPE
         SYNTAX			INTEGER (1..1000)
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"This column is used to identify a particular 
				voltage	measurement channel."
         ::= { voltEntry 1 }

     voltDescr 			OBJECT-TYPE
         SYNTAX			DisplayString (SIZE(0..31))
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"A description of the voltage measurement channel."
         ::= { voltEntry 2 }

     voltReading		OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Millivolts"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The measured voltage."
         ::= { voltEntry 3 }
      
     voltNominalReading	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Millivolts"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The nominal voltage, if available."
         ::= { voltEntry 4 }

     voltNonRecovLimitHigh	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Millivolts"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The high non-recoverable limit for the measured voltage. If the 
				measured value falls above this limit a trap is sent."
         ::= { voltEntry 5 }

     voltCritLimitHigh	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Millivolts"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The high critical limit for the measured voltage. If the 
				measured value rises above this limit a trap is sent."
         ::= { voltEntry 6 }
         
     voltNonCritLimitHigh	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Millivolts"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The high non-critical limit for the measured voltage. If the 
				measured value rises above this limit a trap is sent."
         ::= { voltEntry 7 } 
         
     voltNonRecovLimitLow	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Millivolts"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The low non-recoverable limit for the measured voltage. If the 
				measured value falls below this limit a trap is sent."
         ::= { voltEntry 8 }

     voltCritLimitLow	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Millivolts"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The low critical limit for the measured voltage. If the 
				measured value falls below this limit a trap is sent."
         ::= { voltEntry 9 }
         
     voltNonCritLimitLow	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"Millivolts"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The low non-critical limit for the measured voltage. If the 
				measured value falls below this limit a trap is sent."
         ::= { voltEntry 10 }
			
			
    -- ************************************************************************
    -- Fans
    -- ************************************************************************
    fans OBJECT IDENTIFIER ::= { monitors 3 } 
     fanNumber 		OBJECT-TYPE
         SYNTAX			Gauge
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The present number of rows in the fan table."
         ::= { fans 1 }

     fanTable 			OBJECT-TYPE
         SYNTAX			SEQUENCE OF FanEntry
         ACCESS			not-accessible
         STATUS			mandatory
         DESCRIPTION	"This table contains fan information."
         ::= { fans 2 }

     fanEntry 			OBJECT-TYPE
         SYNTAX			FanEntry
         ACCESS			not-accessible
         STATUS			mandatory
         DESCRIPTION	"Each row contains parameters related to a fan." 
         INDEX			{ fanIndex }
         ::= { fanTable 1 }

     FanEntry ::=
         SEQUENCE {
	     fanIndex		INTEGER (1..100),
	     fanDescr		DisplayString,
	     fanSpeed	    OCTET STRING,
	     fanNonRecovLimitHigh	INTEGER,
	     fanCritLimitHigh	INTEGER,
	     fanNonCritLimitHigh  	INTEGER,
	     fanNonRecovLimitLow	INTEGER,
	     fanCritLimitLow	   	INTEGER,
	     fanNonCritLimitLow	INTEGER
         }

     fanIndex 			OBJECT-TYPE
         SYNTAX			INTEGER (1..100)
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"This column is used to identify a particular fan."
         ::= { fanEntry 1 }
         
     fanDescr 			OBJECT-TYPE
         SYNTAX			DisplayString (SIZE(0..31))
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"A description of the fan measurement channel."
         ::= { fanEntry 2 }


     fanSpeed    OBJECT-TYPE
                  SYNTAX  OCTET STRING 
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "Fan  speed expressed in percent(%) of maximum RPM. 
                  An octet string expressed as 'ddd% of maximum' where:
                  d is a decimal digit or blank space for a leading zero.
                  If the fan is determined not to be running or 
                  the fan speed cannot be determined, the string will
                  indicate 'Offline'."   
                  ::= { fanEntry 3 }

     fanNonRecovLimitHigh	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"RPM"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The high non-recoverable limit for the measured fan. If the 
				measured value falls above this limit a trap is sent."
         ::= { fanEntry 4 }

     fanCritLimitHigh	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"RPM"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The high critical limit for the measured fan. If the 
				measured value rises above this limit a trap is sent."
         ::= { fanEntry 5 }

     fanNonCritLimitHigh	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"RPM"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The high non-critical limit for the measured fan. If the 
				measured value rises above this limit a trap is sent."
         ::= { fanEntry 6 } 

     fanNonRecovLimitLow	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"RPM"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The low non-recoverable limit for the measured fan. If the 
				measured value falls below this limit a trap is sent."
         ::= { fanEntry 7 }

     fanCritLimitLow	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"RPM"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The low critical limit for the measured fan. If the 
				measured value falls below this limit a trap is sent."
         ::= { fanEntry 8 }

     fanNonCritLimitLow	OBJECT-TYPE
         SYNTAX			INTEGER
         UNITS			"RPM"
         ACCESS			read-only
         STATUS			mandatory
         DESCRIPTION	"The low non-critical limit for the measured fan. If the 
				measured value falls below this limit a trap is sent."
         ::= { fanEntry 9 }

    -- ************************************************************************
    -- System Health 
    -- ************************************************************************
    systemHealth OBJECT IDENTIFIER ::= { monitors 4 }
    
     -- ***********************************************************************
     -- System Health Status
     -- ***********************************************************************
     systemHealthStat  OBJECT-TYPE
                  SYNTAX  INTEGER {
                                    nonRecoverable(0),
                                    critical(2),
                                    nonCritical(4),
                                    normal(255)
                                  }
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "Indicates status of system health for the 
                  system in which the IMM resides. 
                  Value of 'nonRecoverable' indicates a severe error has occurred 
                  and the system may not be functioning. A value of 
                  'critical' indicates that a error has occurred but 
                  the system is currently functioning properly. A value of 
 		          'nonCritical' indicates that a condition has occurred 
 		          that may change the state of the system in the future but currently 
 	    	      the system is working properly. A value of 
                  'normal' indicates that the system is operating normally."
                  ::= { systemHealth 1 }
                  
     -- ***********************************************************************
     -- System Health Summary
     -- ***********************************************************************
     systemHealthSummaryTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF SystemHealthSummaryEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                   "Table of System Health summary. Contains more detailed 
                   information about the reasons for the overall system 
                   health status."
                   ::= { systemHealth 2 }
   
     systemHealthSummaryEntry OBJECT-TYPE
                   SYNTAX SystemHealthSummaryEntry 
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                   "System Health Summary entry"
                   INDEX { systemHealthSummaryIndex }
                   ::= { systemHealthSummaryTable 1 }
                   
   
     SystemHealthSummaryEntry ::= SEQUENCE { 
                 systemHealthSummaryIndex INTEGER,
                 systemHealthSummarySeverity OCTET STRING,
                 systemHealthSummaryDescription OCTET STRING
     }
   
   
     systemHealthSummaryIndex  OBJECT-TYPE
                 SYNTAX  INTEGER (1..1000)
                 ACCESS  read-only
                 STATUS  mandatory
                 DESCRIPTION
                 "System health summary index."
                 ::= { systemHealthSummaryEntry 1 }
   
     systemHealthSummarySeverity  OBJECT-TYPE
                 SYNTAX  OCTET STRING
                 ACCESS  read-only
                 STATUS  mandatory
                 DESCRIPTION
                 "System health summary severity."
                 ::= { systemHealthSummaryEntry 2 }
   
     systemHealthSummaryDescription  OBJECT-TYPE
                 SYNTAX  OCTET STRING
                 ACCESS  read-only
                 STATUS  mandatory
                 DESCRIPTION
                 "System health summary description."
                 ::= { systemHealthSummaryEntry 3 }

     -- ***********************************************************************
     -- Vital Product Data(VPD) information 
     -- ***********************************************************************
     vpdInformation  OBJECT IDENTIFIER ::= { monitors 5 } 
     
     -- ***********************************************************************
      -- IMM VPD
      -- ***********************************************************************

      immVpdTable OBJECT-TYPE
                    SYNTAX  SEQUENCE OF IMMVpdEntry
                    ACCESS  not-accessible
                    STATUS  mandatory
                    DESCRIPTION
                    "Table of IMM VPD."
                    ::= { vpdInformation 1 }

      immVpdEntry OBJECT-TYPE
                    SYNTAX IMMVpdEntry 
                    ACCESS  not-accessible
                    STATUS  mandatory
                    DESCRIPTION
                    "iMBC VPD entry."
                    INDEX { immVpdIndex }
                    ::= { immVpdTable 1 }


      IMMVpdEntry ::= SEQUENCE {
                  immVpdIndex INTEGER,
		  immVpdType OCTET STRING,
                  immVpdVersionString OCTET STRING,
		  immVpdReleaseDate OCTET STRING
      }


      immVpdIndex  OBJECT-TYPE
                  SYNTAX  INTEGER (1..1000)
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "IMM VPD index."
                  ::= { immVpdEntry 1 }

      immVpdType  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "IMM VPD Type. Indicates either Bios or Diag or spFimware VPD"
                  ::= { immVpdEntry 2 }

      immVpdVersionString  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "IMM VPD Version Number of the software(Bios/Diag/spFirmware).
                   For IMM2 the string contains both the Build ID and the Version
                   Number, for example, like '1AOO3A v1.0.1'. "
                  ::= { immVpdEntry 3 }

      immVpdReleaseDate  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "IMM VPD Release Date of when the software(Bios/Diag/spFirmware) was released."
                  ::= { immVpdEntry 4 }


      -- ***********************************************************************
      -- Machine Level VPD 
      -- ***********************************************************************
      machineVpd OBJECT IDENTIFIER ::= { vpdInformation 2 }

       
       machineLevelVpd OBJECT IDENTIFIER ::= { machineVpd 1 }
        
        machineLevelVpdMachineType OBJECT-TYPE
                      SYNTAX  OCTET STRING 
                      ACCESS  read-only
                      STATUS  mandatory
                      DESCRIPTION
                      "Machine type VPD information." 
                      ::= { machineLevelVpd 1 }
                      
        machineLevelVpdMachineModel OBJECT-TYPE
                      SYNTAX  OCTET STRING 
                      ACCESS  read-only
                      STATUS  mandatory
                      DESCRIPTION
                      "Machine model VPD information." 
                      ::= { machineLevelVpd 2 }
                      
        machineLevelSerialNumber OBJECT-TYPE
                      SYNTAX  OCTET STRING 
                      ACCESS  read-only
                      STATUS  mandatory
                      DESCRIPTION
                      "Machine serial number VPD information." 
                      ::= { machineLevelVpd 3 }
                      
        machineLevelUUID OBJECT-TYPE
                      SYNTAX  OCTET STRING 
                      ACCESS  read-only
                      STATUS  mandatory
                      DESCRIPTION
                      "Machine UUID(Universal Unique ID information)." 
                      ::= { machineLevelVpd 4 }

        machineLevelProductName OBJECT-TYPE
                      SYNTAX  OCTET STRING 
                      ACCESS  read-only
                      STATUS  mandatory
                      DESCRIPTION
                      "Machine Product Name (e.g. System x3650 M2)." 
                      ::= { machineLevelVpd 5 }

      -- ***********************************************************************
      -- System Component Level VPD 
      -- ***********************************************************************
      systemComponentLevelVpdTable OBJECT-TYPE
                    SYNTAX  SEQUENCE OF SystemComponentLevelVpdEntry
                    ACCESS  not-accessible
                    STATUS  mandatory
                    DESCRIPTION
                    "Table of the system component hardware VPD information.  View as a 
                    table and not as individual entries for consistent results."
                    ::= { vpdInformation 17 }

      systemComponentLevelVpdEntry OBJECT-TYPE
                    SYNTAX SystemComponentLevelVpdEntry 
                    ACCESS  not-accessible
                    STATUS  mandatory
                    DESCRIPTION
                    "System component hardware VPD entry.  View as a table and not as 
                    individual entries for consistent results."
                    INDEX { componentLevelVpdIndex }
                    ::= { systemComponentLevelVpdTable 1 }

      SystemComponentLevelVpdEntry ::= SEQUENCE { 
                  componentLevelVpdIndex INTEGER,
                  componentLevelVpdFruNumber OCTET STRING,		  
                  componentLevelVpdFruName OCTET STRING,
                  componentLevelVpdSerialNumber OCTET STRING,
                  componentLevelVpdManufacturingId OCTET STRING
      }

      componentLevelVpdIndex  OBJECT-TYPE
                  SYNTAX  INTEGER (1..1000)
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD index.  View as a table and not as individual
                  entries for consistent results."
                  ::= { systemComponentLevelVpdEntry 1 }

      componentLevelVpdFruNumber  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD FRU number.  View as a table and not as 
                  individual entries for consistent results."
                  ::= { systemComponentLevelVpdEntry 2 }

      componentLevelVpdFruName  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD FRU name.  View as a table and not as 
                  individual entries for consistent results."
                  ::= { systemComponentLevelVpdEntry 3 }
                  
      componentLevelVpdSerialNumber  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD serial number.  View as a table and not as
                  individual entries for consistent results."
                  ::= { systemComponentLevelVpdEntry 4 }
                  
      componentLevelVpdManufacturingId  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD manufacturing ID.  View as a table and not as
                  individual entries for consistent results."
                  ::= { systemComponentLevelVpdEntry 5 }
                  
      -- ***********************************************************************
      -- System Component Level VPD Tracking log  
      -- ***********************************************************************
      systemComponentLevelVpdTrackingTable OBJECT-TYPE
                    SYNTAX  SEQUENCE OF SystemComponentLevelVpdTrackingEntry
                    ACCESS  not-accessible
                    STATUS  mandatory
                    DESCRIPTION
                    "Table of system component hardware VPD tracking activity log.  View as
                    a table and not as individual entries for consistent results."
                    ::= { vpdInformation 18 }

      systemComponentLevelVpdTrackingEntry OBJECT-TYPE
                    SYNTAX SystemComponentLevelVpdTrackingEntry 
                    ACCESS  not-accessible
                    STATUS  mandatory
                    DESCRIPTION
                    "System component hardware VPD tracking activity log entry.  View as a
                    table and not as individual entries for consistent results."
                    INDEX { componentLevelVpdTrackingIndex }
                    ::= { systemComponentLevelVpdTrackingTable 1 }

      SystemComponentLevelVpdTrackingEntry ::= SEQUENCE { 
                  componentLevelVpdTrackingIndex INTEGER,
                  componentLevelVpdTrackingFruNumber OCTET STRING,
                  componentLevelVpdTrackingFruName OCTET STRING,
                  componentLevelVpdTrackingSerialNumber OCTET STRING,
                  componentLevelVpdTrackingManufacturingId OCTET STRING,
                  componentLevelVpdTrackingAction OCTET STRING,
                  componentLevelVpdTrackingTimestamp OCTET STRING
                  
      }

      componentLevelVpdTrackingIndex  OBJECT-TYPE
                  SYNTAX  INTEGER (1..1000)
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log index.  View as a table
                  and not as individual entries for consistent results."
                  ::= { systemComponentLevelVpdTrackingEntry 1 }

      componentLevelVpdTrackingFruNumber  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log FRU number.  View as a
                  table and not as individual entries for consistent results."
                  ::= { systemComponentLevelVpdTrackingEntry 2 }

      componentLevelVpdTrackingFruName  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log FRU name.  View as a
                  table and not as individual entries for consistent results."
                  ::= { systemComponentLevelVpdTrackingEntry 3 }
                  
      componentLevelVpdTrackingSerialNumber  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log serial number.  View as
                  a table and not as individual entries for consistent results."
                  ::= { systemComponentLevelVpdTrackingEntry 4 }
                  
      componentLevelVpdTrackingManufacturingId  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log manufacturing ID.  View
                  as a table and not as individual entries for consistent results."
                  ::= { systemComponentLevelVpdTrackingEntry 5 }
                  
      componentLevelVpdTrackingAction  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log action(added/removed).
                  View as a table and not as individual entries for consistent results."
                  ::= {systemComponentLevelVpdTrackingEntry 6 }
                  
      componentLevelVpdTrackingTimestamp  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log timestanp.
                  View as a table and not as individual entries for consistent results."
                  ::= { systemComponentLevelVpdTrackingEntry 7 }
 
Why imm.mib is not compiling?

Re: Problem with snmp v3

Posted: Wed Mar 05, 2014 11:38 am
by sreinhardt
The first and third mibs are for snmpv2 not v3, just like snmpv1 compared with v2 they are rarely if ever the same oid. Does IBM provide a specific v3 mib for this device or software? Also the second mib did not translate, as it does not have any actual traps to translate.

Re: Problem with snmp v3

Posted: Wed Mar 05, 2014 8:02 pm
by Ravil
sreinhardt wrote:The first and third mibs are for snmpv2 not v3, just like snmpv1 compared with v2 they are rarely if ever the same oid. Does IBM provide a specific v3 mib for this device or software? Also the second mib did not translate, as it does not have any actual traps to translate.
How do you understand, that this mib for snmpv2? Where is it written?
In the settings of the Web interface allows users to tune v1 and v3. So I think that IBM should issue MIB for v3.

See in imm.mib file, which not compiling (the first two lines):

Code: Select all

-- File         : imm.mib
-- Description  : Integrated Management Module mib for SNMP
-- By           : IBM
-- Version      : 1.36
-- Date         : October 29, 2012
--
--
-- Copyright (c) 2012 IBM  All Rights Reserved.
--
-- 
-- Contains MIB description for: 
--   This MIB is to be used to provide configuration support of IMM as well as monitoring support 
--   for the system.
-- ***************************************************************************
-- ***************************************************************************
-- ***************************************************************************
-- Revisions: 
--     5/12/2010  
--     Function equivalent to current IMM.  The top level OID and name was changed so it is a  different
--     MIB than current IMM MIB although many objects are in common.  This MIB was extended from the current 
--     IMM MIB to cover the full functionality of the IMM.  It does not yet cover new features that are unique to IMM2. 
--
-- ***************************************************************************
        IMM-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            OBJECT-TYPE                          FROM RFC-1212
            enterprises                          FROM RFC1155-SMI
            DisplayString                        FROM RFC1213-MIB
            IpAddress                            FROM RFC1155-SMI 
            -- PTE: added following 7/12/2011
            Gauge                                FROM RFC1155-SMI

            TEXTUAL-CONVENTION                   FROM SNMPv2-TC
            TRAP-TYPE                            FROM RFC-1215;

            InetAddressIPv6 ::= TEXTUAL-CONVENTION
                        DISPLAY-HINT "02x:02x:02x:02x:02x:02x:02x:02x"
                        -- PTE: changed to mandatory
                        -- STATUS       current
                        STATUS       mandatory
                        DESCRIPTION
                        "Represents an IPv6 network address. Since MIB browsers
                         may require different formats, the address is
                         expected to be the 16 byte address in network-byte order,
                         and shortened formats such as 0::0 are not accepted in SET
                         operations. Two common examples are:

                         The NetSNMP command line will accept SET requests like:
                           snmpset -v1 -cprivate <host> s 2001:00:00:00:FFFF:CCC4:BBB2:AAA6

                         Other MIB browsers may require the SET request value to be formatted as:
                           # 0x20 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xFF 0xCC 0xC4 0xBB 0xB2 0xAA 0xA6"
                        SYNTAX       OCTET STRING (SIZE (16))

            EntryStatus ::= INTEGER
                         { valid(1),
                           createRequest(2),
                           underCreation(3),
                           invalid(4)
                         }

              -- The status of a table entry.
              --
              -- Setting this object to the value invalid(4) has the
              -- effect of invalidating the corresponding entry.
              -- That is, it effectively disassociates the mapping
              -- identified with said entry.
              -- It is an implementation-specific matter as to whether
              -- the agent removes an invalidated entry from the table.
              -- Accordingly, management stations must be prepared to
              -- receive tabular information from agents that corresponds
              -- to entries currently not in use.  Proper
              -- interpretation of such entries requires examination
              -- of the relevant EntryStatus object.
              --
              -- An existing instance of this object cannot be set to
              -- createRequest(2).  This object may only be set to
              -- createRequest(2) when this instance is created.  When
              -- this object is created, the agent may wish to create
              -- supplemental object instances to complete a conceptual
              -- row in this table.  Immediately after completing the
              -- create operation, the agent must set this object to
              -- underCreation(3).
              --
              -- Entries shall exist in the underCreation(3) state until

              -- the management station is finished configuring the
              -- entry and sets this object to valid(1) or aborts,
              -- setting this object to invalid(4).  If the agent
              -- determines that an entry has been in the
              -- underCreation(3) state for an abnormally long time,
              -- it may decide that the management station has
              -- crashed.  If the agent makes this decision,
              -- it may set this object to invalid(4) to reclaim the
              -- entry.  A prudent agent will understand that the
              -- management station may need to wait for human input
              -- and will allow for that possibility in its
              -- determination of this abnormally long period.

        -- IBM enterprise group  
        ibm         OBJECT IDENTIFIER ::=   { enterprises 2 }

        -- IBM products group
        ibmAgents      OBJECT IDENTIFIER ::=   { ibm 3 }

        -- IBM e-Server Advanced System Management Support Processor(SP) agent group
        netfinitySupportProcessorAgent OBJECT IDENTIFIER ::= { ibmAgents 51 }

        -- IBM integrated Management Module
        ibmIntegratedManagementModuleMIB     OBJECT IDENTIFIER ::= { netfinitySupportProcessorAgent 3 }

-- ***************************************************************************
-- Start: Define groups of objects within the ibmRemoteSupSnmpMIB
-- ***************************************************************************
  --This group of objects provides the various environmental monitors for the
  -- local system and the IMM
  monitors OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 1 } 

  --This group of objects provides the error log objects for the IMM
  errorLogs OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 2 }
  
  --This group of objects provides configuration functions for the IMM
  configureSP     OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 3 }

  --This group of objects provides configuration functions for the system(server)
  generalSystemSettings  OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 4 }

  --This group of objects provides configuration functions for system power
  systemPower  OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 5 }
  
  --This group of objects provides functions to boot the IMM and system
  restartReset      OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 6 }
  
  --This group of objects provides functions to update the IMM firmware
  firmwareUpdate    OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 7 }
  
    --This group of objects provides functions Service Advisor
  serviceAdvisor     OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 8 }

-- ****************************************************************************
--  Monitors
-- ****************************************************************************   
    -- ************************************************************************
    -- Temperature
    -- ************************************************************************
    temperature OBJECT IDENTIFIER ::= { monitors 1 }  
     tempNumber       OBJECT-TYPE
         SYNTAX         Gauge
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The present number of rows in the temperature table."
         ::= { temperature 1 }

     tempTable          OBJECT-TYPE
         SYNTAX         SEQUENCE OF TempEntry
         ACCESS         not-accessible
         STATUS         mandatory
         DESCRIPTION   "This table contains temperature measurement information."
         ::= { temperature 2 }

     tempEntry          OBJECT-TYPE
         SYNTAX         TempEntry
         ACCESS         not-accessible
         STATUS         mandatory
         DESCRIPTION   "Each row contains parameters related to a temperature measurement channel."
         INDEX         { tempIndex }
         ::= { tempTable 1 }

     TempEntry ::=
         SEQUENCE {
        tempIndex      INTEGER,
        tempDescr      DisplayString,
        tempReading   INTEGER,  
           tempNominalReading   INTEGER,
        tempNonRecovLimitHigh   INTEGER,
        tempCritLimitHigh   INTEGER,
        tempNonCritLimitHigh INTEGER,
        tempNonRecovLimitLow   INTEGER,
        tempCritLimitLow   INTEGER,
        tempNonCritLimitLow INTEGER
         }

     tempIndex          OBJECT-TYPE
         SYNTAX         INTEGER (1..100)
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "This column is used to identify a particular 
            temperature measurement channel."
         ::= { tempEntry 1 }

     tempDescr          OBJECT-TYPE
         SYNTAX         DisplayString (SIZE(0..31))
         ACCESS         read-only

         STATUS         mandatory
         DESCRIPTION   "A description of the temperature measurement 
            channel."
         ::= { tempEntry 2 }

     tempReading       OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Degrees Celsius"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The measured temperature."
         ::= { tempEntry 3 }
      
     tempNominalReading   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Degrees Celsius"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The nominal temperature, if available."
         ::= { tempEntry 4 }

     tempNonRecovLimitHigh   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Degrees Celsius"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The non-recoverable limit for the measured temperature. If 
            the measured value rises above this limit a trap is sent."
         ::= { tempEntry 5}

     tempCritLimitHigh       OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Degrees Celsius"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The critical limit for the measured temperature. If 
            the measured value rises above this limit a trap is sent."
         ::= { tempEntry 6}

     tempNonCritLimitHigh   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Degrees Celsius"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The non-critical limit for the measured temperature. If 
            the measured value rises above this limit a trap is sent."
         ::= { tempEntry 7}

     tempNonRecovLimitLow   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Degrees Celsius"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The non-recoverable limit for the measured temperature. If 
            the measured value falls below this limit a trap is sent."
         ::= { tempEntry 8}

     tempCritLimitLow       OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Degrees Celsius"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The critical limit for the measured temperature. If 
            the measured value falls below  this limit a trap is sent."
         ::= { tempEntry 9}

     tempNonCritLimitLow   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Degrees Celsius"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The non-critical limit for the measured temperature. If 
            the measured value falls below  this limit a trap is sent."
         ::= { tempEntry 10}

    -- ************************************************************************
    -- Voltages
    -- ************************************************************************
    voltage OBJECT IDENTIFIER ::= { monitors 2 } 
    --------------------------------------------------------------------------------
     voltNumber       OBJECT-TYPE
         SYNTAX         Gauge
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The present number of rows in the voltage table."
         ::= { voltage 1 }

     voltTable          OBJECT-TYPE
         SYNTAX         SEQUENCE OF VoltEntry
         ACCESS         not-accessible
         STATUS         mandatory
         DESCRIPTION   "This table contains voltage measurement information."
         ::= { voltage 2 }

     voltEntry          OBJECT-TYPE
         SYNTAX         VoltEntry
         ACCESS         not-accessible
         STATUS         mandatory
         DESCRIPTION   "Each row contains parameters related to a 
            voltage measurement channel."
         INDEX         { voltIndex }
         ::= { voltTable 1 }

     VoltEntry ::=
         SEQUENCE {
        voltIndex      INTEGER,
        voltDescr      DisplayString,
        voltReading   INTEGER,
        voltNominalReading INTEGER,
        voltNonRecovLimitHigh   INTEGER,
        voltCritLimitHigh   INTEGER,
        voltNonCritLimitHigh     INTEGER,
        voltNonRecovLimitLow   INTEGER,
        voltCritLimitLow         INTEGER,
        voltNonCritLimitLow   INTEGER         
         }

     voltIndex          OBJECT-TYPE
         SYNTAX         INTEGER (1..1000)
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "This column is used to identify a particular 
            voltage   measurement channel."
         ::= { voltEntry 1 }

     voltDescr          OBJECT-TYPE
         SYNTAX         DisplayString (SIZE(0..31))
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "A description of the voltage measurement channel."
         ::= { voltEntry 2 }

     voltReading      OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Millivolts"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The measured voltage."
         ::= { voltEntry 3 }
      
     voltNominalReading   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Millivolts"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The nominal voltage, if available."
         ::= { voltEntry 4 }

     voltNonRecovLimitHigh   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Millivolts"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The high non-recoverable limit for the measured voltage. If the 
            measured value falls above this limit a trap is sent."
         ::= { voltEntry 5 }

     voltCritLimitHigh   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Millivolts"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The high critical limit for the measured voltage. If the 
            measured value rises above this limit a trap is sent."
         ::= { voltEntry 6 }
         
     voltNonCritLimitHigh   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Millivolts"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The high non-critical limit for the measured voltage. If the 
            measured value rises above this limit a trap is sent."
         ::= { voltEntry 7 } 
         
     voltNonRecovLimitLow   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Millivolts"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The low non-recoverable limit for the measured voltage. If the 
            measured value falls below this limit a trap is sent."
         ::= { voltEntry 8 }

     voltCritLimitLow   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Millivolts"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The low critical limit for the measured voltage. If the 
            measured value falls below this limit a trap is sent."
         ::= { voltEntry 9 }
         
     voltNonCritLimitLow   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "Millivolts"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The low non-critical limit for the measured voltage. If the 
            measured value falls below this limit a trap is sent."
         ::= { voltEntry 10 }
         
         
    -- ************************************************************************
    -- Fans
    -- ************************************************************************
    fans OBJECT IDENTIFIER ::= { monitors 3 } 
     fanNumber       OBJECT-TYPE
         SYNTAX         Gauge
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The present number of rows in the fan table."
         ::= { fans 1 }

     fanTable          OBJECT-TYPE
         SYNTAX         SEQUENCE OF FanEntry
         ACCESS         not-accessible
         STATUS         mandatory
         DESCRIPTION   "This table contains fan information."
         ::= { fans 2 }

     fanEntry          OBJECT-TYPE
         SYNTAX         FanEntry
         ACCESS         not-accessible
         STATUS         mandatory
         DESCRIPTION   "Each row contains parameters related to a fan." 
         INDEX         { fanIndex }
         ::= { fanTable 1 }

     FanEntry ::=
         SEQUENCE {
        fanIndex      INTEGER (1..100),
        fanDescr      DisplayString,
        fanSpeed       OCTET STRING,
        fanNonRecovLimitHigh   INTEGER,
        fanCritLimitHigh   INTEGER,
        fanNonCritLimitHigh     INTEGER,
        fanNonRecovLimitLow   INTEGER,
        fanCritLimitLow         INTEGER,
        fanNonCritLimitLow   INTEGER
         }

     fanIndex          OBJECT-TYPE
         SYNTAX         INTEGER (1..100)
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "This column is used to identify a particular fan."
         ::= { fanEntry 1 }
         
     fanDescr          OBJECT-TYPE
         SYNTAX         DisplayString (SIZE(0..31))
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "A description of the fan measurement channel."
         ::= { fanEntry 2 }


     fanSpeed    OBJECT-TYPE
                  SYNTAX  OCTET STRING 
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "Fan  speed expressed in percent(%) of maximum RPM. 
                  An octet string expressed as 'ddd% of maximum' where:
                  d is a decimal digit or blank space for a leading zero.
                  If the fan is determined not to be running or 
                  the fan speed cannot be determined, the string will
                  indicate 'Offline'."   
                  ::= { fanEntry 3 }

     fanNonRecovLimitHigh   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "RPM"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The high non-recoverable limit for the measured fan. If the 
            measured value falls above this limit a trap is sent."
         ::= { fanEntry 4 }

     fanCritLimitHigh   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "RPM"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The high critical limit for the measured fan. If the 
            measured value rises above this limit a trap is sent."
         ::= { fanEntry 5 }

     fanNonCritLimitHigh   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "RPM"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The high non-critical limit for the measured fan. If the 
            measured value rises above this limit a trap is sent."
         ::= { fanEntry 6 } 

     fanNonRecovLimitLow   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "RPM"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The low non-recoverable limit for the measured fan. If the 
            measured value falls below this limit a trap is sent."
         ::= { fanEntry 7 }

     fanCritLimitLow   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "RPM"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The low critical limit for the measured fan. If the 
            measured value falls below this limit a trap is sent."
         ::= { fanEntry 8 }

     fanNonCritLimitLow   OBJECT-TYPE
         SYNTAX         INTEGER
         UNITS         "RPM"
         ACCESS         read-only
         STATUS         mandatory
         DESCRIPTION   "The low non-critical limit for the measured fan. If the 
            measured value falls below this limit a trap is sent."
         ::= { fanEntry 9 }

    -- ************************************************************************
    -- System Health 
    -- ************************************************************************
    systemHealth OBJECT IDENTIFIER ::= { monitors 4 }
    
     -- ***********************************************************************
     -- System Health Status
     -- ***********************************************************************
     systemHealthStat  OBJECT-TYPE
                  SYNTAX  INTEGER {
                                    nonRecoverable(0),
                                    critical(2),
                                    nonCritical(4),
                                    normal(255)
                                  }
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "Indicates status of system health for the 
                  system in which the IMM resides. 
                  Value of 'nonRecoverable' indicates a severe error has occurred 
                  and the system may not be functioning. A value of 
                  'critical' indicates that a error has occurred but 
                  the system is currently functioning properly. A value of 
                'nonCritical' indicates that a condition has occurred 
                that may change the state of the system in the future but currently 
                the system is working properly. A value of 
                  'normal' indicates that the system is operating normally."
                  ::= { systemHealth 1 }
                  
     -- ***********************************************************************
     -- System Health Summary
     -- ***********************************************************************
     systemHealthSummaryTable OBJECT-TYPE
                   SYNTAX  SEQUENCE OF SystemHealthSummaryEntry
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                   "Table of System Health summary. Contains more detailed 
                   information about the reasons for the overall system 
                   health status."
                   ::= { systemHealth 2 }
   
     systemHealthSummaryEntry OBJECT-TYPE
                   SYNTAX SystemHealthSummaryEntry 
                   ACCESS  not-accessible
                   STATUS  mandatory
                   DESCRIPTION
                   "System Health Summary entry"
                   INDEX { systemHealthSummaryIndex }
                   ::= { systemHealthSummaryTable 1 }
                   
   
     SystemHealthSummaryEntry ::= SEQUENCE { 
                 systemHealthSummaryIndex INTEGER,
                 systemHealthSummarySeverity OCTET STRING,
                 systemHealthSummaryDescription OCTET STRING
     }
   
   
     systemHealthSummaryIndex  OBJECT-TYPE
                 SYNTAX  INTEGER (1..1000)
                 ACCESS  read-only
                 STATUS  mandatory
                 DESCRIPTION
                 "System health summary index."
                 ::= { systemHealthSummaryEntry 1 }
   
     systemHealthSummarySeverity  OBJECT-TYPE
                 SYNTAX  OCTET STRING
                 ACCESS  read-only
                 STATUS  mandatory
                 DESCRIPTION
                 "System health summary severity."
                 ::= { systemHealthSummaryEntry 2 }
   
     systemHealthSummaryDescription  OBJECT-TYPE
                 SYNTAX  OCTET STRING
                 ACCESS  read-only
                 STATUS  mandatory
                 DESCRIPTION
                 "System health summary description."
                 ::= { systemHealthSummaryEntry 3 }

     -- ***********************************************************************
     -- Vital Product Data(VPD) information 
     -- ***********************************************************************
     vpdInformation  OBJECT IDENTIFIER ::= { monitors 5 } 
     
     -- ***********************************************************************
      -- IMM VPD
      -- ***********************************************************************

      immVpdTable OBJECT-TYPE
                    SYNTAX  SEQUENCE OF IMMVpdEntry
                    ACCESS  not-accessible
                    STATUS  mandatory
                    DESCRIPTION
                    "Table of IMM VPD."
                    ::= { vpdInformation 1 }

      immVpdEntry OBJECT-TYPE
                    SYNTAX IMMVpdEntry 
                    ACCESS  not-accessible
                    STATUS  mandatory
                    DESCRIPTION
                    "iMBC VPD entry."
                    INDEX { immVpdIndex }
                    ::= { immVpdTable 1 }


      IMMVpdEntry ::= SEQUENCE {
                  immVpdIndex INTEGER,
        immVpdType OCTET STRING,
                  immVpdVersionString OCTET STRING,
        immVpdReleaseDate OCTET STRING
      }


      immVpdIndex  OBJECT-TYPE
                  SYNTAX  INTEGER (1..1000)
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "IMM VPD index."
                  ::= { immVpdEntry 1 }

      immVpdType  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "IMM VPD Type. Indicates either Bios or Diag or spFimware VPD"
                  ::= { immVpdEntry 2 }

      immVpdVersionString  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "IMM VPD Version Number of the software(Bios/Diag/spFirmware).
                   For IMM2 the string contains both the Build ID and the Version
                   Number, for example, like '1AOO3A v1.0.1'. "
                  ::= { immVpdEntry 3 }

      immVpdReleaseDate  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "IMM VPD Release Date of when the software(Bios/Diag/spFirmware) was released."
                  ::= { immVpdEntry 4 }


      -- ***********************************************************************
      -- Machine Level VPD 
      -- ***********************************************************************
      machineVpd OBJECT IDENTIFIER ::= { vpdInformation 2 }

       
       machineLevelVpd OBJECT IDENTIFIER ::= { machineVpd 1 }
        
        machineLevelVpdMachineType OBJECT-TYPE
                      SYNTAX  OCTET STRING 
                      ACCESS  read-only
                      STATUS  mandatory
                      DESCRIPTION
                      "Machine type VPD information." 
                      ::= { machineLevelVpd 1 }
                      
        machineLevelVpdMachineModel OBJECT-TYPE
                      SYNTAX  OCTET STRING 
                      ACCESS  read-only
                      STATUS  mandatory
                      DESCRIPTION
                      "Machine model VPD information." 
                      ::= { machineLevelVpd 2 }
                      
        machineLevelSerialNumber OBJECT-TYPE
                      SYNTAX  OCTET STRING 
                      ACCESS  read-only
                      STATUS  mandatory
                      DESCRIPTION
                      "Machine serial number VPD information." 
                      ::= { machineLevelVpd 3 }
                      
        machineLevelUUID OBJECT-TYPE
                      SYNTAX  OCTET STRING 
                      ACCESS  read-only
                      STATUS  mandatory
                      DESCRIPTION
                      "Machine UUID(Universal Unique ID information)." 
                      ::= { machineLevelVpd 4 }

        machineLevelProductName OBJECT-TYPE
                      SYNTAX  OCTET STRING 
                      ACCESS  read-only
                      STATUS  mandatory
                      DESCRIPTION
                      "Machine Product Name (e.g. System x3650 M2)." 
                      ::= { machineLevelVpd 5 }

      -- ***********************************************************************
      -- System Component Level VPD 
      -- ***********************************************************************
      systemComponentLevelVpdTable OBJECT-TYPE
                    SYNTAX  SEQUENCE OF SystemComponentLevelVpdEntry
                    ACCESS  not-accessible
                    STATUS  mandatory
                    DESCRIPTION
                    "Table of the system component hardware VPD information.  View as a 
                    table and not as individual entries for consistent results."
                    ::= { vpdInformation 17 }

      systemComponentLevelVpdEntry OBJECT-TYPE
                    SYNTAX SystemComponentLevelVpdEntry 
                    ACCESS  not-accessible
                    STATUS  mandatory
                    DESCRIPTION
                    "System component hardware VPD entry.  View as a table and not as 
                    individual entries for consistent results."
                    INDEX { componentLevelVpdIndex }
                    ::= { systemComponentLevelVpdTable 1 }

      SystemComponentLevelVpdEntry ::= SEQUENCE { 
                  componentLevelVpdIndex INTEGER,
                  componentLevelVpdFruNumber OCTET STRING,        
                  componentLevelVpdFruName OCTET STRING,
                  componentLevelVpdSerialNumber OCTET STRING,
                  componentLevelVpdManufacturingId OCTET STRING
      }

      componentLevelVpdIndex  OBJECT-TYPE
                  SYNTAX  INTEGER (1..1000)
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD index.  View as a table and not as individual
                  entries for consistent results."
                  ::= { systemComponentLevelVpdEntry 1 }

      componentLevelVpdFruNumber  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD FRU number.  View as a table and not as 
                  individual entries for consistent results."
                  ::= { systemComponentLevelVpdEntry 2 }

      componentLevelVpdFruName  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD FRU name.  View as a table and not as 
                  individual entries for consistent results."
                  ::= { systemComponentLevelVpdEntry 3 }
                  
      componentLevelVpdSerialNumber  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD serial number.  View as a table and not as
                  individual entries for consistent results."
                  ::= { systemComponentLevelVpdEntry 4 }
                  
      componentLevelVpdManufacturingId  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD manufacturing ID.  View as a table and not as
                  individual entries for consistent results."
                  ::= { systemComponentLevelVpdEntry 5 }
                  
      -- ***********************************************************************
      -- System Component Level VPD Tracking log  
      -- ***********************************************************************
      systemComponentLevelVpdTrackingTable OBJECT-TYPE
                    SYNTAX  SEQUENCE OF SystemComponentLevelVpdTrackingEntry
                    ACCESS  not-accessible
                    STATUS  mandatory
                    DESCRIPTION
                    "Table of system component hardware VPD tracking activity log.  View as
                    a table and not as individual entries for consistent results."
                    ::= { vpdInformation 18 }

      systemComponentLevelVpdTrackingEntry OBJECT-TYPE
                    SYNTAX SystemComponentLevelVpdTrackingEntry 
                    ACCESS  not-accessible
                    STATUS  mandatory
                    DESCRIPTION
                    "System component hardware VPD tracking activity log entry.  View as a
                    table and not as individual entries for consistent results."
                    INDEX { componentLevelVpdTrackingIndex }
                    ::= { systemComponentLevelVpdTrackingTable 1 }

      SystemComponentLevelVpdTrackingEntry ::= SEQUENCE { 
                  componentLevelVpdTrackingIndex INTEGER,
                  componentLevelVpdTrackingFruNumber OCTET STRING,
                  componentLevelVpdTrackingFruName OCTET STRING,
                  componentLevelVpdTrackingSerialNumber OCTET STRING,
                  componentLevelVpdTrackingManufacturingId OCTET STRING,
                  componentLevelVpdTrackingAction OCTET STRING,
                  componentLevelVpdTrackingTimestamp OCTET STRING
                  
      }

      componentLevelVpdTrackingIndex  OBJECT-TYPE
                  SYNTAX  INTEGER (1..1000)
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log index.  View as a table
                  and not as individual entries for consistent results."
                  ::= { systemComponentLevelVpdTrackingEntry 1 }

      componentLevelVpdTrackingFruNumber  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log FRU number.  View as a
                  table and not as individual entries for consistent results."
                  ::= { systemComponentLevelVpdTrackingEntry 2 }

      componentLevelVpdTrackingFruName  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log FRU name.  View as a
                  table and not as individual entries for consistent results."
                  ::= { systemComponentLevelVpdTrackingEntry 3 }
                  
      componentLevelVpdTrackingSerialNumber  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log serial number.  View as
                  a table and not as individual entries for consistent results."
                  ::= { systemComponentLevelVpdTrackingEntry 4 }
                  
      componentLevelVpdTrackingManufacturingId  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log manufacturing ID.  View
                  as a table and not as individual entries for consistent results."
                  ::= { systemComponentLevelVpdTrackingEntry 5 }
                  
      componentLevelVpdTrackingAction  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log action(added/removed).
                  View as a table and not as individual entries for consistent results."
                  ::= {systemComponentLevelVpdTrackingEntry 6 }
                  
      componentLevelVpdTrackingTimestamp  OBJECT-TYPE
                  SYNTAX  OCTET STRING
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                  "System component level VPD tracking activity log timestanp.
                  View as a table and not as individual entries for consistent results."
                  ::= { systemComponentLevelVpdTrackingEntry 7 }
There is written "Integrated Management Module mib for SNMP". So it is MIB for equipment. So why it did not compile, I don't understand. Size of this file - 300Kb. It is very big, therefore I can put here only part of the file.
I can compile only the second MIB file (immalert.mib). Size of this file - 29kb and it is similar in structure to a large file.
I did the following. Look:

Code: Select all

[root@mon mibs]# snmpwalk -v 1 -c public 192.168.0.2 .1.3.6.1.4.1.2.3.51.3.1.4.1.0 -m /shares/Baiburin/imm.mib
IMM-MIB::systemHealthStat.0 = INTEGER: normal(255)
[root@mon mibs]# snmpwalk -v 3 -u public -a SHA -A password -x AES -X password -l authPriv 192.168.0.2 .1.3.6.1.4.1.2.3.51.3.1.4.1.0 -m /shares/Baiburin/imm.mib
IMM-MIB::systemHealthStat.0 = INTEGER: normal(255)
So we can say that imm.mib suitable for snmp v1 and snmp v3?

Also I compared the OIDs, which generates a specific event equipment (authentication on the web interface). Look:
snmpv1: .1.3.6.1.4.1.2.6.158.5.0.30
snmpv3: .1.3.6.1.4.1.2.6.158.5.30
In immalert.conf registered .1.3.6.1.4.1.2.6.158.5.0.30. Therefore snmpv3 not registered in nagios

Re: Problem with snmp v3

Posted: Thu Mar 06, 2014 12:26 pm
by sreinhardt
So the reason I tend to believe that mib is geared towards snmpv2, is two reasons. 1) the import of snmpv2-TC and 2) that traps are referenced as traptype not inform or notify as they are referenced in v3 standard.

As for your last comment, are you getting the snmpv1 traps for snmpv1: .1.3.6.1.4.1.2.6.158.5.0.30 when someone logs into the web interface? If that is in the mib but snmpv3: .1.3.6.1.4.1.2.6.158.5.30 is not, I would suggest attempting to copy that section of the snmptt.conf file and remove the additional 0, restart the snmptrapd and snmptt services, and see if they come in properly.

Alternatively, we could enable debugging and see what happens with snmpv3 traps when they are sent. If you wanted to do that, modify a few lines in snmptt.ini to look like:

Code: Select all

DEBUGGING = 2

# Debugging file - SNMPTT
# Location of debugging output file.  Leave blank to default to STDOUT (good for
# standalone mode, or daemon mode without forking)
#DEBUGGING_FILE =
 DEBUGGING_FILE = /var/log/snmptt/snmptt.debug

# Debugging file - SNMPTTHANDLER
# Location of debugging output file.  Leave blank to default to STDOUT
#DEBUGGING_FILE_HANDLER =
 DEBUGGING_FILE_HANDLER = /var/log/snmptt/snmptthandler.debug
then restart the services again.

Re: Problem with snmp v3

Posted: Fri Mar 07, 2014 7:26 am
by Ravil
sreinhardt wrote:So the reason I tend to believe that mib is geared towards snmpv2, is two reasons. 1) the import of snmpv2-TC and 2) that traps are referenced as traptype not inform or notify as they are referenced in v3 standard.

As for your last comment, are you getting the snmpv1 traps for snmpv1: .1.3.6.1.4.1.2.6.158.5.0.30 when someone logs into the web interface? If that is in the mib but snmpv3: .1.3.6.1.4.1.2.6.158.5.30 is not, I would suggest attempting to copy that section of the snmptt.conf file and remove the additional 0, restart the snmptrapd and snmptt services, and see if they come in properly.

Alternatively, we could enable debugging and see what happens with snmpv3 traps when they are sent. If you wanted to do that, modify a few lines in snmptt.ini to look like:

Code: Select all

DEBUGGING = 2

# Debugging file - SNMPTT
# Location of debugging output file.  Leave blank to default to STDOUT (good for
# standalone mode, or daemon mode without forking)
#DEBUGGING_FILE =
 DEBUGGING_FILE = /var/log/snmptt/snmptt.debug

# Debugging file - SNMPTTHANDLER
# Location of debugging output file.  Leave blank to default to STDOUT
#DEBUGGING_FILE_HANDLER =
 DEBUGGING_FILE_HANDLER = /var/log/snmptt/snmptthandler.debug
then restart the services again.
It's work! I removed this 0 and snmptt was able to translate trap. But now I need back to my first question in this topic. I was able to receive trap v3, but look my snmptrapd.conf file:

Code: Select all

[root@ravil nagios]# cat /etc/snmp/snmptrapd.conf
# Example configuration file for snmptrapd
#
# No traps are handled by default, you must edit this file!
#
# authCommunity   log,execute,net public
# traphandle SNMPv2-MIB::coldStart    /usr/bin/bin/my_great_script cold

traphandle default /usr/sbin/snmptthandler
logoption f /var/log/snmptrap.log

createUser -e 80001F88808BADCA3F1F6CF252 -u public -a SHA -A 123456789  -x AES -X 123456789 #localhost
createUser -e 80001F88808BAABC351A6ED281 -u public -a SHA -A 123456789  -x AES -X 123456789 #IBM x3650

authUser log,execute,net public authPriv
authCommunity log,execute,net public

donotlogtraps no
disableAuthorization no

Now to receive the trap, I need to record the engine id of each equipment, but ID changes every time, when I reboot equipment. Therefore, every time after reboot, I need to learn a new engine ID and record it into the snmptrapd.conf. Provided that I need to monitor more than 30 devices, it becomes impossible. How to take trapv3 without engine ID?

Re: Problem with snmp v3

Posted: Fri Mar 07, 2014 12:03 pm
by sreinhardt
Wow that does make it really hard, I can't really think of a good way, unless the sending device can alert the nagios system, of how to do this. Is it at all possible to get the sending device to stay with a single ID?

Re: Problem with snmp v3

Posted: Mon Mar 10, 2014 10:01 am
by Ravil
sreinhardt wrote:Wow that does make it really hard, I can't really think of a good way, unless the sending device can alert the nagios system, of how to do this. Is it at all possible to get the sending device to stay with a single ID?
I read a theory protocol snmp v3. It says that in snmp v3 has a trap, and inform. To get a trap, needs engine ID of each device, and if getting inform, then only the engine ID of the server and do not need to know engine ID of each device. But if I do not specify ID in snmptrapd.conf, to get the message (trap or inform) fails. I dont know what to do next.

Re: Problem with snmp v3

Posted: Mon Mar 10, 2014 10:23 am
by sreinhardt
I honestly think the best route to start with, is to discuss with IBM how to disable the engine ID from changing upon reboot. Also could you post a link to the information you were just discussing?

Re: Problem with snmp v3

Posted: Mon Mar 10, 2014 11:51 am
by Ravil
sreinhardt wrote:I honestly think the best route to start with, is to discuss with IBM how to disable the engine ID from changing upon reboot. Also could you post a link to the information you were just discussing?
http://www.net-snmp.org/tutorial/tutori ... ap-v3.html
Well, I'll see the hardware settings

Re: Problem with snmp v3

Posted: Mon Mar 10, 2014 2:50 pm
by sreinhardt
I see what you mean, and how this makes it difficult. Unfortunately I still think fixing the hardware or if they have a solution to send the new ids to nagios each time it changes, is the best route. Let us know how it goes.