Module: check_mk
Branch: master
Commit: cc2b26c74adbd110a2369da15b61c3209b312ba7
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=cc2b26c74adbd1…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Thu Jun 16 11:09:26 2011 +0200
lnx_if: treat non-ethtool-aware interfaces as softwareLoopback
---
ChangeLog | 3 +++
checks/lnx_if | 2 ++
2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 458f230..30d9edc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,9 @@
default thresholds to 5/10 refclock offset
* brocade_port: parameter for phystate, opstate and admstate can now
also be lists of allowed states.
+ * lnx_if: treat interfaces without information from ethtool as
+ softwareLoopback interface. The will not be found by inventory now.
+ (Thanks to Karl-Heinz Fiebig)
Multisite:
* FIX: make non-Ascii characters in services names work again
diff --git a/checks/lnx_if b/checks/lnx_if
index 0a9e776..6af982f 100644
--- a/checks/lnx_if
+++ b/checks/lnx_if
@@ -85,6 +85,7 @@ def if_lnx_convert_to_if64(info):
speed_text = attr.get("Speed")
if speed_text == None:
ifSpeed = ''
+ ifType = 24
else:
if speed_text == '65535Mb/s': # unknown
ifSpeed = ''
@@ -96,6 +97,7 @@ def if_lnx_convert_to_if64(info):
ifSpeed = int(speed_text[:-4]) * 1000000000
else:
ifSpeed = ''
+ ifType = 24
# Link state from ethtool. If ethtool has no information about
# this NIC, we set the state to unknown.
Module: check_mk
Branch: master
Commit: 968e8df53efe5891e4f924599c61e7bb506233f1
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=968e8df53efe58…
Author: Florian Heigl <fh(a)mathias-kettner.de>
Date: Fri Jun 17 10:18:45 2011 +0200
new check: f5_bigip PSU - powersupply status for f5 load balancers
---
checkman/f5_bigip_psu | 21 +++++++++++++
checks/f5_bigip_psu | 81 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 102 insertions(+), 0 deletions(-)
diff --git a/checkman/f5_bigip_psu b/checkman/f5_bigip_psu
new file mode 100644
index 0000000..6325a39
--- /dev/null
+++ b/checkman/f5_bigip_psu
@@ -0,0 +1,21 @@
+title: Check status of system fans on F5 Big-IP
+agents: snmp
+author: Florian Heigl <fh(a)mathias-kettner.de>
+license: GPL
+distribution: check_mk
+description:
+ The check queries the MIB tables of F5 BIG-IP loadbalancers (local traffic managers) for the
+ status of the power supplies. These may be redundant or not.
+
+ It supports devices running the 9.0 and above releases of the F5 OS. It's tested against 9.3
+ devices.
+
+
+
+inventory:
+ The check gather a list of the existing power supplies in a system.
+ One service is created per power supply (PSU)
+
+
+perfdata:
+ the check does not generate performance data.
diff --git a/checks/f5_bigip_psu b/checks/f5_bigip_psu
new file mode 100644
index 0000000..6d45abb
--- /dev/null
+++ b/checks/f5_bigip_psu
@@ -0,0 +1,81 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2010 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.
+
+
+# Agent / MIB output
+#SysChassisPowerSupplyEntry ::=
+# SEQUENCE {
+# sysChassisPowerSupplyIndex INTEGER,
+# sysChassisPowerSupplyStatus INTEGER
+# }
+
+# sysChassisPowerSupplyStatus
+# bad(0),
+# good(1),
+# notpresent(2)
+
+
+
+
+def inventory_f5_bigip_psu(checkname, info):
+ inventory = []
+ for line in info:
+ psu, state = line[0]
+ # inventorize the PSU unless it's in state 2 (notpresent)
+ if state != "2":
+ inventory.append([("%s" % psu), None])
+ return inventory
+
+
+def check_f5_bigip_psu(item, _no_params, info):
+ for line in info:
+ psu = line[0][0]
+ state = int(line[0][1])
+ if psu == item:
+ if state == 1:
+ return (0, "OK - PSU state: good")
+ elif state == 0:
+ return (2, "CRIT - PSU state: bad!!")
+ elif state == 2:
+ return (1, "WARN - PSU state: notpresent!")
+ else:
+ return (3, "UNKNOWN - PSU state is unknown")
+
+
+ return (3, "UNKNOWN - item not found in SNMP output")
+
+
+# Get ID and status from the SysChassisPowerSupplyTable
+snmp_info["f5_bigip_psu"] = \
+ [ ("1.3.6.1.4.1.3375.2.1.3.2.2.2.1", [ 1, 2 ]), ]
+
+
+check_info["f5_bigip_psu"] = (check_f5_bigip_psu, "PSU %s", 1, inventory_f5_bigip_psu )
+
+
+# Check using the vendor mib Id and verify it's a loadbalancer
+snmp_scan_functions["f5_bigip_psu"] = \
+ lambda oid: '.1.3.6.1.4.1.3375.2' in oid(".1.3.6.1.2.1.1.2.0") and "big-ip" in oid(".1.3.6.1.4.1.3375.2.1.4.1.0").lower()
Module: check_mk
Branch: master
Commit: 14927b90ab4c3f0cf774cb9ab9615c65f1e01e65
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=14927b90ab4c3f…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Thu Jun 16 11:09:26 2011 +0200
lnx_if: treat non-ethtool-aware interfaces as softwareLoopback
---
ChangeLog | 2 ++
checks/lnx_if | 2 ++
2 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 458f230..0b07818 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,8 @@
default thresholds to 5/10 refclock offset
* brocade_port: parameter for phystate, opstate and admstate can now
also be lists of allowed states.
+ * lnx_if: treat interfaces without information from ethtool as
+ softwareLoopback interface. The will not be found by inventory now.
Multisite:
* FIX: make non-Ascii characters in services names work again
diff --git a/checks/lnx_if b/checks/lnx_if
index 0a9e776..6477059 100644
--- a/checks/lnx_if
+++ b/checks/lnx_if
@@ -85,6 +85,7 @@ def if_lnx_convert_to_if64(info):
speed_text = attr.get("Speed")
if speed_text == None:
ifSpeed = ''
+ ifType = 24 # Fiebig Karl-Heinz
else:
if speed_text == '65535Mb/s': # unknown
ifSpeed = ''
@@ -96,6 +97,7 @@ def if_lnx_convert_to_if64(info):
ifSpeed = int(speed_text[:-4]) * 1000000000
else:
ifSpeed = ''
+ ifType = 24 # Fiebig Karl-Heinz
# Link state from ethtool. If ethtool has no information about
# this NIC, we set the state to unknown.
Module: check_mk
Branch: master
Commit: f06a20f3b2b545a5829bfead3fb26069240e8e39
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=f06a20f3b2b545…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Thu Jun 16 10:14:24 2011 +0200
WATO: make API more flexible in one situation
---
web/htdocs/wato.py | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index 14933b6..48e7ee2 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -2524,11 +2524,12 @@ def have_folder_attributes():
# "bulk" -> bulk change
# parent: The parent file/folder of the objects to configure
# myself: For mode "folder" the folder/file itself
-def configure_attributes(hosts, for_what, parent, myself=None):
- # html.write("<pre>%s</pre>" % pprint.pformat(hosts))
+def configure_attributes(hosts, for_what, parent, myself=None, without_attributes = []):
for attr in host_attributes:
attrname = attr.name()
+ if attrname in without_attributes:
+ continue # e.g. needed to skip ipaddress in CSV-Import
# In folder/file not all attributes are shown
if for_what == "folder" and not attr.show_in_folder():
Module: check_mk
Branch: master
Commit: 2a948c81763d63f8d794f67d17df23ae9c62cfc8
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=2a948c81763d63…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Jun 14 13:25:55 2011 +0200
brocade_fcport: allow list of states
---
ChangeLog | 2 ++
checkman/brocade_fcport | 8 ++++----
checks/brocade_fcport | 9 ++++++---
3 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 22b4d32..458f230 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,8 @@
* AIX agent now simulates <<<netctr>>> output (by Jörg Linge)
* mbg_lantime_state: Handling refclock offsets correctly now; Changed
default thresholds to 5/10 refclock offset
+ * brocade_port: parameter for phystate, opstate and admstate can now
+ also be lists of allowed states.
Multisite:
* FIX: make non-Ascii characters in services names work again
diff --git a/checkman/brocade_fcport b/checkman/brocade_fcport
index 0a0ff8e..8837d99 100644
--- a/checkman/brocade_fcport
+++ b/checkman/brocade_fcport
@@ -102,14 +102,14 @@ parameters (dict): This check works with dictionary based parameters. The
is turned on and all levels will be applied to the averaged values, not the
the current ones. Per default, averaging is turned off.
- {"phystate"}: The expected physical state of the port or {None} if that should
- not be checked.
+ {"phystate"}: The expected physical state (integer) of the port or {None} if that should
+ not be checked. It is also allowed to specify a list of allowed states, e.g. {[1, 2, 3]}.
{"opstate"}: The expected operational state of the port or {None} if that should
- not be checked.
+ not be checked. It is also allowed to specify a list here.
{"admstate"}: The expected adminstrative state of the port of {None} if that should
- not be checked.
+ not be checked. It is also allowed to specify a list here.
[configuration]
diff --git a/checks/brocade_fcport b/checks/brocade_fcport
index 58f0ef2..d66ee53 100644
--- a/checks/brocade_fcport
+++ b/checks/brocade_fcport
@@ -247,7 +247,8 @@ def check_brocade_fcport(item, params, info):
# P O R T S T A T E
# Port Status (physical layer)
errorflag = ""
- if params.get("phystate") != None and phystate != params['phystate']:
+ if params.get("phystate") != None and phystate != params['phystate'] \
+ and not (type(params['phystate']) == list and phystate in params['phystate']):
# noCard (1), noTransceiver (2), laserFault (3), noLight (4),
# noSync (5), inSync (6), portFault (7), diagFault (8), lockRef (9)
if phystate in [1, 6]:
@@ -260,7 +261,8 @@ def check_brocade_fcport(item, params, info):
errorflag = ""
#unknown(0) online(1) offline(2) testing(3) faulty(4) ]
- if params.get("opstate") != None and opstate != params['opstate']:
+ if params.get("opstate") != None and opstate != params['opstate'] \
+ and not (type(params['opstate']) == list and opstate in params['opstate']):
if opstate in [1, 3]:
errorflag = "(!)"
summarystate = max(summarystate, 1)
@@ -271,7 +273,8 @@ def check_brocade_fcport(item, params, info):
errorflag = ""
# online(1) offline(2) testing(3) faulty(4)
- if params.get("admstate") and admstate != params['admstate']:
+ if params.get("admstate") and admstate != params['admstate'] \
+ and not (type(params['admstate']) == list and admstate in params['admstate']):
if admstate not in [2, 4]:
errorflag = "(!)"
summarystate = max(summarystate, 1)