Module: check_mk
Branch: master
Commit: c50d2f849df4ee85d41f8de554e6124d3f05a068
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=c50d2f849df4ee…
Author: Konstantin Büttner <kb(a)mathias-kettner.de>
Date: Mon Jan 19 17:53:40 2015 +0100
#1523 lnx_thermal: Now supports setting levels
lnx_thermal can now be configured via the Temperature WATO Rule.
Default behaviour uses trip points if present, otherwise user defined levels.
Due to a changed item name, re-inventory is required.
---
.werks/1523 | 11 +++++++++++
ChangeLog | 2 ++
checkman/lnx_thermal | 38 +++++++++++++++++++++++++-------------
3 files changed, 38 insertions(+), 13 deletions(-)
diff --git a/.werks/1523 b/.werks/1523
new file mode 100644
index 0000000..576a76a
--- /dev/null
+++ b/.werks/1523
@@ -0,0 +1,11 @@
+Title: lnx_thermal: Now supports setting levels
+Level: 1
+Component: checks
+Compatible: incomp
+Version: 1.2.7i1
+Date: 1421686301
+Class: feature
+
+lnx_thermal can now be configured via the Temperature WATO Rule.
+Default behaviour uses trip points if present, otherwise user defined levels.
+Due to a changed item name, re-inventory is required.
diff --git a/ChangeLog b/ChangeLog
index 0cf7f34..7284b35 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -40,6 +40,8 @@
* 1849 netscaler_dnsrates: new check for DNS statistics of Citrix Netscaler Loadbalancers
* 1850 netscaler_health.fan, netscaler_health.psus, netscaler_health.temp: new checks to monitor the health of Citrix Netscaler Loadbalancers
* 1214 ups_bat_temp,ups_capacity,ups_in_freq,ups_in_voltage,ups_out_load,ups_out_voltage: Checks now detect more UPS Devices...
+ * 1523 lnx_thermal: Now supports setting levels...
+ NOTE: Please refer to the migration notes!
* 1457 FIX: logins: new check renamed from "users" check...
NOTE: Please refer to the migration notes!
* 1762 FIX: lnx_thermal: Now ignoring trip points with level 0...
diff --git a/checkman/lnx_thermal b/checkman/lnx_thermal
index 0418214..390f013 100644
--- a/checkman/lnx_thermal
+++ b/checkman/lnx_thermal
@@ -4,25 +4,37 @@ catalog: os/hardware
license: GPL
distribution: check_mk
description:
- This check uses the temperature information provided by the kernel in
+ This check monitors the temperature provided by the kernel in
/sys/class/thermal/thermal_zone* and reports values in °C
- The measured value is matched against levels delivered by the kernel.
- Returns {CRIT} if the kernel reports {hot} or {critical} state,
- {WARN} on any other non ok state and {OK} if the temperature is
- considered to be within normal operation temperature levels.
-
item:
- The ID of the thermal zone
-
-examples:
- # adding a check for /sys/class/thermal/thermal_zone0
- checks += [
- ( "localhost", "lnx_thermal", "0", None )
- ]
+ "Zone "+(The ID of the thermal zone)
perfdata:
One value: The current temperature in °C
inventory:
Creates one check for earch thermal zone.
+
+[parameters]
+This checks parameters are a dictionary with the
+following (optional) keys:
+
+ {"levels"}: A tuple (warn, crit) containing the upper levels. Default: (70, 80)
+
+ {"levels_lower"}: A tuple (warn, crit) containing the lower levels. No defaults.
+
+ {"output_unit"}: "c", "f" or "k", the check will output the temperature in the
+specified unit. If this is not set, output is in degrees Celsius.
+
+ {"input_unit"}: "c, "f" or "k". By default, the check interprets the sensor value
+according to the unit sent by the device. This key allows to override that. Tread
+lightly, as this may lead to a misinterpreted temperature. Should only be used if
+the device reports its unit incorrectly.
+
+ {"device_levels_handling"]: How the check treats the device's internal levels
+versus the ones you specify yourself. The following options are supported: "best"
+results in the best status between yours and the device's levels, "worst" in the
+worst, "usr" ignore's the device's levels, "dev" ignores yours, usrdefault and
+devdefault uses your/the devices set of levels if present, otherwise the other
+respectively. Default setting is "devdefault"
Module: check_mk
Branch: master
Commit: b6e0de08afa697b1bf1a42cb11a5b5843d009951
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=b6e0de08afa697…
Author: Goetz Golla <gg(a)mathias-kettner.de>
Date: Mon Jan 19 17:50:00 2015 +0100
#1852 FIX solaris_multipath: this check now works with inventory to remember the number of total paths
Since the current number of total paths has been reported to decrease when paths are lost, the check
has been modified to remember the total number of paths during inventory and compare the current number of
active paths with this remembered value. See also: the check man page.
---
.werks/1852 | 11 +++++++++++
ChangeLog | 2 ++
checkman/solaris_multipath | 25 +++++++++++++++++--------
checks/solaris_multipath | 36 +++++++++++++++++++++++-------------
4 files changed, 53 insertions(+), 21 deletions(-)
diff --git a/.werks/1852 b/.werks/1852
new file mode 100644
index 0000000..fa1dea2
--- /dev/null
+++ b/.werks/1852
@@ -0,0 +1,11 @@
+Title: solaris_multipath: this check now works with inventory to remember the number of total paths
+Level: 1
+Component: checks
+Compatible: incomp
+Version: 1.2.7i1
+Date: 1421685959
+Class: fix
+
+Since the current number of total paths has been reported to decrease when paths are lost, the check
+has been modified to remember the total number of paths during inventory and compare the current number of
+active paths with this remembered value. See also: the check man page.
diff --git a/ChangeLog b/ChangeLog
index 0cf7f34..9c35fdd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -81,6 +81,8 @@
* 1814 FIX: agent_ibmsvc: Fixed missing executable flag
* 1817 FIX: The Check_MK service did not result in CRITICAL/WARNING states when using Nagios as core...
* 1844 FIX: oracle_crs_res: fix computation of node a ressource is running on...
+ * 1852 FIX: solaris_multipath: this check now works with inventory to remember the number of total paths...
+ NOTE: Please refer to the migration notes!
Multisite:
* 1758 Improved exception hander: Shows details without additional debug request, added mailto link for error report...
diff --git a/checkman/solaris_multipath b/checkman/solaris_multipath
index 6eb2a61..da56a64 100644
--- a/checkman/solaris_multipath
+++ b/checkman/solaris_multipath
@@ -4,18 +4,27 @@ catalog: os/storage
license: GPL
distribution: check_mk
description:
- This check monitors the state of multipathed SCSI devices on
- Solaris 10 systems using the {"mpathadm"} utility.
- It alerts if missing paths are reported by the OS.
- The check will only return a {"WARNING"} if at least 50% of the paths to a
- LUN are working.
- The alert will return {"CRITICAL"} if less than 50% of the paths
- to a LUN are working.
+ This check monitors the state of multipathed SCSI devices on Solaris 10
+ systems using the {"mpathadm"} utility. It alerts if missing paths are
+ reported by the OS.
+
+ Missing paths are determined by comparing the total number of paths with
+ the current number of paths. The total number of paths is taken from the
+ time the last inventory was made.
+
+ The check will return a {"WARNING"} if at least 50% of the paths to
+ a LUN are working. The alert will return {"CRITICAL"} if less than 50%
+ of the paths to a LUN are working.
+
+ The check will also return a {"WARNING"} if the number of total paths was
+ not yet inventorized, or if the number of total paths has increased since
+ last inventory.
item:
A service the WWID of the LUN.
inventory:
- One service is created for each LUN that is reported by mpathadm
+ One service is created for each LUN that is reported by mpathadm. The total
+ number of paths for each created service is also remembered during inventory.
diff --git a/checks/solaris_multipath b/checks/solaris_multipath
index 7c22a33..f5f0210 100644
--- a/checks/solaris_multipath
+++ b/checks/solaris_multipath
@@ -24,31 +24,41 @@
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
+# Example output:
# <<<solaris_multipath>>>
# /dev/rdsk/c4t600601608CB02A00DCFD2EEB19A0E111d0s2 4 4
-
def inventory_solaris_multipath(info):
- inventory = []
for device, total, ok in info:
item = device.split('/')[-1]
- inventory.append( (item, None) )
- return inventory
-
+ yield item, '{ "total": %s }' % total
-def check_solaris_multipath(item, _no_params, info):
+def check_solaris_multipath(item, params, info):
for device, total, ok in info:
if item == device.split('/')[-1]:
- total = int(total)
+
+ itotal = params.get("total") # total from last service discovery
ok = int(ok)
- if total == ok:
- return 0, "%d paths up" % total
- elif float(ok) / total <= 0.5: # critical if only half of paths ok
- return 2, "only %d/%d paths up" % (ok, total)
+ total = int(total)
+
+
+ if not itotal:
+ state = 1
+ infotext = "%d of %d paths up, but total paths not yet inventorized, redo service discovery" % (ok, total)
else:
- return 1, "only %d/%d paths up" % (ok, total)
+ itotal = int(itotal)
+ infotext = "%d of %d paths up" % (ok, itotal)
+ if total > itotal:
+ state = 1
+ infotext += ", but total paths increased to %d, redo service discovery" % total
+ elif itotal == ok:
+ state = 0
+ elif itotal >= ok * 2: # less than half of paths ok
+ state = 2
+ else:
+ state = 1
- return 3, "Path not found"
+ return state, infotext
check_info["solaris_multipath"] = {
Module: check_mk
Branch: master
Commit: e4c3c5f7a43b7f384987ee35bbbb49d518d874c7
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=e4c3c5f7a43b7f…
Author: Konstantin Büttner <kb(a)mathias-kettner.de>
Date: Mon Jan 19 17:17:41 2015 +0100
temperature.include: Fixed exception
---
checks/temperature.include | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/checks/temperature.include b/checks/temperature.include
index ad59dae..b281112 100644
--- a/checks/temperature.include
+++ b/checks/temperature.include
@@ -156,7 +156,7 @@ def check_temperature(reading, params, dev_unit = "c",
elif dlh == "dev":
warn, crit, warn_lower, crit_lower = dev_warn, dev_crit, dev_warn_lower, dev_crit_lower
- # The following for cases are all identical, if either *only* device levels or *only*
+ # The following four cases are all identical, if either *only* device levels or *only*
# user levels exist (or no levels at all).
# Use least critical of your and device's levels. If just one of both is defined,
@@ -191,7 +191,7 @@ def check_temperature(reading, params, dev_unit = "c",
if dev_levels_lower:
warn_lower, crit_lower = dev_levels_lower
else:
- warn, crit = usr_warn_lower, usr_crit_lower
+ warn_lower, crit_lower = usr_warn_lower, usr_crit_lower
# Now finally compute status. Hooray!
status = check_temp_levels(temp, warn, crit, warn_lower, crit_lower)
Module: check_mk
Branch: master
Commit: b6a0f4fb841c5856d6076bf4144b7b7dce38fd86
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=b6a0f4fb841c58…
Author: Bastian Kuhn <bk(a)mathias-kettner.de>
Date: Mon Jan 19 14:55:40 2015 +0100
Changed Werk 1213
---
.werks/1213 | 5 ++---
ChangeLog | 2 +-
modules/notify.py | 4 ++++
notifications/asciimail | 1 -
4 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/.werks/1213 b/.werks/1213
index 33c573c..d734c0e 100644
--- a/.werks/1213
+++ b/.werks/1213
@@ -1,4 +1,4 @@
-Title: New Macro $SERVICEDESC_FOR_URL$ for asciimail
+Title: New Notification macros $SERVICEFORURL$ and $HOSTFORURL$
Level: 1
Component: notifications
Class: feature
@@ -7,7 +7,6 @@ State: unknown
Version: 1.2.7i1
Date: 1421430462
-The new macrco $SERVICEDESC_FOR_URL$ can be used in the body of asciimails. The Macro replaces
-whitespaces in the servicename with %20. This makes it possible to create custom urls who can e.g. be used
+The two new macrcos can be used in notifications to create custom urls who can e.g. be used
to ackknowledge services.
diff --git a/ChangeLog b/ChangeLog
index 0f3d229..0cf7f34 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -122,7 +122,7 @@
Notifications:
* 1662 notification plugin spectrum: finalized script. now able to handle host notications
- * 1213 New Macro $SERVICEDESC_FOR_URL$ for asciimail...
+ * 1213 New Notification macros $SERVICEFORURL$ and $HOSTFORURL$...
* 1661 FIX: mknotifyd: improved performance when receiving forwarded notifications
* 1664 FIX: mknotifyd: further performance improvements for notification forwarding
* 1205 FIX: RBN: Fixed match contactgroup condition...
diff --git a/modules/notify.py b/modules/notify.py
index a94d260..bc28896 100644
--- a/modules/notify.py
+++ b/modules/notify.py
@@ -1757,6 +1757,10 @@ def complete_raw_context(raw_context):
if key.endswith("STATE"):
raw_context[key[:-5] + "SHORTSTATE"] = value[:4]
+ if raw_context["WHAT"] == "SERVICE":
+ raw_context['SERVICEFORURL'] = urllib.quote(raw_context['SERVICEDESC'])
+ raw_context['HOSTFORURL'] = urllib.quote(raw_context['HOSTNAME'])
+
convert_context_to_unicode(raw_context)
diff --git a/notifications/asciimail b/notifications/asciimail
index 9de5fa0..5d6b203 100644
--- a/notifications/asciimail
+++ b/notifications/asciimail
@@ -159,7 +159,6 @@ def construct_content(context):
tmpl_body += context["PARAMETER_SERVICE_BODY"]
else:
tmpl_body += tmpl_service_body
- context['SERVICEDESC_FOR_URL'] = context['SERVICEDESC'].replace(' ','%20')
context['SUBJECT'] = substitute_context(tmpl, context)
body = substitute_context(tmpl_body, context)