Feature Description
Release 14
Document Version 1.4
AlarmThresholdAndSuppressionFD.doc
ExtraView Numbers 10804, 10805
Copyright Notice
Copyright © 2006 BroadSoft, Inc.
All rights reserved.
Any technical documentation that is made available by BroadSoft, Inc. is proprietary and
confidential and is considered the copyrighted work of BroadSoft, Inc.
This publication is for distribution under BroadSoft non-disclosure agreement only.
No part of this publication may be duplicated without the express written permission of
BroadSoft, Inc. 220 Perry Parkway, Gaithersburg, MD 20877.
BroadSoft reserves the right to make changes without prior notice.
Trademarks
BroadWorks® and BroadWorks Assistant™ are trademarks of BroadSoft, Inc.
Microsoft, MSN, Windows, and the Windows logo are registered trademarks of Microsoft
Corporation. Other product names mentioned in this manual may be trademarks or
registered trademarks of their respective companies and are hereby acknowledged.
This document is printed in the United States of America.
1.3 Approved Described what happens when an alarm name is not valid. June 19, 2006
2 Requirements .................................................................................................................................8
This feature provides the ability to suppress alarms by type so that they are not sent out
via the Simple Network Management Protocol (SNMP) interface and so that they stop
being logged to file on the local server. Alarm suppression is needed because there are
some alarms that provide useful evidence that something went wrong, but are not
necessarily useful if they are sent each time to the Element Management System (EMS).
For instance, Session Initiation Protocol (SIP) device authentication failures are useful to
keep locally on a log file in the Application Server, but an operator may not want to always
see them on the EMS.
This feature also provides the ability to threshold alarms sent over the SNMP interface by
alarm type. The threshold limits the number of alarms sent within a given period of time.
All /usr/local/broadworks/bw_base/conf/commontraplist.xml
The trapfilter files are preserved during a BroadWorks upgrade so that filters defined by
customers can remain unchanged after an upgrade.
Details on the Document Type Definition (DTD) for trapfilter files follow.
<?xml version='1.0' encoding="UTF-8"?>
>
broadsoft MODULE-IDENTITY
LAST-UPDATED "200508161000Z"
ORGANIZATION "Broadsoft, Inc"
CONTACT-INFO "Broadsoft, Inc
220 Perry Parkway
Gaithersburg, MD 20877
301-977-9440"
DESCRIPTION
"This is the System Management Information structure for the
Broadsoft enterprise."
REVISION "200603011000Z"
DESCRIPTION
"Added alarm threshold and suppression."
REVISION "200508161000Z"
DESCRIPTION
"Added MIB conformance section."
REVISION "200009191431Z"
DESCRIPTION
""
::= { enterprises 6431 }
...
bwAlarmThresholdTable OBJECT-TYPE
SYNTAX SEQUENCE OF BwAlarmThresholdEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table of all the thresholds set against alarms in the system"
::= { thAlarmModule 1 }
bwAlarmThresholdEntry OBJECT-TYPE
SYNTAX BwAlarmThresholdEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This row contains information on a particular alarm threshold"
INDEX { bwAlarmThresholdIndex }
::= { bwAlarmThresholdTable 1 }
bwAlarmThresholdIndex OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This integer represents the index of an alarm threshold in the system"
::= { bwAlarmThresholdEntry 1 }
bwAlarmThresholdName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The name of an alarm or DEFAULT if the threshold applies to all alarms in
the system"
::= { bwAlarmThresholdEntry 2 }
bwAlarmThresholdMaxNumTrapsPerTimePeriod OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The maximum number of traps that the system outputs per sliding time
period. If set to 0 (zero), the alarm is suppressed and the system does not output any trap for this alarm
filter."
::= { bwAlarmThresholdEntry 3 }
bwAlarmThresholdTimePeriodInSeconds OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The time period used for threshold calculation, in seconds."
::= { bwAlarmThresholdEntry 4 }
bwAlarmThresholdProblemTextVarNum1 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"To further refine a threshold, specify the position number of the variable
data within the alarm problem text (1, 2, 3, etc.) that together with the alarm name, define the actual
threshold. For example, if the alarm has five problem text variables: 1-deviceName, 2-deviceAddress, 3-
devicePort, 4-errorType, 5-errorCode, and if the alarm threshold is to limit the number of traps for a given
deviceName, devicePort, and errorType, then bwAlarmThresholdProblemTextVarNum1 should be set to 1,
bwAlarmThresholdProblemTextVarNum2 should be set to 3, and bwAlarmThresholdProblemTextVarNum3 should be set to
4. To ignore filtering based on problem text variables, set to 0 (zero)."
::= { bwAlarmThresholdEntry 5 }
bwAlarmThresholdProblemTextVarNum2 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"To further refine a threshold, specify the position number of the variable
data within the alarm problem text (1, 2, 3, etc.) that together with the alarm name, define the actual
threshold. For example, if the alarm has five problem text variables: 1-deviceName, 2-deviceAddress, 3-
devicePort, 4-errorType, 5-errorCode, and if the alarm threshold is to limit the number of traps for a given
deviceName, devicePort, and errorType, then bwAlarmThresholdProblemTextVarNum1 should be set to 1,
bwAlarmThresholdProblemTextVarNum2 should be set to 3, and bwAlarmThresholdProblemTextVarNum3 should be set to
4. To ignore filtering based on problem text variables, set to 0 (zero)."
::= { bwAlarmThresholdEntry 6 }
bwAlarmThresholdProblemTextVarNum3 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"To further refine a threshold, specify the position number of the variable
data within the alarm problem text (1, 2, 3, etc.) that together with the alarm name, define the actual
threshold. For example, if the alarm has five problem text variables: 1-deviceName, 2-deviceAddress, 3-
devicePort, 4-errorType, 5-errorCode, and if the alarm threshold is to limit the number of traps for a given
deviceName, devicePort, and errorType, then bwAlarmThresholdProblemTextVarNum1 should be set to 1,
bwAlarmThresholdProblemTextVarNum2 should be set to 3, and bwAlarmThresholdProblemTextVarNum3 should be set to
4. To ignore filtering based on problem text variables, set to 0 (zero)."
::= { bwAlarmThresholdEntry 7 }
bwAlarmThresholdProblemTextVarNum4 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
bwAlarmThresholdProblemTextVarNum5 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"To further refine a threshold, specify the position number of the variable
data within the alarm problem text (1, 2, 3, etc.) that together with the alarm name, define the actual
threshold. For example, if the alarm has five problem text variables: 1-deviceName, 2-deviceAddress, 3-
devicePort, 4-errorType, 5-errorCode, and if the alarm threshold is to limit the number of traps for a given
deviceName, devicePort, and errorType, then bwAlarmThresholdProblemTextVarNum1 should be set to 1,
bwAlarmThresholdProblemTextVarNum2 should be set to 3, and bwAlarmThresholdProblemTextVarNum3 should be set to
4. To ignore filtering based on problem text variables, set to 0 (zero)."
::= { bwAlarmThresholdEntry 9 }
bwAlarmThresholdMinimumSeverity OBJECT-TYPE
SYNTAX INTEGER { informational ( 0 ) , low ( 1 ) , medium ( 2 ) , high
( 3 ) , critical ( 4 ) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This is the minimum alarm severity under which alarms start to be
discarded."
::= { bwAlarmThresholdEntry 10 }
bwAlarmThresholdControl OBJECT-TYPE
SYNTAX INTEGER { inactive(0), active(1), delete(2), create(3),
invalid(4) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This scalar controls the life cycle of the threshold. Setting this
threshold to create(3) using an unused index creates a row with the specified index. Setting it with an already
used index has no effect. Setting this threshold to delete(2) removes the entry."
::= { bwAlarmThresholdEntry 11 }
...
-- units of conformance
bwMoServerGroup OBJECT-GROUP
OBJECTS { bwServerType, bwRedundancyType, bwActiveSoftwareVersion, bwAdminState, bwOperationalState,
bwResetServer, bwSubComponentTable, bwTargetSoftwareVersion, bwSubComponentIndex, bwSubComponentName,
bwSubComponentInfo }
STATUS current
DESCRIPTION
"This group defines managed object server attributes."
::= { bwMtcMibGroups 1 }
bwMoSoftwareVersionsGroup OBJECT-GROUP
OBJECTS { bwUpdateSoftwareVersionTable, bwSoftwareVersionTable, bwSoftwarePatchTable,
bwSoftwareThirdPartyTable, bwSoftwareVersionIndex, bwSoftwareVersionName, bwSoftwareVersionInstallDate,
bwSoftwareVersionStatus, bwSoftwarePatchIndex, bwSoftwarePatchVersionName, bwSoftwarePatchName,
bwSoftwarePatchType, bwSoftwarePatchInstallDate, bwSoftwarePatchStatus, bwSoftwarePatchOperation,
bwSoftwareThirdPartyIndex, bwSoftwareThirdPartyName, bwSoftwareThirdPartyVersion, bwSoftwareThirdPartyStatus }
STATUS current
DESCRIPTION
"This group defines the software version attributes for the managed object."
::= { bwMtcMibGroups 2 }
bwMoDeviceGroup OBJECT-GROUP
OBJECTS { bwManagedObjectsTable, bwManagedObjectsIndex, bwManagedObjectsName, bwManagedObjectsProtocol,
bwManagedObjectsType, bwManagedObjectsAdminState, bwManagedObjectsOperationalState }
STATUS current
DESCRIPTION
"This group defines the counters used to manage the access or network devices monitored by this managed
object."
::= { bwMtcMibGroups 3 }
bwMoThresholdsGroup OBJECT-GROUP
OBJECTS { bwCounterThresholdTable, bwCounterThresholdIndex, bwCounterThresholdDescription,
bwCounterThresholdName, bwCounterThresholdInitialValue, bwCounterThresholdOffsetValue,
bwCounterThresholdCurrentValue, bwCounterThresholdSeverity, bwCounterThresholdControl, bwGaugeThresholdTable,
bwGaugeThresholdIndex, bwGaugeThresholdDescription, bwGaugeThresholdName, bwGaugeThresholdNotifyLow,
bwGaugeThresholdNotifyHigh, bwGaugeThresholdSeverity, bwGaugeThresholdControl, bwAlarmThresholdTable,
bwAlarmThresholdIndex, bwAlarmThresholdName, bwAlarmThresholdMaxNumTrapsPerTimePeriod,
bwAlarmThresholdTimePeriodInSeconds, bwAlarmThresholdProblemTextVarNum1, bwAlarmThresholdProblemTextVarNum2,
bwMoReserveGroup OBJECT-GROUP
OBJECTS { bwReservedScalar }
STATUS current
DESCRIPTION
"MIB reserved section."
::= { bwMtcMibGroups 5 }
--
bwMoBasicCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"BroadWorks Common managed object MIB compliance"
MODULE -- this module
MANDATORY-GROUPS { bwMoServerGroup, bwMoSoftwareVersionsGroup, bwMoDeviceGroup,
bwMoThresholdsGroup, bwMoReserveGroup }
::= { bwMtcMibCompliancy 1 }
END
0 entry found.
AS_CLI/Monitoring/Alarm/Threshold/Default> %% Limit each alarm in system to 100 alarms of each type per hour.
AS_CLI/Monitoring/Alarm/Threshold> %% For the same Endpoint ID (problem text variable position 1) and Device
Address (problem text variable position 2), limit the number of bwMGCPReTransmissionTimeout alarms to 2 per
sliding period of 30 seconds.
AS_CLI/Monitoring/Alarm/Threshold> get
Index AlarmName MaxNumTrapsPerTimePeriod TimePeriodInSeconds Var1 Var2 Var3
Var4 Var5 Status
=====================================================================================================
==================
1 bwNSSynchronizationFailure 4 10
active
2 bwSipRegistrationFailure 0 1
active
4 bwMGCPReTransmissionTimeout 2 30 1 2
active
3 entries found.
AS_CLI/Monitoring/Alarm/Threshold/Default> get
maxNumTrapsPerTimePeriod = 100
timePeriodInSeconds = 3600
status = active
minSeverity = low
Incoming alarm
Dequeue
incoming alarm
from server
Trap Client (bwcli)
Send alarm to
Trap Server Trap Client (bwcli)
Trap Server
Filter alarm
Keep track of
Y Discard alarm?
discarded alarms
Send alarm to
manager over
SNMP
0 entry found.
AS_CLI/Monitoring/Alarm/Threshold/Default> %% Limit each alarm in system to 100 alarms of each type per hour.
AS_CLI/Monitoring/Alarm/Threshold> %% For the same Endpoint ID (problem text variable position 1) and Device
Address (problem text variable position 2), limit the number of bwMGCPReTransmissionTimeout alarms to 2 per
sliding period of 30 seconds.
AS_CLI/Monitoring/Alarm/Threshold> %% Add a filter for an alarm name that does not exist. The filter is not
rejected but it remains in state invalid.
AS_CLI/Monitoring/Alarm/Threshold> get
Index AlarmName MaxNumTrapsPerTimePeriod TimePeriodInSeconds Var1 Var2 Var3
Var4 Var5 Status
=====================================================================================================
==================
1 bwNSSynchronizationFailure 4 10
active
2 bwSipRegistrationFailure 0 1
active
4 bwMGCPReTransmissionTimeout 2 30 1 2
active
5 abcdefg 3 60
invalid
4 entries found.
AS_CLI/Monitoring/Alarm/Threshold/Default> get
maxNumTrapsPerTimePeriod = 100
timePeriodInSeconds = 3600
status = active
AS_CLI/Monitoring/Alarm/Threshold> get
Index AlarmName MaxNumTrapsPerTimePeriod TimePeriodInSeconds Var1 Var2 Var3
Var4 Var5 Status
=====================================================================================================
==================
1 bwNSSynchronizationFailure 5 20
active
2 bwSipRegistrationFailure 0 1
active
5 abcdefg 3 60
invalid
3 entries found.
AS_CLI/Monitoring/Alarm/Threshold/Default> get
maxNumTrapsPerTimePeriod = 100
timePeriodInSeconds = 3600
status = inactive
minSeverity = low
4.3.1 Summary
This feature enhances the CLI of all types of BroadWorks servers. Following is an
example of the Application Server CLI.
AS_CLI
Threshold add
Alarm delete
get
set
Threshold clear
Default get
set
Default
Command Format:
add
<alarmName>, String {1 to 128 characters}
<maxNumTrapsPerTimePeriod>, Integer {0 to 100000}
<timePeriodInSeconds>, Integer {1 to 2678400}
<status>, Choice = {inactive, active}
[<attribute>, Multiple Choice = {problemTextVariable1,
problemTextVariable2, problemTextVariable3, problemTextVariable4,
problemTextVariable5}]
<problemTextVariable1>, Integer {1 to 16}
<problemTextVariable2>, Integer {1 to 16}
<problemTextVariable3>, Integer {1 to 16}
<problemTextVariable4>, Integer {1 to 16}
<problemTextVariable5>, Integer {1 to 16}
Example:
AS_CLI/Monitoring/Alarm/Threshold> add bwThreadDelayDetected 5 60 active
problemTextVariable1 1 problemTextVariable2 2
...Done
2) AS_CLI/Monitoring/Alarm/Threshold/delete
Location within CLI Tree:
AS_CLI/Monitoring/Alarm/Threshold
Command Format:
delete
<alarmName>, String {1 to 128 characters}
[<index>, Integer {0 to 65000}]
Example:
AS_CLI/Monitoring/Alarm/Threshold> delete bwThreadDelayDetected
...Done
3) AS_CLI/Monitoring/Alarm/Threshold/get
Location within CLI Tree:
AS_CLI/Monitoring/Alarm/Threshold
Command Format:
get
[<attribute>, Multiple Choice = {alarmName}]
<alarmName>, String {1 to 128 characters}
2 entries found.
4) AS_CLI/Monitoring/Alarm/Threshold/set
Location within CLI Tree:
AS_CLI/Monitoring/Alarm/Threshold
Command Format:
set
<alarmName>, String {1 to 128 characters}
[<index>, Integer {0 to 65000}]
<attribute>, Multiple Choice = {maxNumTrapsPerTimePeriod,
timePeriodInSeconds, problemTextVariable1, problemTextVariable2,
problemTextVariable3, problemTextVariable4, problemTextVariable5, status}
<maxNumTrapsPerTimePeriod>, Integer {0 to 100000}
<timePeriodInSeconds>, Integer {1 to 2678400}
<problemTextVariable1>, Integer {1 to 16}
<problemTextVariable2>, Integer {1 to 16}
<problemTextVariable3>, Integer {1 to 16}
<problemTextVariable4>, Integer {1 to 16}
<problemTextVariable5>, Integer {1 to 16}
<status>, Choice = {inactive, active}
5) AS_CLI/Monitoring/Alarm/Threshold/clear
Location within CLI Tree:
AS_CLI/Monitoring/Alarm/Threshold
Command Format:
clear
<alarmName>, String {1 to 128 characters}
[<index>, Integer {0 to 65000}]
<attribute>, Multiple Choice = {problemTextVariable1,
problemTextVariable2, problemTextVariable3,
problemTextVariable4, problemTextVariable5}
6) AS_CLI/Monitoring/Alarm/Threshold/Default/get
Location within CLI Tree:
AS_CLI/Monitoring/Alarm/Threshold/Default
Command Format:
get
get takes no parameter
Example:
AS_CLI/Monitoring/Alarm/Threshold/Default> get
maxNumTrapsPerTimePeriod = 10
timePeriodInSeconds = 1
status = inactive
minSeverity = low
7) AS_CLI/Monitoring/Alarm/Threshold/Default/set
Location within CLI Tree:
AS_CLI/Monitoring/Alarm/Threshold/Default
Command Format:
set
<attribute>, Multiple Choice = {maxNumTrapsPerTimePeriod,
timePeriodInSeconds, status, minSeverity}
<maxNumTrapsPerTimePeriod>, Integer {0 to 100000}
<timePeriodInSeconds>, Integer {1 to 2678400}
<status>, Choice = {inactive, active}
<minSeverity>, Choice = {informational, low, medium, high,
critical}
4.14 Treatments
There is no impact.
This section lists the acronyms and abbreviations found in this document. The acronyms
and abbreviations are listed in alphabetical order along with their meanings.
Admin Administrator
API Application Programming Interface
AS Application Server
BW BroadWorks
CAP Client Application Protocol
CDR Call Detail Record
CDS Call Detail Server
CLI Command Line Interface
CS Conferencing Server
DN Directory Number
DTD Document Type Definition
EMS Element Management System
FS Functional Specification
HTML Hypertext Markup Language
LSSGR LATA Switching Systems Generic Requirements
MGCP Media Gateway Control Protocol
MIB Management Information Base
MS Media Server
NS Network Server
NSSync Network Server Synchronization
OCI Open Client Interface
OCI-P Open Client Interface-Provisioning
OID Object Identifier
OS Operating System
OSS Operations Support System
PM Performance Measurement
PS Provisioning Server
SIP Session Initiation Protocol
SNMP Simple Network Management Protocol
SOAP Simple Object Access Protocol
WS Web Server