Module: check_mk
Branch: master
Commit: bfc6de327c012fc5b0a3c13f1db90ca4fe81f533
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=bfc6de327c012f…
Author: Bernd Stroessenreuther <bs(a)mathias-kettner.de>
Date: Mon Dec 16 17:36:18 2013 +0100
hitachi_hnas_cpu: New check for CPU utilization of Hitachi HNAS devices
---
.werks/316 | 8 ++++
ChangeLog | 1 +
checkman/hitachi_hnas_cpu | 43 +++++++++++++++++++
checks/hitachi_hnas_cpu | 59 +++++++++++++++++++++++++++
checks/hitachi_hnas_pnode | 6 +--
checks/hitachi_hnas_vnode | 6 +--
pnp-templates/check_mk-hitachi_hnas_cpu.php | 1 +
web/plugins/perfometer/check_mk.py | 1 +
8 files changed, 119 insertions(+), 6 deletions(-)
diff --git a/.werks/316 b/.werks/316
new file mode 100644
index 0000000..ae5f1f5
--- /dev/null
+++ b/.werks/316
@@ -0,0 +1,8 @@
+Title: hitachi_hnas_cpu: New check for CPU utilization of Hitachi HNAS devices
+Level: 2
+Component: checks
+Version: 1.2.5i1
+Date: 1387211739
+Class: feature
+
+
diff --git a/ChangeLog b/ChangeLog
index d121a2a..3ac4b1d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,7 @@
* 0107 stulz_alerts, stulz_powerstate, stulz_temp, stulz_humidity: New Checks for Stulz clima devices
* 0075 raritan_pdu_inlet: new check to monitor inlet sensors of the Raritan PX-2000 PDUs
* 0315 hitachi_hnas_quorumdevice, hitachi_hnas_pnode, hitachi_hnas_vnode: New checks for Hitachi HNAS devices
+ * 0316 hitachi_hnas_cpu: New check for CPU utilization of Hitachi HNAS devices
* 0103 FIX: services: Fixed bug with service inventory defined in main.mk...
* 0299 FIX: borcade_mlx_fan: Prettified output, handling "other" state now
* 0300 FIX: cisco_fru_power: Trying not to inventorize not plugged in FRUs...
diff --git a/checkman/hitachi_hnas_cpu b/checkman/hitachi_hnas_cpu
new file mode 100644
index 0000000..9920f83
--- /dev/null
+++ b/checkman/hitachi_hnas_cpu
@@ -0,0 +1,43 @@
+title: Hitachi HNAS: CPU Utilization of PNodes
+agents: snmp
+catalog: hw/network/brocade
+license: GPL
+distribution: check_mk
+description:
+ Checks the Module CPU Utilization of the physical Nodes (PNodes) of
+ Hitachi HNAS storage systems.
+
+ {WARN} or {CRIT} is returned, if the usage is above
+ given thresholds. {OK} is returned otherwise.
+
+item:
+ The ID of the PNode.
+
+examples:
+ # set default levels to 70 and 80 percent:
+ hitachi_hnas_cpu_default_levels = { "levels": (70.0, 80.0) }
+
+ # Check CPU Utilization of PNode with ID 1 on a HNAS called my-hnas with default levels
+ checks += [
+ ("my-hnas", "hitachi_hnas_cpu", '1', hitachi_hnas_cpu_default_levels)
+ ]
+
+ # or use individual levels for warn and crit
+ checks += [
+ ("my-hnas", "hitachi_hnas_cpu", '1', {'levels': (75.0, 85.0)})
+ ]
+
+perfdata:
+ One value cpu_util is returned which represents the CPU Utilization (in percent)
+ together with warn and crit levels.
+
+inventory:
+ Finds one item per PNode
+
+[parameters]
+parameters (dict): with the element
+{"levels"}: (float, float): levels of CPU utilization for {WARN} and {CRIT} in percent
+
+[configuration]
+hitachi_hnas_cpu_default_levels(dict): The standard levels for {WARN} and
+ {CRIT}, preset to { "levels": (80.0, 90.0) }
diff --git a/checks/hitachi_hnas_cpu b/checks/hitachi_hnas_cpu
new file mode 100644
index 0000000..c1c74f7
--- /dev/null
+++ b/checks/hitachi_hnas_cpu
@@ -0,0 +1,59 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2013 mk(a)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-
+# ails. 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.
+
+hitachi_hnas_cpu_default_levels = { "levels" : (80.0, 90.0) }
+
+def inventory_hitachi_hnas_cpu(info):
+ inventory = []
+ for id, util in info:
+ inventory.append( (id, hitachi_hnas_cpu_default_levels) )
+ return inventory
+
+def check_hitachi_hnas_cpu(item, params, info):
+ warn, crit = params["levels"]
+ rc = 0
+
+ for id, util in info:
+ if id == item:
+ util=float(util)
+ if util > warn:
+ rc = 1
+ if util > crit:
+ rc = 2
+ perfdata = [ ('cpu_util', str(util) + '%', warn, crit, 0, 100) ]
+ return rc, "CPU utilization is %s%%" % util, perfdata
+
+ return 3, "No CPU utilization found"
+
+check_info["hitachi_hnas_cpu"] = {
+ "check_function" : check_hitachi_hnas_cpu,
+ "inventory_function" : inventory_hitachi_hnas_cpu,
+ "service_description" : "CPU utilization PNode %s",
+ "has_perfdata" : True,
+ "snmp_info" : (".1.3.6.1.4.1.11096.6.1.1.6.1.2.1", [1, 3]), # ID, Utilization
+ "snmp_scan_function" : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.11096.6"),
+ "group" : "cpu_utilization_multiitem",
+}
diff --git a/checks/hitachi_hnas_pnode b/checks/hitachi_hnas_pnode
index 62ca333..1b57478 100644
--- a/checks/hitachi_hnas_pnode
+++ b/checks/hitachi_hnas_pnode
@@ -24,7 +24,7 @@
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
-def combine_item(id, name):
+def hitachi_hnas_pnode_combine_item(id, name):
combined = str(id)
if name != "":
combined += " " + name
@@ -33,7 +33,7 @@ def combine_item(id, name):
def inventory_hitachi_hnas_pnode(info):
inventory = []
for id, name, status in info:
- inventory.append( (combine_item(id, name), None) )
+ inventory.append( (hitachi_hnas_pnode_combine_item(id, name), None) )
return inventory
def check_hitachi_hnas_pnode(item, _no_params, info):
@@ -47,7 +47,7 @@ def check_hitachi_hnas_pnode(item, _no_params, info):
)
for id, name, status in info:
- if combine_item(id, name) == item:
+ if hitachi_hnas_pnode_combine_item(id, name) == item:
status = int(status)
if status == 0 or status >= len(statusmap):
return 3, "PNode reports unidentified status %s" % status
diff --git a/checks/hitachi_hnas_vnode b/checks/hitachi_hnas_vnode
index 3b8bc1f..36912da 100644
--- a/checks/hitachi_hnas_vnode
+++ b/checks/hitachi_hnas_vnode
@@ -24,7 +24,7 @@
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
-def combine_item(id, name):
+def hitachi_hnas_vnode_combine_item(id, name):
combined = str(id)
if name != "":
combined += " " + name
@@ -33,7 +33,7 @@ def combine_item(id, name):
def inventory_hitachi_hnas_vnode(info):
inventory = []
for id, name, status, is_admin, hosted_by in info:
- inventory.append( (combine_item(id, name), None) )
+ inventory.append( (hitachi_hnas_vnode_combine_item(id, name), None) )
return inventory
def check_hitachi_hnas_vnode(item, _no_params, info):
@@ -44,7 +44,7 @@ def check_hitachi_hnas_vnode(item, _no_params, info):
)
for id, name, status, is_admin, hosted_by in info:
- if combine_item(id, name) == item:
+ if hitachi_hnas_vnode_combine_item(id, name) == item:
status = int(status)
nodetype = ""
if status == 0 or status >= len(statusmap):
diff --git a/pnp-templates/check_mk-hitachi_hnas_cpu.php b/pnp-templates/check_mk-hitachi_hnas_cpu.php
new file mode 120000
index 0000000..104023f
--- /dev/null
+++ b/pnp-templates/check_mk-hitachi_hnas_cpu.php
@@ -0,0 +1 @@
+check_mk-hr_cpu.php
\ No newline at end of file
diff --git a/web/plugins/perfometer/check_mk.py b/web/plugins/perfometer/check_mk.py
index 1a21a18..2abf9db 100644
--- a/web/plugins/perfometer/check_mk.py
+++ b/web/plugins/perfometer/check_mk.py
@@ -429,6 +429,7 @@ perfometers["check_mk-netapp_cpu"] = perfometer_cpu_utilization
perfometers["check_mk-cisco_cpu"] = perfometer_cpu_utilization
perfometers["check_mk-juniper_cpu"] = perfometer_cpu_utilization
perfometers["check_mk-brocade_mlx.module_cpu"] = perfometer_cpu_utilization
+perfometers["check_mk-hitachi_hnas_cpu"] = perfometer_cpu_utilization
def perfometer_ps_perf(row, check_command, perf_data):
perf_dict = dict([(p[0], float(p[1])) for p in perf_data])
Module: check_mk
Branch: master
Commit: eed452adfac3ec3af8caf9f3629abdd4b9338560
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=eed452adfac3ec…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Dec 16 17:13:20 2013 +0100
Prepare against invalid output from local -a
---
modules/notify.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/notify.py b/modules/notify.py
index c845081..e0b98ae 100644
--- a/modules/notify.py
+++ b/modules/notify.py
@@ -535,7 +535,7 @@ def notify_via_email(context, write_into_spoolfile):
# Our resultion in future: use /usr/sbin/sendmail directly.
# Our resultion in the present: look with locale -a for an existing UTF encoding
# and use that.
- for encoding in os.popen("locale -a"):
+ for encoding in os.popen("locale -a 2>/dev/null"):
l = encoding.lower()
if "utf8" in l or "utf-8" in l or "utf.8" in l:
encoding = encoding.strip()
Module: check_mk
Branch: master
Commit: e58cd3d1b46fe0bb572cbc84e290a7d406100c49
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=e58cd3d1b46fe0…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Dec 16 16:23:37 2013 +0100
sms: now searching PATH for sendsms and smssend commands
In previous versions the notification plugin only used the sendsms
command and was only searching in /usr/bin and /usr/local/bin.
This is more flexible now.
---
.werks/362 | 12 ++++++++++++
ChangeLog | 1 +
notifications/sms | 16 +++++++++-------
3 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/.werks/362 b/.werks/362
new file mode 100644
index 0000000..c93f3b0
--- /dev/null
+++ b/.werks/362
@@ -0,0 +1,12 @@
+Title: sms: now searching PATH for sendsms and smssend commands
+Level: 1
+Component: notifications
+Class: feature
+State: unknown
+Version: 1.2.5i1
+Date: 1387207352
+Targetversion: future
+
+In previous versions the notification plugin only used the sendsms
+command and was only searching in /usr/bin and /usr/local/bin.
+This is more flexible now.
diff --git a/ChangeLog b/ChangeLog
index f4acf3e..a722b8a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -58,6 +58,7 @@
* 0361 FIX: The page linked by "new rule" can now be bookmarked again
Notifications:
+ * 0362 sms: now searching PATH for sendsms and smssend commands...
* 0108 FIX: Prevent service notification on host alerts...
* 0058 FIX: Fix email notifications containing non-ASCII characters in some situtations...
diff --git a/notifications/sms b/notifications/sms
index 3820672..7fdcf17 100755
--- a/notifications/sms
+++ b/notifications/sms
@@ -4,14 +4,16 @@
# Note: You have to add the side user to the sendsms group
# and restart the site
-import os
+import os, sys
-send_path = '/usr/bin/sendsms'
-if not os.path.exists(send_path):
- send_path = '/usr/local/bin/sendsms'
- if not os.path.exists(send_path):
- print "SMS Tools not found"
- os._exit(1)
+send_path = None
+for binary in [ 'sendsms', 'smssend' ]:
+ if os.system('which %s >/dev/null' % binary) == 0:
+ send_path = binary
+
+if not send_path:
+ sys.stderr.write('Error: SMS Tools binaries (sendsms or smssend) not found\n')
+ sys.exit(1)
max_len = 160
message = os.environ['NOTIFY_HOSTNAME'] + " "
Module: check_mk
Branch: master
Commit: ef6ecc8cd5ccd63c049ce3af622bdd594935ec5d
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=ef6ecc8cd5ccd6…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Dec 16 16:08:37 2013 +0100
FIX The page linked by "new rule" can now be bookmarked again
---
.werks/361 | 10 ++++++++++
ChangeLog | 1 +
web/htdocs/wato.py | 2 +-
3 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/.werks/361 b/.werks/361
new file mode 100644
index 0000000..9a90719
--- /dev/null
+++ b/.werks/361
@@ -0,0 +1,10 @@
+Title: The page linked by "new rule" can now be bookmarked again
+Level: 1
+Component: wato
+Class: fix
+State: unknown
+Version: 1.2.5i1
+Date: 1387206492
+Targetversion: future
+
+
diff --git a/ChangeLog b/ChangeLog
index ade0b7b..a8108f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -53,6 +53,7 @@
* 0330 FIX: Improved performance of WATO slave push with a large user base...
* 0331 FIX: LDAP diagnostic LOG can now have the $OMD_SITE$ macro configured via WATO...
* 0332 FIX: Own host tag groups without topics resulted in two groups "Host tags" in the rule editor
+ * 0361 FIX: The page linked by "new rule" can now be bookmarked again
Notifications:
* 0108 FIX: Prevent service notification on host alerts...
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 8e2f0be..3c86012 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -10790,7 +10790,7 @@ def mode_rulesets(phase):
html.write('</div>')
def create_new_rule_form(rulespec, hostname = None, item = None, varname = None):
- html.begin_form("new_rule", add_transid = False, method = "POST")
+ html.begin_form("new_rule", add_transid = False)
html.write('<table>')
if hostname: