Module: check_mk
Branch: master
Commit: c9bba72d4dbf7e15e8ee0a7a1bfc44155902e09b
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=c9bba72d4dbf7e…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Thu Feb 16 16:16:58 2012 +0100
Make further checks configurable via WATO
---
ChangeLog | 1 +
checkman/zpool_status | 2 +-
checks/apc_symmetra_ext_temp | 4 ++-
checks/wmic_process | 12 ++++----
checks/wut_webtherm | 3 +-
checks/zpool_status | 2 +-
modules/check_mk_base.py | 3 +-
web/htdocs/wato.py | 8 ++++-
web/plugins/wato/check_parameters.py | 52 +++++++++++++++++++++++++++++++++-
9 files changed, 73 insertions(+), 14 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index d226aad..74edc23 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,7 @@
(such as BINTEC routers)
WATO:
+ * More checks are configurable via WATO now
* Distributed WATO: Made all url calls using curl now
* FIX: fix bug in inventory in validate_datatype()
* Better output in case of inventory error
diff --git a/checkman/zpool_status b/checkman/zpool_status
index 7092cef..6c24641 100644
--- a/checkman/zpool_status
+++ b/checkman/zpool_status
@@ -10,4 +10,4 @@ description:
has an error the check goes CRITICAL.
inventory:
- The inventory will automatically find zpools.
+ The inventory will create one service per host if there are any pools.
diff --git a/checks/apc_symmetra_ext_temp b/checks/apc_symmetra_ext_temp
index 80a8bf3..bb2684b 100644
--- a/checks/apc_symmetra_ext_temp
+++ b/checks/apc_symmetra_ext_temp
@@ -27,7 +27,7 @@
apc_symmetra_ext_temp_default_levels = (30, 35)
def inventory_temp(info):
- return [ ( line[0], "", "apc_symmetra_ext_temp_default_levels" )
\
+ return [ ( line[0], "apc_symmetra_ext_temp_default_levels" ) \
for line in info if line[1] == "2" ]
def check_temp(item, params, info):
@@ -53,3 +53,5 @@ snmp_info['apc_symmetra_ext_temp'] = (
[ 1, 3, 4 ] )
snmp_scan_functions['apc_symmetra_ext_temp'] = lambda oid:
oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.318.1.3")
+
+checkgroup_of["apc_symmetra_ext_temp"] = "room_temperature"
diff --git a/checks/wmic_process b/checks/wmic_process
index 5c1cafd..2d9cd76 100644
--- a/checks/wmic_process
+++ b/checks/wmic_process
@@ -66,27 +66,27 @@ def check_wmic_process(item, params, info):
if cpu_perc >= cpucrit:
state = 2
- infos[7] = "(!! critical at %d%%)" % cpucrit
+ infos[7] = "(!!) - critical at %d%%" % cpucrit
elif page_mb >= pagecrit:
state = 2
- infos[5] = "(!! critical at %d MB)" % pagecrit
+ infos[5] = "(!!) critical at %d MB" % pagecrit
elif mem_mb >= memcrit:
state = 2
- infos[3] = "(!! critical at %d MB)" % memcrit
+ infos[3] = "(!!) critical at %d MB" % memcrit
elif cpu_perc >= cpuwarn:
state = 1
- infos[7] = "(! warning at %d%%)" % cpuwarn
+ infos[7] = "(!) warning at %d%%" % cpuwarn
elif mem_mb >= memwarn:
state = 1
- infos[3] = "(! warning at %d MB)" % memwarn
+ infos[3] = "(!) warning at %d MB" % memwarn
elif page_mb >= pagewarn:
state = 1
- infos[5] = "(! warning at %d MB)" % pagewarn
+ infos[5] = "(!) warning at %d MB" % pagewarn
else:
state = 0
diff --git a/checks/wut_webtherm b/checks/wut_webtherm
index 4bed8df..f2404e5 100644
--- a/checks/wut_webtherm
+++ b/checks/wut_webtherm
@@ -29,7 +29,7 @@ wut_webtherm_defaultlevels = (30, 35)
def inventory_webtherm(info):
# line[0] is 1.1, 2.1, 3.1, 6.1, 8.1 or 16.1 depending on MIB variant. We chop
# of the first part in order to get independent of that.
- return [ (line[0].split(".")[1], "",
"wut_webtherm_defaultlevels") for
+ return [ (line[0].split(".")[1], "wut_webtherm_defaultlevels")
for
line in info if len(line) == 2 ]
def check_webtherm(item, params, info):
@@ -63,3 +63,4 @@ snmp_info['wut_webtherm'] = (
".1.3.6.1.4.1.5040.1.2", ["1", "2", "3",
"6", "8", "16"], [ "1.2.1.1", "1.3.1.1"
])
snmp_scan_functions['wut_webtherm'] = detect_webtherm
+checkgroup_of["wut_webtherm"] = "room_temperature"
diff --git a/checks/zpool_status b/checks/zpool_status
index cd55f14..cccffd4 100644
--- a/checks/zpool_status
+++ b/checks/zpool_status
@@ -76,7 +76,7 @@ def inventory_zpool_status(info):
else:
return [ (None, None) ]
#
-def check_zpool_status(_no_item, params, info):
+def check_zpool_status(_no_item, _no_params, info):
#print info
for line in info:
l = " ".join(line)
diff --git a/modules/check_mk_base.py b/modules/check_mk_base.py
index e617656..ddd71a0 100755
--- a/modules/check_mk_base.py
+++ b/modules/check_mk_base.py
@@ -742,7 +742,8 @@ def convert_check_info():
"service_description" : service_description,
"has_perfdata" : not not has_perfdata,
"inventory_function" : inventory_function,
- "group" : checkgroup_of.get(check_type),
+ # Insert check name as group if no group is being defined
+ "group" : checkgroup_of.get(check_type,
check_type),
"snmp_info" : snmp_info.get(check_type),
# Sometimes the scan function is assigned to the check_type
# rather than to the base name.
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 9f30be0..c922a97 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -4414,9 +4414,13 @@ class CheckTypeSelection(ListChoice):
def edit_value(valuespec, value):
help = valuespec.help() or ""
- html.write('<tr><td
class=legend><i>%s</i></td>' % help)
+ html.write('<tr>')
+ if help:
+ html.write('<td class=legend><i>%s</i></td>' %
help)
+ html.write("<td class=content>")
+ else:
+ html.write('<td colspan=2 class=content>')
- html.write("<td class=content>")
valuespec.render_input("ve", value)
html.write("</td></tr>")
diff --git a/web/plugins/wato/check_parameters.py b/web/plugins/wato/check_parameters.py
index b4d7f25..11a4aa4 100644
--- a/web/plugins/wato/check_parameters.py
+++ b/web/plugins/wato/check_parameters.py
@@ -803,7 +803,8 @@ checkgroups.append((
"mailqueue_length",
_("Number of mails in outgoing mail queue"),
Tuple(
- help = _("This levels is applied to the number of Email that are currently
in the outgoing mail queue."),
+ help = _("These levels are applied to the number of Email that are "
+ "currently in the outgoing mail queue."),
elements = [
Integer(title = _("Warning at"), label = _("mails")),
Integer(title = _("Critical at"), label =
_("mails"))]),
@@ -815,6 +816,55 @@ checkgroups.append((
None,
None, None))
+checkgroups.append((
+ "zpool_status",
+ _("Check ZFS Storage Pool status"),
+ None,
+ None, None))
+
+checkgroups.append((
+ "room_temperature",
+ _("Room temperature (e.g. external thermal sensors in datacenters)"),
+ Tuple(
+ help = _("Temperature levels for external thermometers that are used "
+ "for monitoring the temperature of a datacenter. An example "
+ "is the webthem from W&T."),
+ elements = [
+ Integer(title = "warning at", unit = u"°C"),
+ Integer(title = "critical at", unit = u"°C"),
+ ]),
+ TextAscii(
+ title = _("Thermomether ID"),
+ help = _("The identificator of the themal sensor.")),
+ "first"))
+
+checkgroups.append((
+ "wmic_process",
+ _("Memory and CPU consumption of processes on Windows (via WMI)"),
+ Tuple(
+ elements = [
+ TextAscii(
+ title = _("Name of the process"),
+ allow_empty = False,
+ ),
+ Integer(title = _("Memory waring at"), unit = "MB"),
+ Integer(title = _("Memory critical at"), unit = "MB"),
+ Integer(title = _("Pagefile warning at"), unit = "MB"),
+ Integer(title = _("Pagefile critical at"), unit = "MB"),
+ Percentage(title = _("CPU usage warning at")),
+ Percentage(title = _("CPU usage critical at")),
+ ],
+ ),
+ TextAscii(
+ title = _("Process name for usage in the Nagios service description"),
+ allow_empty = False),
+ "first"))
+
+
+
+
+
+
# Create rules for check parameters of inventorized checks
for checkgroup, title, valuespec, itemspec, matchtype in checkgroups:
if not valuespec: