added broadworks SNMP checks

This commit is contained in:
George Pochiscan 2020-03-05 11:42:34 +02:00
parent 99e2590680
commit bc4893a3bc
7 changed files with 422 additions and 0 deletions

184
check_mk-broadworks/README.md Executable file
View File

@ -0,0 +1,184 @@
**Will use this repo for developing SNMP checks for Broadworks**
Check-uri de dezvoltat:
1. AS
2. MS
3. NS
4. XPS
5. PS
6. NFM
Check-uri per tip de server:
1. AS
- Database Size
- Execution Server Heap Size
- Maximum post-collection heap size
- DAtabase (DCS) utilization
- NbCallAttempts
- bwCallpCallsPerSecond
- bwCallpActiveCalls
- SIP Messages Per Second
- OCI Provisioning Transactions Per Second
- SystemInternalQueueTimeAvg
- SystemInternalQueueTimeMax
- bwSipStatsSetupSignalDelay
- bwSipStatsAnswerSignalDelay
2. NS
- Database Size
- Execution Server Heap Size
- Database (DSN) utilization
- bwNSCallpCallsPerSecond
- SystemInternalQueueTimeAvg
- SystemInternalQueueTimeMax
3. MS
- msPortsInUse
- msNoPortAvailableErrors
Descrieri pentru cele de mai sus:
AS/NS
Database Size
See “10.2.1.2 Database Permanent Size” of System Engineering Guide
Daily
DB PermSize_In_Use ≤ 90%
Database can be resized up to the maximum supported database size of 6 GB (with 16 GB of physical memory).
AS/NS
Execution Server
Heap Size
See 10.2.1.1 “Execution Server Post Full Collection Heap Size” of System Engineering Guide
Daily
Post Full Garbage Collection Heap size ≤ 60% of Maximum Heap
Execution Server process heap size can be resized up to the maximum supported heap size of 4 GB (with 16 GB of physical memory).
AS
Maximum post-collection heap size
See 10.2.1.1 “Execution Server Post Full Collection Heap Size” of System Engineering Guide
Daily
Yellow: 60
Red: 68
Provides the percentage of the memory consumption of the Java Virtual Machine (JVM) following a full Garbage Collection (GC). Initially, the statistic value is set to “0”. Henceforth, the statistic value is set from the value of the previous day.
AS/NS
Database (DSN) utilization
NA
Daily
Yellow: 85
Red: 90
Indicates the percentage of the database size currently used by the application.
MS
msPortsInUse
.1.3.6.1.4.1.6431.1.3.1.1.0
15 minutes
NA
Trend port usage as a percentage of available Media Server ports.
MS
msNoPortAvailableErrors
.1.3.6.1.4.1.6431.1.3.1.6.0
30 minutes
0, for 0% blocking per Media Server
Ideally zero, unless Media Server blocking is acceptable.
NS
bwNSCallpCallsPerSecond
.1.3.6.1.4.1.6431.1.5.2.6
15 minutes
Small: < 150
Medium: < 300
Large: < 600
For information on small, medium, and large hardware configuration, see the BroadWorks System Engineering Guide and BroadWorks Recommended Hardware Guide.
AS
bwNumberOfUsers
.1.3.6.1.4.1.16431.1.2.16.1.2.0
Weekly
Not Applicable
Trend user growth as each Application Server cluster.
AS
NbCallAttempts
.1.3.6.1.4.1.6431.1.2.7.1.4.0 + .1.3.6.1.4.1.6431.1.2.7.1.1.0
15 minutes
Not applicable
Used to identify server peak busy hour by multiplying maximum reading by 4.
AS
bwCallpCallsPerSecond
.1.3.6.1.4.1.6431.1.2.7.1.12.0
15 minutes
Small: < 11
Medium: < 33
Large: < 55
Trend call per second on each Application Server cluster.
AS
bwCallpActiveCalls
.1.3.6.1.4.1.6431.1.2.7.1.10.0
15 minutes
Not applicable
Trend number of active calls on each Application Server cluster.
AS
SIP Messages Per Second
(.1.3.6.1.4.1.6431.1.2.9.1.55.0+.1.3.6.1.4.1.6431.1.2.9.1.56.0
+
.1.3.6.1.4.1.6431.1.2.9.1.58.0+.1.3.6.1.4.1.6431.1.2.9.1.59.0)
/$DELTA_TIME
15 minutes
Small: < 200
Medium: < 600
Large: < 1000
Sum of all TCP and UDP SIP requests/responses and MGCP requests/responses. For information on small, medium, and large hardware configuration, see the BroadWorks System Engineering Guide and BroadWorks Recommended Hardware Guide.
AS
OCI Provisioning Transactions Per Second
(.1.3.6.1.4.1.6431.1.6.8.1.1.0
+
.1.3.6.1.4.1.6431.1.6.8.1.3.0+.1.3.6.1.4.1.6431.1.6.8.1.5.0)
/$DELTA_TIME
15 minutes
Small: < 11
Medium: < 30
Large: < 50
Sum of all OCI provisioning requests/responses. For information on small, medium, and large hardware configuration, see the BroadWorks System Engineering Guide and BroadWorks Recommended Hardware Guide.
AS/NS
SystemInternalQueueTimeAvg
.1.3.6.1.4.1.6431.1.2.16.2.2.1.4.0
15 minutes
≤ 25 msec
All primary queues should have average queue wait times less than or equal to 25 milliseconds.
AS/NS
SystemInternalQueueTimeMax
.1.3.6.1.4.1.6431.1.2.16.2.2.1.6.0
15 minutes
Maximum Time Distribution
80%: ≤ 500 msec
95%: ≤ 1.5 sec
100%: ≤ 2.5 sec
0%: >2.5 sec
All primary queues should have high water mark distribution within the following ranges. No high water mark should ever be greater than 2.5 seconds.
AS
bwSipStatsSetupSignalDelay
.1.3.6.1.4.1.6431.1.2.9.1.44.0
15 minutes
≤ 200 msec
Time in milliseconds from the receipt of an INVITE message for the origination of a new call and the transmission of an INVITE to the terminator. Commonly referred to as cross-office signaling delay.
Should be polled and reset.
AS
bwSipStatsAnswerSignalDelay
.1.3.6.1.4.1.6431.1.2.9.1.47.0
15 minutes
≤ 200 msec
Time in milliseconds between the receipt of a 200 OK message, indicating answer and the transmission of a 200 OK, indicating answer to the originator.
Should be polled and reset

View File

@ -0,0 +1,16 @@
title: broadworks_ms_ports_usage
agents: snmp
catalog: applications
license: GPL
distribution: check_mk
description:
This check monitors the number of errors for No Port Available
item:
The item is composed from the description of OID.
perfdata:
One graph for number of errors.
inventory:
One service for msNoPortAvailableErrors

View File

@ -0,0 +1,16 @@
title: broadworks_ms_ports_usage
agents: snmp
catalog: applications
license: GPL
distribution: check_mk
description:
This check monitors the usage of ports for brodworks media server
item:
The item is composed from the description of OID(msPortsInUse).
perfdata:
One graph for usage.
inventory:
One service for ports usage

View File

@ -0,0 +1,51 @@
#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
# +------------------------------------------------------------------+
# | ____ _ _ __ __ _ __ |
# | / ___| |__ ___ ___| | __ | \/ | |/ / |
# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
# | | |___| | | | __/ (__| < | | | | . \ |
# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
# | |
# | Copyright Mathias Kettner 2018 mk@mathias-kettner.de |
# +------------------------------------------------------------------+
#
# This file is part of Check_MK.
# The official homepage is at http://mathias-kettner.de/check_mk.
#
# check_mk is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation in version 2. check_mk is distributed
# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more de-
# tails. You should have received a copy of the GNU General Public
# License along with GNU Make; see the file COPYING. If not, write
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
# example output
def inventory_broadworks_as_call_attempts(info):
return [ (None, {}) ]
def check_broadworks_as_call_attempts(item, params, info):
state = 0
infotext = "OK - Number of CallAttempts %s" % int(info[0][0])
perf = [("Users", int(info[0][0]) )]
return (state, infotext, perf)
check_info['broadworks_as_call_attempts'] = {
'inventory_function' : inventory_broadworks_as_call_attempts,
'check_function' : check_broadworks_as_call_attempts,
'service_description' : 'NbCallAttempts',
'snmp_info' : ('.1.3.6.1.4.1.6431.1.2.7.1', [ "4.0",
]),
'has_perfdata' : True,
'snmp_scan_function' : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.6431"),
}

View File

@ -0,0 +1,50 @@
#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
# +------------------------------------------------------------------+
# | ____ _ _ __ __ _ __ |
# | / ___| |__ ___ ___| | __ | \/ | |/ / |
# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
# | | |___| | | | __/ (__| < | | | | . \ |
# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
# | |
# | Copyright Mathias Kettner 2018 mk@mathias-kettner.de |
# +------------------------------------------------------------------+
#
# This file is part of Check_MK.
# The official homepage is at http://mathias-kettner.de/check_mk.
#
# check_mk is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation in version 2. check_mk is distributed
# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more de-
# tails. You should have received a copy of the GNU General Public
# License along with GNU Make; see the file COPYING. If not, write
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
# example output
def inventory_broadworks_as_users(info):
return [ (None, {}) ]
def check_broadworks_as_users(item, params, info):
state = 0
infotext = "OK - Number of Users is: %s" % info[0][0]
perf = [("Users", int(info[0][0]) )]
return (state, infotext, perf)
check_info['broadworks_as_users'] = {
'inventory_function' : inventory_broadworks_as_users,
'check_function' : check_broadworks_as_users,
'service_description' : 'bwNumberOfUsers',
'snmp_info' : ('.1.3.6.1.4.1.6431.1.2.16.1.2', [ "0",]),
'has_perfdata' : True,
'snmp_scan_function' : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.6431"),
}

View File

@ -0,0 +1,55 @@
#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
# +------------------------------------------------------------------+
# | ____ _ _ __ __ _ __ |
# | / ___| |__ ___ ___| | __ | \/ | |/ / |
# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
# | | |___| | | | __/ (__| < | | | | . \ |
# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
# | |
# | Copyright Mathias Kettner 2018 mk@mathias-kettner.de |
# +------------------------------------------------------------------+
#
# This file is part of Check_MK.
# The official homepage is at http://mathias-kettner.de/check_mk.
#
# check_mk is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation in version 2. check_mk is distributed
# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more de-
# tails. You should have received a copy of the GNU General Public
# License along with GNU Make; see the file COPYING. If not, write
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
# example output
def inventory_broadworks_ms_port_errors(info):
return [ (None, {}) ]
def check_broadworks_ms_port_errors(item, params, info):
if int(info[0][0]) == 0:
state = 0
infotext = "OK - No Errors"
perf = [("Erori", int(info[0][0]) )]
return (state, infotext, perf)
else:
state = 1
infotext = "WARN - Errors are present: %s errors" % int(info[0][0])
perf = [("Erori", int(info[0][0]) )]
return (state, infotext, perf)
check_info['broadworks_ms_port_errors'] = {
'inventory_function' : inventory_broadworks_ms_port_errors,
'check_function' : check_broadworks_ms_port_errors,
'service_description' : 'msNoPortAvailableErrors',
'snmp_info' : ('.1.3.6.1.4.1.6431.1.3.1.6', [ "0",]),
'has_perfdata' : True,
'snmp_scan_function' : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.6431"),
}

View File

@ -0,0 +1,50 @@
#!/usr/bin/python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
# +------------------------------------------------------------------+
# | ____ _ _ __ __ _ __ |
# | / ___| |__ ___ ___| | __ | \/ | |/ / |
# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
# | | |___| | | | __/ (__| < | | | | . \ |
# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
# | |
# | Copyright Mathias Kettner 2018 mk@mathias-kettner.de |
# +------------------------------------------------------------------+
#
# This file is part of Check_MK.
# The official homepage is at http://mathias-kettner.de/check_mk.
#
# check_mk is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation in version 2. check_mk is distributed
# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more de-
# tails. You should have received a copy of the GNU General Public
# License along with GNU Make; see the file COPYING. If not, write
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
# example output
def inventory_broadworks_ms_ports_usage(info):
print info
return [ (None, {}) ]
def check_broadworks_ms_ports_usage(item, params, info):
state = 0
infotext = "OK - Percentage of ports in use is %s " %int(info[0][0])
perf = [("Usage", int(info[0][0]) )]
return (state, infotext, perf)
check_info['broadworks_ms_ports_usage'] = {
'inventory_function' : inventory_broadworks_ms_ports_usage,
'check_function' : check_broadworks_ms_ports_usage,
'service_description' : 'msPortsInUse',
'snmp_info' : (".1.3.6.1.4.1.6431.1.3.1.1", ["0"]),
'has_perfdata' : True,
'snmp_scan_function' : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.6431"),
}