SmartMIB Sample Script - Fault Management Solution Presentation


 

MODULE mibTables ();

DESCRIPTION "Interface INVENTORY information";

BEGIN              

            ALL-DEV BY DEV

            {

                        SET-INDEX ifTable ( ifDescr [ ifIndex, INT ] );

                        WITH-INDEX ifTable
                        {
                                RMV(ifDescr; ifIndex);
                        }

            };

END 


 

##################################################################

# This is the static Fault Alarm Thrsholds for the critical resources on the managed elements

#

##################################################################

 

MODULE FaultAlarms ();

DESCRIPTION "Fault Management Process";

BEGIN

 

            WITH-INDEX ciscoEnvMonFanStatusTable

                        {

                                    POLL ( ciscoEnvMonFanState);

 

                                    DEFINE FanState INT;

 

                                    IF (FanState != 1)

                                    THEN

                                                MSG(“Device @1 reporting an abnormal Fan state”, DEV);

                                    ENDIF;

                        };

 

            WITH-INDEX ciscoEnvMonSupplyStatusTable

                        {

                                    POLL (ciscoEnvMonSupplyState);

 

                                    DEFINE SupplyState INT;

 

                                    IF (SupplyState != 1)

                                    THEN

                                                MSG(“Device @1 reporting an abnormal Supply state”, DEV);

                                    ENDIF;

                        };

 

            WITH-INDEX ciscoEnvMonTemperatureStatusTable

                        {

                                    POLL (ciscoEnvMonTemperatureState);

 

                                    DEFINE TemperatureState INT;

 

                                    IF (TemperatureState != 1)

                                    THEN

                                                MSG(“Device @1 reporting an abnormal Temperature”, DEV);

                                    ENDIF;

                        };

 

            WITH-INDEX ciscoEnvMonVoltageStatusTable

                        {

                                    POLL (ciscoEnvMonVoltageState);

 

                                    DEFINE VoltageState INT;

 

                                    IF (VoltageState != 1)

                                    THEN 

                                                MSG(“Device @1 reporting an abnormal Voltage”, DEV);

                                    ENDIF;

                        };

 

            WITH-INDEX ciscoMemoryPoolTable

                        {

                                    POLL (ciscoMemoryPoolFree);

                        };

 

END 


 

####################################################################

# This is the static Fault Alarm Thresholds for the critical Buffer memoryon managed elements

#

####################################################################

 

MODULE BufferData ();

DESCRIPTION "Fault Management Process";

BEGIN

 

            ALL-DEV BY DEV

            {

                        DEFINE bufferFailCountT1  MAP INT;

                        DEFINE bufferNoMemCountT1  MAP INT;

 

                        DEFINE bufferFail  DB INT;

                        DEFINE bufferNoMem DB INT;

 

                        bufferFailCountT1  = bufferFail;

                        bufferNoMemCountT1  = bufferNoMem;

 

                        RMV (bufferFail; bufferNoMem);

 

                        POLL (bufferFail; bufferNoMem);

 

                        DEFINE bufferFailCountT2  MAP INT;

                        DEFINE bufferNoMemCountT2  MAP INT;

                        DEFINE bufferFailCount  MAP INT;

                        DEFINE bufferNoMemCount  MAP INT;

 

                        bufferFailCountT2  = bufferFail;

                        bufferNoMemCountT2  = bufferNoMem;

 

                        bufferFailCount  = bufferFailCountT2 – bufferFailCountT1;

                        bufferNoMemCount  = bufferNoMemCountT2 – bufferNoMemCountT1;

 

                        IF (bufferFailCount >= 5)

                        THEN

                                    MSG(“Device @1 is reporting a Buffer allocation failure”, DEV);

                        ENDIF;

 

                        IF (bufferNoMemCount >= 1)

                        THEN

                                    MSG(“Device @1 reporting a Buffer creation failure”, DEV);

                        ENDIF;

            };

END


 

#########################################################

# This is the Module that contains the collection of indexes to be learned by the

# Parent management process

#

#########################################################

 

MODULE FaultMgmtIndexes ();

DESCRIPTION “”; 

BEGIN

 

SET-INDEX ciscoEnvMonFanStatusTable

        (ciscoEnvMonFanStatusDescr  [ciscoEnvMonFanStatusIndex, INT]);

 

SET-INDEX ciscoEnvMonSupplyStatusTable

        (ciscoEnvMonSupplyStatusDescr [ciscoEnvMonSupplyStatusIndex, INT]);

 

SET-INDEX ciscoEnvMonTemperatureStatusTable

        (ciscoEnvMonTemperatureStatusDescr [ciscoEnvMonTemperatureStatusIndex, INT]);

 

SET-INDEX ciscoEnvMonVoltageStatusTable

        (ciscoEnvMonVoltageStatusDescr [ciscoEnvMonVoltageStatusIndex, INT]);

 

SET-INDEX ciscoMemoryPoolTable

        (ciscoMemoryPoolName [ciscoMemoryPoolType, INT]);

 

            WITH-INDEX ifTable

            {

                                    POLL ( ifType; ifAdminStatus; ifOperStatus );

 

                                    DEFINE ifAdminStatus DB DISPL;        

                                    DEFINE ifType  DB DISPL;        

                                    DEFINE ifOperStatus  DB DISPL;

 

                                    IF (ifAdminStatus    == "up" AND

                                         ifOperStatus      == "up" AND

                                         ifType               == "^ethernetCsmacd" )

                                    THEN

                                                STORE-INDEX "EthernetList";

                                    ELSE

                                                STORE-INDEX "OtherifList";

                        ENDIF;

 

                                    RMV ( ifType; ifAdminStatus; ifOperStatus );       

            };

END

 


 

############################################################

# This is the First-Run values transient Module of the Fault management process

#

############################################################

 

MODULE FaultMgmt1 ();

DESCRIPTION “”;

BEGIN

            ALL-DEV BY DEV

            {

                        POLL (bufferFail; bufferNoMem);

 

                        ##############################################

                        # dot3StatsTable & lifTable shares the same index with ifTable

                        # This assumes that ifTable indexes are already learned in

                        # a separate management process

                        #########################################

 

                        WITH-INDEX EthernetList

                        {

                                POLL (       dot3StatsCarrierSenseErrors;

                                                dot3StatsDeferredTransmissions;

                                                dot3StatsExcessiveCollisions;

                                                dot3StatsInternalMacReceiveErrors;

                                                dot3StatsInternalMacTransmitErrors;

                                                ifCounterDiscontinuityTime;

                                                locIfCarTrans;

                                                locIfCollisions;

                                                locIfInCRC;

                                                locIfResets;  

                                                ifInUcastPkts;

                                                ifInNUcastPkts;

                                                ifOutUcastPkts;

                                                ifOutNUcastPkts   );

                        };

           

                        WITH-INDEX OtherifList

                        {

                                POLL (   locIfCarTrans;

                                            locIfCollisions;

                                            locIfInCRC;

                                            locIfResets;

                                            ifCounterDiscontinuityTime);

                        };

END 


 

############################################################

# This is the Second-Run values transient Module of the Fault management process

#

############################################################

 

MODULE FaultMgmt2 ();

DESCRIPTION “”;

BEGIN

 

            ALL-DEV BY DEV

            {

                        ####################################################

                        ## dot3StatsTable & lifTable shares the same index with ifTable

                        ##############################################

 

                        WITH-INDEX EthernetList

                        {

                                    ########################################################

                                    ###########Defining the First-Run Variables:

 

                                    DEFINE CarrierSenseErrorsT1  MAP INT;

                                    DEFINE DeferredTransmissionsT1  MAP INT;

                                    DEFINE ExcessiveCollisionsT1  MAP INT;

                                    DEFINE MacReceiveErrorsT1  MAP INT;

                                    DEFINE MacTransmitErrorsT1  MAP INT;

                                    DEFINE CounterDiscontinuityT1 MAP INT;

                                    DEFINE locIfCarTransT1  MAP INT;

                                    DEFINE locIfCollisionsT1  MAP INT;

                                    DEFINE locIfInCRCT1  MAP INT;

                                    DEFINE locIfResetsT1  MAP INT;

                                    DEFINE ifInUcastPktsT1  MAP INT;

                                    DEFINE ifInNUcastPktsT1  MAP INT;

                                    DEFINE ifOutUcastPktsT1  MAP INT;

                                    DEFINE ifOutNUcastPktsT1  MAP INT;

 

                                    DEFINE dot3StatsCarrierSenseErrors DB INT;

                                    DEFINE dot3StatsDeferredTransmissions DB INT;

                                    DEFINE dot3StatsExcessiveCollisions DB INT;

                                    DEFINE dot3StatsInternalMacReceiveErrors DB INT;

                                    DEFINE dot3StatsInternalMacTransmitErrors DB INT;

                                    DEFINE ifCounterDiscontinuityTime DB INT;      

                                    DEFINE locIfCarTrans DB INT;

                                    DEFINE locIfCollisions DB INT;

                                    DEFINE locIfInCRC DB INT;

                                    DEFINE locIfResets DB INT;

                                    DEFINE ifInUcastPkts DB INT;

                                    DEFINE ifInNUcastPkts DB INT;

                                    DEFINE ifOutUcastPkts DB INT;

                                    DEFINE ifOutNUcastPkts DB INT;

 

                                    ########################################################

                                    ###########Populating the First-Run values:

 

                                                CarrierSenseErrorsT1 = dot3StatsCarrierSenseErrors;

                                                DeferredTransmissionsT1  = dot3StatsDeferredTransmissions;

                                                ExcessiveCollisionsT1 = dot3StatsExcessiveCollisions;

                                                MacReceiveErrorsT1 = dot3StatsInternalMacReceiveErrors;

                                                MacTransmitErrorsT1 = dot3StatsInternalMacTransmitErrors;

                                                CounterDiscontinuityT1   = ifCounterDiscontinuityTime;

                                                locIfCarTransT1 = locIfCarTrans;

                                                locIfCollisionsT1  = locIfCollisions;

                                                locIfInCRCT1 = locIfInCRC;

                                                locIfResetsT1 = locIfResets;

                                                ifInUcastPktsT1 = ifInUcastPkts;

                                                ifInNUcastPktsT1 = ifInNUcastPkts;

                                                ifOutUcastPktsT1 = ifOutUcastPkts;

                                                ifOutNUcastPktsT1 = ifOutNUcastPkts;

 

                                    #################################################################

                                    #Cleaning up the database from the excess transient First-Run values:

 

                                                RMV (    dot3StatsCarrierSenseErrors;

                                                            dot3StatsDeferredTransmissions;

                                                            dot3StatsExcessiveCollisions;

                                                            dot3StatsInternalMacReceiveErrors;

                                                            dot3StatsInternalMacTransmitErrors;

                                                            ifCounterDiscontinuityTime;

                                                            locIfCarTrans;

                                                            locIfCollisions;

                                                            locIfInCRC;

                                                            locIfResets; 

                                                            ifInUcastPkts;

                                                            ifInNUcastPkts;

                                                            ifOutUcastPkts;

                                                            ifOutNUcastPkts);

 

                                    ########################################################

                                    ###########Populating the Database with the Second-Run values:

 

                                                POLL (   dot3StatsCarrierSenseErrors;

                                                            dot3StatsDeferredTransmissions;

                                                            dot3StatsExcessiveCollisions;

                                                            dot3StatsInternalMacReceiveErrors;

                                                            dot3StatsInternalMacTransmitErrors;

                                                            ifCounterDiscontinuityTime;

                                                            locIfCarTrans;

                                                            locIfCollisions;

                                                            locIfInCRC;

                                                            locIfResets;

                                                            ifInUcastPkts;

                                                            ifInNUcastPkts;

                                                            ifOutUcastPkts;

                                                            ifOutNUcastPkts);

 

                                    ########################################################

                                    ###########Defining the Second-Run Variables:

 

                                    DEFINE CarrierSenseErrorsT2  MAP INT;

                                    DEFINE DeferredTransmissionsT2   MAP INT;

                                    DEFINE ExcessiveCollisionsT2  MAP INT;

                                    DEFINE MacReceiveErrorsT2  MAP INT;

                                    DEFINE MacTransmitErrorsT2  MAP INT;

                                    DEFINE CounterDiscontinuityT2  MAP INT;

                                    DEFINE locIfCarTransT2  MAP INT;

                                    DEFINE locIfCollisionsT2  MAP INT;

                                    DEFINE locIfInCRCT2  MAP INT;

                                    DEFINE locIfResetsT2  MAP INT;

                                    DEFINE ifInUcastPktsT2  MAP INT;

                                    DEFINE ifInNUcastPktsT2  MAP INT;

                                    DEFINE ifOutUcastPktsT2 MAP INT;

                                    DEFINE ifOutNUcastPktsT2  MAP INT;

 

                                    ########################################################

                                    ###########Populating the Variables with the Second-Run values:

 

                                                CarrierSenseErrorsT2     = dot3StatsCarrierSenseErrors;

                                                DeferredTransmissionsT2  = dot3StatsDeferredTransmissions;

                                                ExcessiveCollisionsT2 = dot3StatsExcessiveCollisions;

                                                MacReceiveErrorsT2 = dot3StatsInternalMacReceiveErrors;

                                                MacTransmitErrorsT2 = dot3StatsInternalMacTransmitErrors;

                                                CounterDiscontinuityT2 = ifCounterDiscontinuityTime;

                                                LocIfCarTransT2 = locIfCarTrans;

                                                locIfCollisionsT2  = locIfCollisions;

                                                locIfInCRCT2 = locIfInCRC;

                                                locIfResetsT2 = locIfResets;

                                                ifInUcastPktsT2 = ifInUcastPkts;

                                                ifInNUcastPktsT2 = ifInNUcastPkts;

                                                ifOutUcastPktsT2 = ifOutUcastPkts;

                                                ifOutNUcastPktsT2 = ifOutNUcastPkts;

                       

                                    ########################################################

                                    ###########Testing for interface counter resets/discontinuities:

 

                                    IF (CounterDiscontinuityT2 == CounterDiscontinuityT1)

                                    THEN

 

                                                ########################################################

                                                #######Defining and calculating Variables for Populating the relevant database values:

 

                                                            CounterData (    DeltaCarrierSenseErrors,

                                                                                    CarrierSenseErrorsT1,

                                                                                    CarrierSenseErrorsT2);

 

                                                            CounterData (    DeltaDeferredTransmissions,

                                                                                    DeferredTransmissionsT1,

                                                                                    DeferredTransmissionsT2);

 

                                                            CounterData (    DeltaExcessiveCollisions,

                                                                                    ExcessiveCollisionsT1,

                                                                                    ExcessiveCollisionsT2);

 

                                                            CounterData (    DeltaMacReceiveErrors,

                                                                                    MacReceiveErrorsT1,

                                                                                    MacReceiveErrorsT2);

 

                                                            CounterData (    DeltaMacTransmitErrors,

                                                                                    MacTransmitErrorsT1,

                                                                                    MacTransmitErrorsT2);

 

                                                            CounterData (    DeltalocIfCarTrans,

                                                                                    locIfCarTransT1,

                                                                                    locIfCarTransT2);

 

                                                            CounterData (    DeltalocIfCollisions,

                                                                                    locIfCollisionsT1,

                                                                                    locIfCollisionsT2);

 

                                                            CounterData (    DeltalocIfInCRC,

                                                                                    locIfInCRCT1,

                                                                                    locIfInCRCT2);

 

                                                            CounterData (    DeltalocIfResets,

                                                                                    locIfResetsT1,

                                                                                    locIfResetsT2);

 

                                                            CounterData (    DeltaifInUcastPkts,

                                                                                    ifInUcastPktsT1,

                                                                                    ifInUcastPktsT2);

 

                                                            CounterData (    DeltaifInNUcastPkts,

                                                                                    ifInNUcastPktsT1,

                                                                                    ifInNUcastPktsT2);

 

                                                            CounterData (    DeltaifOutUcastPkts ,

                                                                                    ifOutUcastPktsT1,

                                                                                    ifOutUcastPktsT2);

 

                                                            CounterData (    DeltaifOutNUcastPkts,

                                                                                    ifOutNUcastPktsT1,

                                                                                    ifOutNUcastPktsT2);

                                                 

                                                #########################################################

                                                # Defining Variables for setting the Thresholds the relevant database values.

                                                            #

                                                            # The Carrier Sense Loss condition:

                                                            #

 

                                                            IF (CarrierSenseErrors > “2”)

                                                            THEN

                                                                MSG(“Device @1 reporting a Carrier sense loss alarm”, DEV);      

                                                            ENDIF;

 

                                                            DEFINE InTotalPkts  MAP INT;

                                                            DEFINE OutTotalPkts  MAP INT;

                                                            DEFINE ExcessiveCollisionsThershold  MAP INT;

                                                            DEFINE MacReceiveErrorsThreshold  MAP INT;

                                                            DEFINE MacTransmitErrorsThreshold  MAP INT;

 

                                                            InTotalPkts        =  DeltaifInUcastPkts + DeltaifInNUcastPkts;

                                                            OutTotalPkts      =  DeltaifOutUcastPkts + DeltaifOutNUcastPkts;

 

                                                ########################################################

                                                # Defining Variables for Populating the relevant database values.

                                                            #

                                                            # The Excessive Collisions condition:

 

                                                            ExcessiveCollisionsThershold = OutTotalPkts * 0.002;

           

                                                            IF (ExcessiveCollisions > ExcessiveCollisionsThershold)

                                                            THEN

                                                                    MSG(“Device @1 is reporting Excessive collisions alarm”, DEV);

                                                            ENDIF;

 

                                                ##########################################################

                                                # Defining Variables for Populating the relevant database values.

                                                            #

                                                            # The MAC sublayer receive errors condition:

           

                                                            MacReceiveErrorsThreshold = InTotalPkts * 0.01;

           

                                                            IF (ExcessiveCollisions > MacReceiveErrorsThreshold)

                                                            THEN

                                                                MSG(“Device @1 is reporting a MAC sublayer receive errors alarm”, DEV);

                                                            ENDIF;

 

                                                ##########################################################

                                                # Defining Variables for Populating the relevant database values.

                                                            #

                                                            # The MAC sublayer transmit errors condition:

                                                            #

 

                                                            MacTransmitErrorsThreshold = OutTotalPkts * 0.01;

 

                                                            IF (ExcessiveCollisions > Mac TransmitErrorsThreshold)

                                                            THEN

                                                                MSG(“Device @1 is reporting a MAC sublayer transmit errors alarm”, DEV);

                                                            ENDIF;         

 

                                            ENDIF;

            }; 

 

            ###############################################################

            ###########Populating the First and Second -Run values for non-Ethernet interfaces:

 

                        WITH-INDEX OtherifList

            { 

                                                locIfCarTransT1 = locIfCarTrans;

                                                locIfCollisionsT1 = locIfCollisions;

                                                locIfInCRCT1 = locIfInCRC;

                                                locIfResetsT1 = locIfResets;

                                                CounterDiscontinuityT1   = ifCounterDiscontinuityTime;

                                                           

                                                RMV (    locIfCarTrans;

                                                            locIfCollisions;

                                                            locIfInCRC;

                                                            locIfResets;

                                                            ifCounterDiscontinuityTime);

 

                                                POLL (   locIfCarTrans;

                                                             locIfCollisions;

                                                            locIfInCRC;

                                                            locIfResets;

                                                            ifCounterDiscontinuityTime);

 

                                                locIfCarTransT2  = locIfCarTrans;

                                                locIfCollisionsT2  = locIfCollisions;

                                                locIfInCRCT2  = locIfInCRC;

                                                locIfResetsT2  = locIfResets;

                                                CounterDiscontinuityT2   = ifCounterDiscontinuityTime;

 

                                                IF (CounterDiscontinuityT2 == CounterDiscontinuityT1)

                                                THEN

                                                            DEFINE locIfCarTrans  DB INT;

                                                            DEFINE locIfCollisions  DB INT;

                                                            DEFINE locIfInCRC  DB INT;

                                                            DEFINE locIfResets  DB INT;

 

                                                            CounterData (    DeltalocIfCarTrans,

                                                                                    locIfCarTransT1,

                                                                                    locIfCarTransT2);

 

                                                            CounterData (    DeltalocIfCollisions,

                                                                                    locIfCollisionsT1,                                                                              

                                                                                    locIfCollisionsT2);

 

                                                            CounterData (    DeltalocIfInCRC,

                                                                                    locIfInCRCT1,

                                                                                    locIfInCRCT2);

 

                                                            CounterData (    DeltalocIfResets,

                                                                                    locIfResetsT1,

                                                                                    locIfResetsT2);

 

                                                ENDIF;

                        };

            };

END

 


© 2001-2004 Advanced Network Management Solutions, Inc.