Module: check_mk
Branch: master
Commit: cf469d7c09f12114683ac926a0625ee1c2fa3cd4
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=cf469d7c09f121…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Nov 28 10:22:01 2013 +0100
FIX Fixed assuming states of services with backslashes in descriptions
There was a bug which prevented assumind states for services with backslashes
in the service descriptions. In former versions, this was not possible. One
could click on the assumption icon, but after reloading the page, the
assumed state had not been set.
---
.werks/287 | 11 +++++++++++
ChangeLog | 3 +++
web/htdocs/bi.py | 2 +-
3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/.werks/287 b/.werks/287
new file mode 100644
index 0000000..72e6b69
--- /dev/null
+++ b/.werks/287
@@ -0,0 +1,11 @@
+Title: Fixed assuming states of services with backslashes in descriptions
+Level: 1
+Component: bi
+Version: 1.2.3i7
+Date: 1385630366
+Class: fix
+
+There was a bug which prevented assumind states for services with backslashes
+in the service descriptions. In former versions, this was not possible. One
+could click on the assumption icon, but after reloading the page, the
+assumed state had not been set.
diff --git a/ChangeLog b/ChangeLog
index 0930012..f7c377c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -75,6 +75,9 @@
* 0032 FIX: Fixed problem when forwarding notification mails in windows...
* 0218 FIX: Fixed rendering of HTML mails for Outlook (at least 2013)...
+ BI:
+ * 0287 FIX: Fixed assuming states of services with backslashes in descriptions...
+
Reporting & Availability:
* 0051 Option for showing timeline directly in availability table...
* 0052 Visual colorization of availability according to levels...
diff --git a/web/htdocs/bi.py b/web/htdocs/bi.py
index fc6d18c..85a841c 100644
--- a/web/htdocs/bi.py
+++ b/web/htdocs/bi.py
@@ -1531,7 +1531,7 @@ def render_assume_icon(site, host, service):
(_("Assume another state for this item (reload page to activate)"),
# MIST: DAS HIER MUSS verfünftig für Javascript encodiert werden.
# Das Ausgangsmaterial sind UTF-8 kodierte str-Objekte.
- site, host, service != None and service or '')
+ site, host, service != None and service.replace('\\', '\\\\') or '')
current = str(ass).lower()
return u'<img state="%s" class=assumption %s src="images/assume_%s.png">\n' % (current, mousecode, current)
Better handling for non existant ramdisks
Message-ID: <5296ed9e.LswVwPStO3p8F6Fa%lm(a)mathias-kettner.de>
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Module: check_mk
Branch: master
Commit: ec3a9b11fd5940f293a32bb1c2b21a6ea7b2b9a3
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=ec3a9b11fd5940…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Nov 28 08:01:37 2013 +0100
FIX esx_vsphrere_counters.ramdisk: Better handling for non existant ramdisks
We sadly do not get the total ramdisk sizes from the ESX host, so we need to assume
that equal named ramdisks on the ESX hosts are all of the same size. The known
disks are configured in the check.
In the past, all ramdisks changed to <tt>UNKNOWN</tt>, once at least one ramdisk
was not known to the check. This has been changed now, to show only the not handled
ramdisk as UNKNOWN.
---
.werks/286 | 14 ++++++++++++++
ChangeLog | 1 +
checks/esx_vsphere_counters | 8 +++++++-
3 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/.werks/286 b/.werks/286
new file mode 100644
index 0000000..975b0c9
--- /dev/null
+++ b/.werks/286
@@ -0,0 +1,14 @@
+Title: esx_vsphrere_counters.ramdisk: Better handling for non existant ramdisks
+Level: 1
+Component: checks
+Version: 1.2.3i7
+Date: 1385621928
+Class: fix
+
+We sadly do not get the total ramdisk sizes from the ESX host, so we need to assume
+that equal named ramdisks on the ESX hosts are all of the same size. The known
+disks are configured in the check.
+
+In the past, all ramdisks changed to <tt>UNKNOWN</tt>, once at least one ramdisk
+was not known to the check. This has been changed now, to show only the not handled
+ramdisk as UNKNOWN.
diff --git a/ChangeLog b/ChangeLog
index a8cf663..0930012 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -31,6 +31,7 @@
* 0037 FIX: checkman browser (cmk -m) was not working properly in network subtree...
* 0283 FIX: Interface Checks: ignore invalid error counts while interface is down...
* 0081 FIX: Fixed corruption in SNMP walks created with cmk --snmpwalk...
+ * 0286 FIX: esx_vsphrere_counters.ramdisk: Better handling for non existant ramdisks...
Multisite:
* 0001 New filters for selecting several host/service-groups at once...
diff --git a/checks/esx_vsphere_counters b/checks/esx_vsphere_counters
index fd04735..eaabcbd 100644
--- a/checks/esx_vsphere_counters
+++ b/checks/esx_vsphere_counters
@@ -282,6 +282,8 @@ check_info['esx_vsphere_counters.uptime'] = {
# +----------------------------------------------------------------------+
# We assume that all ramdisks have the same size (in mb) on all hosts
+# -> To get size infos about unknown ramdisks, connect to the ESX host via
+# SSH and check the size of the disk via "du" command
esx_vsphere_counters_ramdisk_sizes = {
'root': 32,
'etc': 28,
@@ -289,6 +291,7 @@ esx_vsphere_counters_ramdisk_sizes = {
'hostdstats': 319,
'snmptraps': 1,
'upgradescratch': 300,
+ #'ibmscratch': ,
}
def inventory_esx_vsphere_counters_ramdisk(info):
@@ -309,7 +312,10 @@ def check_esx_vsphere_counters_ramdisk(item, params, info):
try:
size_mb = esx_vsphere_counters_ramdisk_sizes[name]
except KeyError:
- return 3, 'Unhandled ramdisk found (%s)' % name
+ if item == name:
+ return 3, 'Unhandled ramdisk found (%s)' % name
+ else:
+ continue
used_mb = float(counter) / 1000
avail_mb = size_mb - used_mb
ramdisks.append((name, size_mb, avail_mb))
Module: check_mk
Branch: master
Commit: 9d2270d6fe8386c0c854d179b046618b986a395c
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=9d2270d6fe8386…
Author: Andreas Boesl <ab(a)mathias-kettner.de>
Date: Wed Nov 27 19:27:25 2013 +0100
windows_agent: each script can now be configured to run sync / async
The windows agent got two new configuration options <br>
For the <tt>[local]</tt> and <tt>plugins</tt> sections the parameter
<tt>execution</tt>, which allows to configure if a script should be executed
afterwards or while the agent collect its general data.
<br>
The <tt>[global]</tt> section now has the parameter <tt>async_script_execution</tt>
where you can configure whether 'delayed' scripts should be executed sequential or parallel.
You can find more information in our official documentation at the page "Monitoring Windows".
---
.werks/236 | 16 ++
ChangeLog | 32 +--
agents/windows/check_mk_agent.cc | 433 +++++++++++++++++++++----------------
agents/windows/check_mk_agent.exe | Bin 151040 -> 152064 bytes
agents/windows/install_agent.exe | Bin 146758 -> 146971 bytes
5 files changed, 259 insertions(+), 222 deletions(-)
Diff: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commitdiff;h=9d2270d6fe…
Module: check_mk
Branch: master
Commit: 292208dfb7c4e58838ce5b1e296b7d1946098e26
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=292208dfb7c4e5…
Author: Bastian Kuhn <bk(a)mathias-kettner.de>
Date: Wed Nov 27 16:38:05 2013 +0100
juniper_cpu: New check for CPU utilization on Juniper switches
---
.werks/100 | 8 ++++
ChangeLog | 32 +-------------
checkman/juniper_cpu | 23 ++++++++++
checks/check_http | 2 +
checks/juniper_cpu | 85 ++++++++++++++++++++++++++++++++++++
web/plugins/perfometer/check_mk.py | 1 +
6 files changed, 121 insertions(+), 30 deletions(-)
diff --git a/.werks/100 b/.werks/100
new file mode 100644
index 0000000..fd54f80
--- /dev/null
+++ b/.werks/100
@@ -0,0 +1,8 @@
+Title: juniper_cpu: New check for CPU utilization on Juniper switches
+Level: 1
+Component: checks
+Version: 1.2.3i7
+Date: 1385566659
+Class: feature
+
+
diff --git a/ChangeLog b/ChangeLog
index 62a453c..7a34945 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -20,9 +20,10 @@
* 0214 Logwatch: context lines can now be disabled using nocontext=1...
* 0038 casa_cpu_mem casa_cpu_temp casa_cpu_util casa_fan casa_power: New checks for casa Cable Modem Termination Systems...
* 0097 arc_raid_status: New check for Areca RAID controllers
+ * 0070 cmciii_lcp_airin cmciii_lcp_airout cmciii_lcp_fans cmciii_lcp_waterflow cmciii_lcp_waterin cmciii_lcp_waterout: new checks for the Rittal CMC-III LCP device
* 0098 apc_inrow_airflow, apc_inrow_fanspeed, apc_inrow_temp: New checks for APC inrow devices
* 0099 apc_mod_pdu_modules: New check for APC Modular Power Distribution Unit
- * 0070 cmciii_lcp_airin cmciii_lcp_airout cmciii_lcp_fans cmciii_lcp_waterflow cmciii_lcp_waterin cmciii_lcp_waterout: new checks for the Rittal CMC-III LCP device
+ * 0100 juniper_cpu: New check for CPU utilization on Juniper switches
* 0024 FIX: cisco_wlc: removed check configuration parameter ap_model...
* 0065 FIX: veeam_client: check behaviour improved when backup is in progress
* 0066 FIX: veeam_jobs: check behaviour improved when backup is in progress
@@ -92,35 +93,6 @@
* 0233 FIX: Fixed missing entries in log file and availability view...
- * 0235 table headers are now omitted if all fields are empty and no table action is set
- * 0048 FIX: Fixed locking issue on host diagnose page
- * 0048 FIX: Tests on host diagnose page are executed parallel now...
- * 0033 FIX: Fixed problem when saving settings in WATOs host diagnostic page...
- * 0205 FIX: NagVis related permissions of roles can be edited again...
- * 0207 FIX: Explicit communities were not saved in all cases...
- * 0094 FIX: Hide SNMPv3 credentials in WATO...
- * 0212 FIX: Fixed broken site edit page in case a TCP socket has been configured...
- * 0095 FIX: Fixed problem with portnumber in Wato Distributed Monitoring dialog
- * 0213 FIX: LDAP: Various small improvements for handling the LDAP user connector...
- * 0039 FIX: Fixed exception on displaying WATO helptexts in the global settings...
- * 0219 FIX: Fixed display problems in WATO folders with long contact group names
- * 0220 FIX: Added HTML escaping to several global settings attributes...
- * 0234 FIX: Improved handling of interface inventory states / types...
-
- Notifications:
- * 0005 Added notification script for sending SMS via mobilant.com...
- * 0032 FIX: Fixed problem when forwarding notification mails in windows...
- * 0218 FIX: Fixed rendering of HTML mails for Outlook (at least 2013)...
-
- Reporting & Availability:
- * 0051 Option for showing timeline directly in availability table...
- * 0052 Visual colorization of availability according to levels...
- * 0054 New labelling options for availability table...
- * 0055 Allow grouping by host, host group or service group...
- * 0056 New concept of service periods in availability reporting...
- * 0002 You can now annotate events in the availability reporting...
-
- Event Console:
<<<<<<< HEAD
* 0026 FIX: snmptd_mkevent.py: fixed crash on startup
* 0036 FIX: fixed bug in multisite command execution...
diff --git a/checkman/juniper_cpu b/checkman/juniper_cpu
new file mode 100644
index 0000000..a81fe8d
--- /dev/null
+++ b/checkman/juniper_cpu
@@ -0,0 +1,23 @@
+title: CPU utilization of the last 1/5/15 minutes
+agents: snmp
+catalog: hw/network/juniper
+license: GPL
+distribution: check_mk
+description:
+ Check CPU utilization of the last 1/5/15 minutes in percent on Juniper devices.
+
+perfdata:
+ util1: The CPU utilization of the last 1 minutes in percent.
+ util5: The CPU utilization of the last 5 minutes in percent.
+ util15: The CPU utilization of the last 15 minutes in percent.
+
+inventory:
+ One service for each Routing Engine will be creted
+
+[parameters]
+warning (int): The percentage of CPU utilization that triggers a warning level.
+critical (int): The percentage of CPU utilization that triggers a critical level.
+
+[configuration]
+juniper_cpu_default_levels (int, int): Default levels for waring and critical used
+ by inventorized checks. This is preset to {(80.0, 90.0)}
diff --git a/checks/check_http b/checks/check_http
index 7e8b422..bdbce5f 100644
--- a/checks/check_http
+++ b/checks/check_http
@@ -125,6 +125,8 @@ def check_http_arguments(params):
def check_http_desc(params):
if params[0].startswith("^"):
return params[0][1:]
+ if params[1].get("ssl"):
+ return "HTTPS %s" % params[0]
return "HTTP %s" % params[0]
active_check_info['http'] = {
diff --git a/checks/juniper_cpu b/checks/juniper_cpu
new file mode 100644
index 0000000..a389081
--- /dev/null
+++ b/checks/juniper_cpu
@@ -0,0 +1,85 @@
+#!/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.
+
+juniper_cpu_default_levels = ( 80.0, 90.0 )
+
+def inventory_juniper_cpu(info):
+ return [ (x[0], "juniper_cpu_default_levels" ) for x in info if x[0].startswith("Routing Engine") ]
+
+def check_juniper_cpu(item, params, info):
+ for line in info:
+ if line[0] == item:
+ util1, util5, util15 = map(int,line[1:])
+ warn, crit = params
+ label1, label5, label15 = "", "", ""
+ state = 0
+ if util1 >= crit:
+ state = 2
+ label1 = "(!!)"
+ elif util1 >= warn:
+ state = 1
+ label1 = "(!)"
+ if util5 >= crit:
+ state = 2
+ label5 = "(!!)"
+ elif util5 >= warn:
+ state = max(state,1)
+ label5 = "(!)"
+ if util15 >= crit:
+ state = 2
+ label15 = "(!!)"
+ elif util15 >= warn:
+ state = max(state,1)
+ label15 = "(!)"
+
+ perf = [
+ ( "util1", util1, warn, crit ),
+ ( "util5", util5, warn, crit ),
+ ( "util15", util15, warn, crit ),
+ ]
+
+
+ message = "%d%% 1min%s, %d%% 5min%s, %d%% 15min%s" % \
+ ( util1, label1, util5, label5, util15, label15 )
+ return state, message, perf
+ return 3, "Information not found in output"
+
+check_info["juniper_cpu"] = {
+ "check_function" : check_juniper_cpu,
+ "inventory_function" : inventory_juniper_cpu,
+ "service_description" : "CPU utilization %s",
+ "group" : "cpu_utilization",
+ "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.2636.1.1.1.2"),
+ "snmp_info" : (".1.3.6.1.4.1.2636.3.1.13.1",[
+ 5, #jnxOperatingDescr
+ 20, #jnxOperating1MinLoadAvg
+ 21, #jnxOperating5MinLoadAvg
+ 22, #jnxOperating15MinLoadAvg
+ ])
+
+
+}
diff --git a/web/plugins/perfometer/check_mk.py b/web/plugins/perfometer/check_mk.py
index d233e53..d6e482f 100644
--- a/web/plugins/perfometer/check_mk.py
+++ b/web/plugins/perfometer/check_mk.py
@@ -408,6 +408,7 @@ perfometers["check_mk-h3c_lanswitch_cpu"] = perfometer_cpu_utilization
perfometers["check_mk-winperf_processor.util"] = perfometer_cpu_utilization
perfometers["check_mk-netapp_cpu"] = perfometer_cpu_utilization
perfometers["check_mk-cisco_cpu"] = perfometer_cpu_utilization
+perfometers["check_mk-juniper_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])