NerveCenterTM: Integration with
Micromuse Netcool/OMNIbus
-
Sample Rules File - Sample Nervecenter.rules File -
The sample that follows shows the complete rules file.
########################################################################
# Copyright (C) 1998 Omnibus Transport Technologies Ltd.
# This file may have been supplied under a license.
# It may be used, disclosed, and/or copied only as permitted
# under such license agreement. Any copy must contain the
# above copyright notice and this restricted rights notice.
# Use, copying, and/or disclosure of the file is strictly
# prohibited unless otherwise provided in the license agreement.
# Ident: $Id: nervecenter.rules 1.1 1998/07/07 09:23:42 nic Development $
#######################################################################
table interfaces = "/opt/Omnibus/probes/hpux10/Tables/interfaces.lookup"
table fr = "/opt/Omnibus/probes/hpux10/Tables/fr.lookup"
table bgp = "/opt/Omnibus/probes/hpux10/Tables/bgp.lookup"
table junction = "/opt/Omnibus/probes/hpux10/Tables/junction.lookup"
table abbreviations = "/opt/Omnibus/probes/hpux10/Tables/abbreviations.lookup"
table supportdefinitions = "/opt/Omnibus/probes/hpux10/Tables/supportdefinitions.lookup"
table exceptionscity = "/opt/Omnibus/probes/hpux10/Tables/exceptionscity.lookup"
table exceptionsdevfun = "/opt/Omnibus/probes/hpux10/Tables/exceptionsdevfun.lookup"
##################################################################
# Put ProbeWatch Specific messages here, ie to customise Agent names
# !! This is not part of management system event processing
if( match( @Manager, "ProbeWatch" ) )
@Summary = @Agent + " probe on " + @Node + ": " + @Summary
@Identifier = $MessageType + $ServerID
@Summary = "Connection accepted from " + $ServerID
@Identifier = $MessageType + $ServerID
@Summary = "Connection rejected from " + $ServerID
@Identifier = $MessageType + $ServerID
@Summary = "Exit notification received from " + $ServerID
#######################################################################
# The Informs start here for main rules section (non ProbeWatch alerts).
# !! This IS where management system event processing starts
# Default User specific fields
@RemedyFlag = $DONOTFORWARDEVENT
@DatabaseFlag = $DONOTFORWARDEVENT
# SupportClass is a reference indicating the Support for a particular event
@SupportClass = $UNDEFINED_SUPPORT
# VendorClass is defined by the division of the Class by the value of 100
# VendorClass table will look like:
$ROUTINGFAILURE = "RoutingFailure"
$COMPONENTFAILURE = "CompentFailure"
$ENVFAILURE = "EnvironmentalFailure"
$SERVICEFAILURE = "ServiceFailure"
$MEMORYFAILURE = "MemoryFailure"
# If the Node Name is NOT an IP address - parse out info from the name
if (regmatch(@Node, "^[a-zA-Z][a-zA-Z][a-zA-Z][0-9][0-9][a-zA-Z][a-zA-Z][a-zA-Z]")) {
@DevFuncCode = extract(@Node, "([a-zA-Z][a-zA-Z][a-zA-Z]+)")
$junction = lookup(@Node,junction)
if (match($junction,"NoMatch")) {
@SupportClass = lookup (@DevFuncCode, supportdefinitions)
@SupportClass = lookup ($junction, supportdefinitions)
@Class = lookup (@DevFuncCode, abbreviations)
@CityCode = extract(@Node, ".*([a-zA-Z][a-zA-Z][a-zA-Z])")
@VendorClass = int(@Class)/100
if (regmatch(@Node, "^[a-zA-Z][a-zA-Z][0-9][0-9][a-zA-Z][a-zA-Z][a-zA-Z]")) {
@DevFuncCode = extract(@Node, "([a-zA-Z][a-zA-Z]+)")
@CityCode = extract(@Node, ".*([a-zA-Z][a-zA-Z][a-zA-Z])")
@Class = lookup (@DevFuncCode, abbreviations)
@VendorClass = int(@Class)/100
@SupportClass = lookup (@DevFuncCode, supportdefinitions)
if (regmatch(@Node, "^[a-zA-Z][a-zA-Z][a-zA-Z][0-9][a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z]")) {
@DevFuncCode = extract(@Node, "([a-zA-Z][a-zA-Z][a-zA-Z]+)")
@CityCode = extract(@Node, ".*([a-zA-Z][a-zA-Z][a-zA-Z])")
@Class = lookup (@DevFuncCode, abbreviations)
@VendorClass = int(@Class)/100
@SupportClass = lookup (@DevFuncCode, supportdefinitions)
if (regmatch(@Node, "^yes[0-9][0-9][0-9]i[0-9][0-9][a-zA-Z][a-zA-Z][a-zA-Z]")) {
@DevFuncCode = extract(@Node, "([a-zA-Z][a-zA-Z][a-zA-Z]+)")
@CityCode = extract(@Node, ".*([a-zA-Z][a-zA-Z][a-zA-Z])")
@Class = lookup (@DevFuncCode, abbreviations)
@VendorClass = int(@Class)/100
@SupportClass = lookup (@DevFuncCode, supportdefinitions)
@DevFuncCode = lookup(@Node, exceptionsdevfun)
$junction = lookup(@Node,junction)
if (match($junction,"NoMatch")) {
@SupportClass = lookup (@DevFuncCode, supportdefinitions)
@SupportClass = lookup ($junction, supportdefinitions)
@CityCode = lookup(@Node, exceptionscity)
@Class = lookup (@DevFuncCode, abbreviations)
@VendorClass = int(@Class)/100
# Check to see if @Class was not set (Normally because not found in any lookup
# Next Enterprise: NetLabs_NerveCenter .1.3.6.1.4.1.78
@AlertKey = $AlrmDN + $NodeName
@AlertGroup = $AlrmDN + "FreeBusy"
@Summary = "NC: " + $AlrmDN + ": NODE: " + $NodeName + " CPU Utilization back to normal"
@AlertClass = $COMPONENTFAILURE
@AlertKey = $AlrmDN + $NodeName
@AlertGroup = $AlrmDN + "FreeBusy"
@Summary = "NC: " + $AlrmDN + ": NODE: " + $NodeName + " CPU Utilization
>= 75% <= 90%"
@AlertClass = $COMPONENTFAILURE
@AlertKey = $AlrmDN + $NodeName
@AlertGroup = $AlrmDN + "UpDown"
@Summary = "NC: " + $AlrmDN + ": NODE: " + $NodeName + " unreachable."
@AlertKey = $AlrmDN + $NodeName
@AlertGroup = $AlrmDN + "UpDown"
@Summary = "NC: " + $AlrmDN + ": NODE: " + $NodeName + " unreachable.
Problem with network path to node."
@AlertKey = $AlrmDN + $NodeName
@AlertGroup = $AlrmDN + "UpDown"
@Summary = "NC: " + $AlrmDN + ": NODE: " + $NodeName + " Down."
@AlertKey = $AlrmDN + $NodeName + $INTERFACE
@Summary = "NC: " + $AlrmDN + ": High Error Rate (>5%) on NODE: " +
$NodeName + " interface " + $INTERFACE + "."
@AlertKey = $AlrmDN + $NodeName + $INTERFACE
@AlertGroup = $AlrmDN + "UpDown"
$LookupKey = $NodeName + $INTERFACE
$SpecialInfo = lookup ($LookupKey, interfaces)
if(match($SpecialInfo,"NoMatch")) {
@Summary = $Exclamation + "NC: " + $AlrmDN + ": Node " + $NodeName +
" Interface: " + $INTERFACE + " is Down " + $SpecialInfo
@AlertKey = $AlrmDN + $NodeName + $INTERFACE
@AlertGroup = $AlrmDN + "UpDown"
$LookupKey = $NodeName + $INTERFACE
$SpecialInfo = lookup ($LookupKey, interfaces)
if(match($SpecialInfo,"NoMatch")) {
@Summary = $Exclamation + "NC: " + $AlrmDN + ": Node " + $NodeName +
"Interface: " + $INTERFACE + " is Flapping " + $SpecialInfo
@AlertKey = $AlrmDN + $NodeName + $INTERFACE
@AlertGroup = $AlrmDN + "UpDown"
@Summary = "NC: " + $AlrmDN + ": Node: " + $NodeName + " Session: " +
$INTERFACE + " is Up."
@AlertKey = $AlrmDN + $NodeName
@AlertGroup = $AlrmDN + "Reboot"
@Summary = "NC: " + $AlrmDN + ": NODE: " + $NodeName + " has rebooted."
@AlertKey = $AlrmDN + $NodeName
@AlertGroup = $AlrmDN + "LowOK"
@Summary = "NC: " + $AlrmDN + ": NODE: " + $NodeName +
"Low Memory! Current " + $VarBind1
@AlertKey = $AlrmDN + $NodeName
@AlertGroup = $AlrmDN + "LowOK"
@Summary = "NC: " + $AlrmDN + ": NODE: " + $NodeName +
"Returned to normal memory utilization. Current memory = " + $VarBind1
@Summary = "Unknown specific trap number (" + $MesgID + ") received for
enterprise " + $enterprise-name
# details ($TrapEID, $MesgID, $ServerID, $NodeName, $INTERFACE, $NPG,
$AlrmDN, $AlrmProp)
#######################################################################
# This is the end of the main rules section
#######################################################################
# The identifier is built here to take into account the AlertKey
@Identifier = $ServerID+":"+$NodeName+":"+$MesgID+":"+@AlertKey+":"+@Rise
}
Sample Rules File | NerveCenterTM 3.8: Node Classification |
29 July 2003 |