Netphone Gespräche mit Checkmk überwachen
Das modulare Monitoring-Tool Checkmk bietet Ihnen einen Überblick über Ihre Netphone-Server.
Mit dem Netzwerkmonitoring Tool Checkmk können Sie die Anzahl der gleichzeitig aktiven Gespräche eines Swyx beziehungsweise Netphone Servers aufzeichnen. Wir haben die dafür nötigen Einstellungen für Sie unten zusammengestellt.
Schritt 1
Auf dem Swyxserver muss der Checkmk Agent installiert sein. In der Datei C:\ProgramData\checkmk\agent\check_mk.user.yml trägt man im Abschnitt winperf folgende Sequenz ein:
winperf:
counters:
- SwyxServer: swyxserver
Schritt 2:
Erstellen Sie auf dem Checkmk Server unter /opt/omd/sites/<sitename>/local/share/check_mk/checks die Datei winperf_swyxserver mit diesem Inhalt:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Example output from agent:
# <<<winperf_swyxserver>>>
# 1638893422.31 13616 10000000
# 2 1 rawcount
# 4 0 rawcount
# 6 1 rawcount
# 8 374 rawcount
# 10 29 rawcount
# 12 12 rawcount
# 14 1 rawcount
# 16 16 rawcount
# 18 0 rawcount
# 20 9 rawcount
# 22 0 rawcount
# 24 243 rawcount
# 26 7 rawcount
# 28 2174 raw_fraction
# -13616 2204 raw_base
# 32 30 raw_fraction
# -13616 2204 raw_base
# 36 747210 rawcount
# 38 1 rawcount
# 40 0 rawcount
# 42 1 rawcount
# 44 38 rawcount
# 46 0 rawcount
# 48 483 rawcount
# 50 0 counter
# 52 0 counter
# 54 0 counter
# 56 43 rawcount
# 58 32 rawcount
# 60 0 rawcount
# 62 0 rawcount
# 64 0 rawcount
# 66 2 rawcount
# 68 0 rawcount
# 70 0 rawcount
# 72 0 rawcount
# 74 1 rawcount
# 76 473 rawcount
# 78 37 rawcount
# Counters, relative to the base ID (e.g. 13616)
# 2 Active Calls.
# 4 Active External Calls.
# 6 Active Internal Calls.
def inventory_winperf_swyxserver(info):
if len(info) > 1:
return [(None, {})]
def check_winperf_swyxserver(_unused, params, info):
if not info or len(info) == 1:
return 3, "Performance counters not available"
active, external, internal = [int(l[1]) for l in info[1:4]]
state = 0
state_txt = []
for val, key, title in [(active, 'active', 'Active'), (external, 'external', 'External'), (internal, 'internal', 'Internal')]:
txt = '%d %s' % (val, title)
if key in params:
if val > params[key][0]:
state = 2
txt += '(!!)'
elif val > params[key][1]:
state = max(state, 1)
txt += '(!)'
state_txt.append(txt)
perfdata = [('active', active), ('external', external), ('internal', internal)]
return state, ", ".join(state_txt), perfdata
check_info["winperf_swyxserver"] = {
'check_function': check_winperf_swyxserver,
'inventory_function': inventory_winperf_swyxserver,
'service_description': 'Active Calls',
'has_perfdata': True,
'group': 'winperf_swyxserver',
}
Obige Datei winperf_swyxserver zum Download
Nach einem Rescan der Services innerhalb des Programms steht Ihnen ein neuer Service namens "Active Calls" zur Verfügung, den sie auch gleich aktivieren können.