Module: check_mk
Branch: master
Commit: 7248f70728aeb59595538ce8fae1c9743100d697
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=7248f70728aeb5…
Author: Götz Golla <gg(a)mathias-kettner.de>
Date: Mon Nov 4 11:51:39 2013 +0100
check to monitor fan trays of cisco nexus switches
---
checkman/cisco_fantray | 17 +++++++++++++++
checks/cisco_fantray | 54 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 71 insertions(+)
diff --git a/checkman/cisco_fantray b/checkman/cisco_fantray
new file mode 100644
index 0000000..08e8f82
--- /dev/null
+++ b/checkman/cisco_fantray
@@ -0,0 +1,17 @@
+title: Cisco switches: FAN health status
+agents: snmp
+catalog: hw/network/cisco
+license: GPL
+distribution: check_mk
+description:
+ This check monitors the state of fans on Cisco devices like the
+ nexus series of switches. The following states are returned by the
+ device: {1}: unknown, {2}: up, {3}: down, {4}: warning. They are evaluated
+ by the check as follows: {1}: WARN, {2}: OK, {3}: CRIT, {4}: WARN.
+
+item:
+ The id of the sensor as provided by the snmp agent of the device.
+
+inventory:
+ One check for each sensor is created by the inventory.
+
diff --git a/checks/cisco_fantray b/checks/cisco_fantray
new file mode 100644
index 0000000..3a5f5eb
--- /dev/null
+++ b/checks/cisco_fantray
@@ -0,0 +1,54 @@
+#!/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.
+
+cisco_fan_states = ('', 'unknown', 'up', 'down',
'warning')
+
+def inventory_cisco_fantray(info):
+ if info[0]:
+ return [ (line[0], None) for line in info ]
+
+def check_cisco_fantray(item, params, info):
+ for line in info:
+ if line[0] == item:
+ state = saveint(line[1])
+ status = [ "", "unknown", "up",
"down", "warning" ]
+ if state == 2:
+ return (0, "State is %s (%d)" % (status[state], state))
+ elif state in ( 0, 1, 4 ):
+ return (1, "State is %s (%d)" % (status[state], state))
+ else:
+ return (2, "State is %s (%d)" % (status[state], state))
+ return (3, "item not found in snmp data")
+
+
+check_info["cisco_fantray"] = {
+ 'check_function': check_cisco_fantray,
+ 'inventory_function': inventory_cisco_fantray,
+ 'service_description': 'FAN %s',
+ 'snmp_info': ('.1.3.6.1.4.1.9.9.117.1.4.1.1.1',[
OID_END, '' ]),
+ 'snmp_scan_function': \
+ lambda oid: "cisco" in oid(".1.3.6.1.2.1.1.1.0").lower(),
+}