Module: check_mk
Branch: master
Commit: 6d4ea28831ab3a5fa0d8c79816497137abdbe883
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=6d4ea28831ab3a…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Sun Jan 30 13:49:38 2011 +0100
Updated bug entries
---
.bugs/117 | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/.bugs/117 b/.bugs/117
new file mode 100644
index 0000000..8cb430b
--- /dev/null
+++ b/.bugs/117
@@ -0,0 +1,30 @@
+Title: Change handling of undefined columns
+Component: livestatus
+Benefit: 3
+State: open
+Cost: 2
+Date: 2011-01-30 13:45:33
+Class: feature
+
+We can introduce a livestatus option that affects the handling of
+unknown columns. The problem is that if in a new version of Livestatus
+are introduced columns and new versions of addons use them that
+old versions of Livestatus will not be compatible. If the old
+versions would not crash but simply output empty columns in that
+case, the problem could be tackled.
+
+Proposition for a parameter:
+
+unused_columns=warn ---> Log a warning in that case
+unused_columns=fail ---> Query fails (current behavious)
+unused_columns=ignore ---> Do not log
+
+In case of warn/ignore a default value will be sent for
+the unknown columns, e.g. None/null in python/json mode and
+an empty column in CVS.
+
+We could make 'warn' into a default.
+
+Multisite must then be aware of the possibility that a columns
+value is None. This is easier than just querying a livestatus
+version and make a switch.
Module: check_mk
Branch: master
Commit: 00129ce2867837e32e060be902c18fc353ebf126
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=00129ce2867837…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Sun Jan 30 13:44:52 2011 +0100
Updated bug entries
---
.bugs/116 | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/.bugs/116 b/.bugs/116
new file mode 100644
index 0000000..d9c6116
--- /dev/null
+++ b/.bugs/116
@@ -0,0 +1,21 @@
+Title: Make configurable limit on lines processed by mk_logwatch
+Component: checks
+Benefit: 1
+State: open
+Cost: 2
+Date: 2011-01-30 13:42:20
+Class: feature
+
+Logfile that grow fast make problems with mk_logwatch since
+the processing takes too long. We could make the following
+solution:
+
+in logwatch.cfg one can add paramters to logfiles, e.g.
+/var/log/* ; maxlines=20000
+
+That way processing would parse at most 20000 new lines in the
+file and *add an artificial error message* with state "C"
+or "W" if this limit is exceeded.
+
+Exceeding lines are not lost but processed in the next
+turn.
Module: check_mk
Branch: master
Commit: a62e7efdad11e6b715e247fd3d0e986bd989f71a
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=a62e7efdad11e6…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Sun Jan 30 13:16:17 2011 +0100
Updated bug entries
---
.bugs/115 | 35 +++++++++++++++++++++++++++++++++++
1 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/.bugs/115 b/.bugs/115
new file mode 100644
index 0000000..89bedd0
--- /dev/null
+++ b/.bugs/115
@@ -0,0 +1,35 @@
+Title: livestatus: No timeperiod information available for 24X7
+Component: livestatus
+Benefit: 1
+State: open
+Cost: 1
+Date: 2011-01-30 13:15:35
+Class: bug
+
+Beim Neustart von Nagios tauchen teils Fehlermeldungen im Logfile auf:
+
+die Meldung kommt beim Nagios Reload.
+Im laufenden Betrieb dann nicht mehr.
+
+"[1296122364] livestatus: No timeperiod information available for 24X7.
+[1296122364] livestatus: No timeperiod information available for 24X7.
+[1296122364] livestatus: No timeperiod information available for 24X7.
+[1296122373] livestatus: No timeperiod information available for 24X7.
+[1296122373] livestatus: No timeperiod information available for 24X7.
+[1296122373] livestatus: No timeperiod information available for 24X7.
+[1296122373] livestatus: No timeperiod information available for 24X7.
+[1296122379] livestatus: No timeperiod information available for 24X7.
+[1296122379] livestatus: No timeperiod information available for 24X7.
+[1296122379] livestatus: No timeperiod information available for 24X7.
+[1296122379] livestatus: No timeperiod information available for 24X7.
+[1296122388] livestatus: No timeperiod information available for 24X7.
+[1296122388] livestatus: No timeperiod information available for 24X7.
+[1296122388] livestatus: No timeperiod information available for 24X7.
+[1296122388] livestatus: No timeperiod information available for 24X7.
+...
+[1296122400] TIMEPERIOD TRANSITION: 24X7;-1;1
+[1296122400] TIMEPERIOD TRANSITION: 24x7;-1;1
+[1296122400] TIMEPERIOD TRANSITION: 24x7_sans_holidays;-1;1
+[1296122400] TIMEPERIOD TRANSITION: none;-1;0
+[1296122400] TIMEPERIOD TRANSITION: us-holidays;-1;0
+[1296122400] TIMEPERIOD TRANSITION: workhours;-1;1
Module: check_mk
Branch: master
Commit: f8b02f8911e8d626495cba492debfd6392a4d201
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=f8b02f8911e8d6…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Sun Jan 30 13:07:24 2011 +0100
Updated bug entries
---
.bugs/114 | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/.bugs/114 b/.bugs/114
new file mode 100644
index 0000000..d403d1c
--- /dev/null
+++ b/.bugs/114
@@ -0,0 +1,10 @@
+Title: Inventory of Windows services should support regex and host tags
+Component: core
+Benefit: 1
+State: open
+Cost: 2
+Date: 2011-01-30 13:03:57
+Class: feature
+
+We could do this similar to ps. There should be a rule based variant
+that supports host specific configuration as well as regular expressions.
Module: check_mk
Branch: master
Commit: 9007c473ad96a057968acf6521705e3d39c8e289
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=9007c473ad96a0…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Fri Jan 28 19:04:06 2011 +0100
fixed typo in comment
---
agents/sqlplus.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/agents/sqlplus.sh b/agents/sqlplus.sh
index f1fb379..e75f838 100755
--- a/agents/sqlplus.sh
+++ b/agents/sqlplus.sh
@@ -8,7 +8,7 @@
# It is your task to adapt this script so that the ORACLE environment
# is setup and the correct user chosen to execute sqlplus.
-# The script we get the query on stdin and shall output the
+# The script will get the query on stdin and shall output the
# result on stdout. Error messages goes to stderr.
ORACLE_SID=$1
Module: check_mk
Branch: master
Commit: cd45ff86e1e13cfd3d8e129c49da1cff7654ff8f
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=cd45ff86e1e13c…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Fri Jan 28 16:41:48 2011 +0100
three new checks for 3COM switches
---
ChangeLog | 3 ++
checkman/h3c_lanswitch_cpu | 30 +++++++++++++++++++++++++++
checkman/superstack3_sensors | 20 ++++++++++++++++++
checks/h3c_lanswitch_cpu | 33 ++++++++++++++++++++++++++++++
checks/h3c_lanswitch_sensors | 46 ++++++++++++++++++++++++++++++++++++++++++
checks/superstack3_sensors | 23 +++++++++++++++++++++
6 files changed, 155 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 6b8edaa..9ade230 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -28,6 +28,9 @@
of an ORACLE instances in the last 60 minutes.
* oracle_tablespaces: new check for monitoring size, state and autoextension
of ORACLE tablespaces.
+ * h3c_lanswitch_cpu: new check for monitoring CPU usage of H3C/HP/3COM switches
+ * h3c_lanswitch_sensors: new check for monitoring hardware sensors of H3C/HP/3COM switches
+ * superstack3_sensors: new check for monitoring hardware sensors of 3COM Superstack 3 switches
1.1.9i5:
Multisite:
diff --git a/checkman/h3c_lanswitch_cpu b/checkman/h3c_lanswitch_cpu
new file mode 100644
index 0000000..b7256a4
--- /dev/null
+++ b/checkman/h3c_lanswitch_cpu
@@ -0,0 +1,30 @@
+title: Check 3Com SuperStack 4 CPU Utilization
+agents: snmp
+author: Florian Heigl <fh(a)mathias-kettner.de>
+license: GPL
+distribution: check_mk
+description:
+ This Check queries the CPU utilization for SuperStack 4 switches, either standalone or that of the CPUs of all units in the stack. Note these switches don't handle snmp well and you should lower the frequence of SNMP based checks with them.
+ The CPU usage ratio returned by the check is the average load of the last 60 seconds.
+
+
+inventory:
+ The check will add one service per Unit/CPU in a stack.
+
+[parameters]
+warning (int): the percentage of 1-minute average load at which the switch is considered too busy.
+
+critical (int): the percentage of 1-minute average load at which the switch is considered overloaded.
+
+
+[configuration]
+superstack4_cpu_default_levels (int, int): the warn and critical levels for the checkl.
+ They are set to default to 50% for "WARN" and 75% for "CRIT".
+
+
+item:
+ The CPU found by inventory (it's OID is a multiple of 65536 and will be divided to come to a sane value)
+
+
+perfdata:
+ It does not generate any performance data yet.
diff --git a/checkman/superstack3_sensors b/checkman/superstack3_sensors
new file mode 100644
index 0000000..65ead22
--- /dev/null
+++ b/checkman/superstack3_sensors
@@ -0,0 +1,20 @@
+title: Check 3Com SuperStack 3 Hardware / FRU sensors
+agents: snmp
+author: Florian Heigl <fh(a)mathias-kettner.de>
+license: GPL
+distribution: check_mk
+description:
+ This check queries the snmp sensors for internal and addon modules
+ of 3Com SuperStack 3 switches. It can notify you of a fan or add-on module failure.
+
+ It will generate OK status for any item that shows "operational" via SNMP, CRIT any that is in "failure" state and "warning" in all other states.
+
+
+item:
+ The description of the sensor as provided by the device.
+
+inventory:
+ One service is created for each item found in the switch.
+
+perfdata:
+ It does not generate any performance data as the info from the switches is just textual.
diff --git a/checks/h3c_lanswitch_cpu b/checks/h3c_lanswitch_cpu
new file mode 100644
index 0000000..5422d7a
--- /dev/null
+++ b/checks/h3c_lanswitch_cpu
@@ -0,0 +1,33 @@
+
+
+# Reasonably low warning and crit levels
+h3c_lanswitch_cpu_default_levels = (50, 75)
+
+
+def inventory_h3c_lanswitch_cpu(checkname, info):
+ return [ ( int(line[0]) / 65536 , "h3c_lanswitch_cpu_default_levels" ) for line in info ]
+
+def check_h3c_lanswitch_cpu(item, params, info):
+ warn, crit = params
+ for line in info:
+ unitid = int(line[0]) / 65536
+ if unitid == item:
+ util = int(line[1])
+ if util > crit:
+ return (2, "CRIT - Unit %d Utilization: %s%%" % (unitid, util) )
+ elif util > warn:
+ return (1, "WARN - Unit %d Utilization: %s%%" % (unitid, util) )
+ else:
+ return (0, "OK - Unit %d Utilization: %s%%" % (unitid, util) )
+ return (3, "UNKNOWN - Unit/CPU %s not found" % item)
+
+
+check_info["h3c_lanswitch_cpu"] = (check_h3c_lanswitch_cpu, "Unit CPU Util %s", 0, inventory_h3c_lanswitch_cpu )
+
+snmp_info["h3c_lanswitch_cpu"] = \
+ ( "1.3.6.1.4.1.43.45.1.6.1.1.1", [ OID_END, "3" ] )
+
+
+snmp_scan_functions["h3c_lanswitch_cpu"] = \
+ lambda oid: "3com superstack 4" in oid (".1.3.6.1.2.1.1.1.0").lower()
+# alternatively: 3Com Switch 8814
diff --git a/checks/h3c_lanswitch_sensors b/checks/h3c_lanswitch_sensors
new file mode 100644
index 0000000..4855f95
--- /dev/null
+++ b/checks/h3c_lanswitch_sensors
@@ -0,0 +1,46 @@
+def inventory_h3c_lanswitch_sensors(checkname, info):
+ return [ (h3c_lanswitch_genitem(line[0]), None) for line in info if line[1] in [ '1', '2'] ]
+
+
+
+def check_h3c_lanswitch_sensors(item, params, info):
+# the values are: active (1), deactive (2), not-install (3), unsupport (4)
+ for (endoid, status) in info:
+ if h3c_lanswitch_genitem(endoid) == item:
+ if status == "2":
+ return (2, "CRIT - Sensor %s status is %s" % (item, status))
+ elif status == "1":
+ return (0, "OK - Sensor %s status is %s" % (item, status))
+ else:
+ return (1, "WARN - Sensor % status is %s" % (item, status))
+ return (3, "UNKNOWN - Sensor %s not found" % item )
+
+
+check_info["h3c_lanswitch_sensors"] = (check_h3c_lanswitch_sensors, "%s", 0, inventory_h3c_lanswitch_sensors )
+
+def h3c_lanswitch_genitem(endoid):
+ deviceclass, one, id = endoid.split(".")
+# print ("%s %s %s" % (deviceclass, one, id))
+ if deviceclass == "1":
+ hwLswdev = "Fan"
+ else:
+ hwLswdev = "Powersupply"
+ unitid = int(id) / 65536
+ num = int(id) % 65536
+ return "Unit %d %s %d" % (unitid, hwLswdev, num)
+
+
+# mib: A3COM-HUAWEI-LswDEVM-MIB
+# fan table: A3COM-HUAWEI-OID-MIB::lswCommon.9.1.1.1.1.65536 = INTEGER: 65536
+# fan status: A3COM-HUAWEI-OID-MIB::lswCommon.9.1.1.1.2.65536 = INTEGER: 1
+# hwdevMPowerStatusTable ( hwDevMPowerNum, hwDevMPowerStatus )
+# hwdevMFanStatusTable
+#
+#
+# finally,just check fan status
+snmp_info["h3c_lanswitch_sensors"] = \
+ ( ".1.3.6.1.4.1.43.45.1.2.23.1.9.1", ["1.1", "2.1"], [ OID_END, "2" ] )
+
+
+snmp_scan_functions["h3c_lanswitch_sensors"] = \
+ lambda oid: "3com switch 5500" in oid (".1.3.6.1.2.1.1.1.0").lower()
diff --git a/checks/superstack3_sensors b/checks/superstack3_sensors
new file mode 100644
index 0000000..92013dd
--- /dev/null
+++ b/checks/superstack3_sensors
@@ -0,0 +1,23 @@
+def inventory_superstack3_sensors(checkname, info):
+ return [ (line[0], None) for line in info if line[1] != 'not present' ]
+
+def check_superstack3_sensors(item, params, info):
+ for name, state in info:
+ if name == item:
+ if state == "failure":
+ return (2, "CRIT - status is %s" % state )
+ elif state == "operational":
+ return (0, "OK - status is %s" % state )
+ else:
+ return (1, "WARN - status is %s" % state )
+ return (3, "UNKOWN - sensor not found")
+
+
+check_info["superstack3_sensors"] = (check_superstack3_sensors, "%s", 0, inventory_superstack3_sensors )
+
+snmp_info["superstack3_sensors"] = \
+ ( "1.3.6.1.4.1.43.43.1.1", [ "7", "10" ] )
+
+
+snmp_scan_functions["superstack3_sensors"] = \
+ lambda oid: "3com superstack 3" in oid (".1.3.6.1.2.1.1.1.0").lower()
Module: check_mk
Branch: master
Commit: 8fea0b424d30386faeb27194529a8774009fd89c
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=8fea0b424d3038…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Fri Jan 28 16:44:24 2011 +0100
New windows plugins, not yet working
---
agents/windows/win_mpio.cmd | 10 ++++++++++
agents/windows/win_time.cmd | 19 +++++++++++++++++++
2 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/agents/windows/win_mpio.cmd b/agents/windows/win_mpio.cmd
new file mode 100644
index 0000000..1f2eb74
--- /dev/null
+++ b/agents/windows/win_mpio.cmd
@@ -0,0 +1,10 @@
+# DO NOT USE YET!
+
+@echo off
+echo ^<^<^<win_mpio:sep^(44^)^>^>^>
+#wmic process get name,pagefileusage,virtualsize,workingsetsize,usermodetime,kernelmodetime /format:csv
+# MPIO_DSM_Path
+# wmuc MPIO_DSM_Path_V2 LIST
+
+
+# REM state speed
diff --git a/agents/windows/win_time.cmd b/agents/windows/win_time.cmd
new file mode 100644
index 0000000..f7c37dd
--- /dev/null
+++ b/agents/windows/win_time.cmd
@@ -0,0 +1,19 @@
+# DO NOT USE YET!
+
+@echo off
+
+REM ***
+REM Query Windows Time daemons
+REM Only Windows 2008 can give a useful status of the current win32time status.
+REM ***
+
+echo ^<^<^<win_time^>^>^>
+REM read in windows version
+ver
+
+REM by standard, just query the timeserver.
+net time /querysntp | findstr SNTP
+
+REM if we're on W2K8 it is possible to query the timeserver status
+REM otherwise this will fail.
+w32tm /query /status