Module: check_mk
Branch: master
Commit: 786429ca8849e8ea30e190087c1412a5c4fb6a45
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=786429ca8849e8…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Wed Dec 3 17:03:40 2014 +0100
#1568 f5_bigip_cluster_v11: new check for F5 cluster status for firmware version 11
---
.werks/1568 | 9 +++++
ChangeLog | 1 +
checkman/f5_bigip_cluster | 4 +--
checks/f5_bigip_cluster | 3 +-
checks/f5_bigip_cluster_v11 | 78 +++++++++++++++++++++++++++++++++++++++++++
5 files changed, 92 insertions(+), 3 deletions(-)
diff --git a/.werks/1568 b/.werks/1568
new file mode 100644
index 0000000..b4fe0da
--- /dev/null
+++ b/.werks/1568
@@ -0,0 +1,9 @@
+Title: f5_bigip_cluster_v11: new check for F5 cluster status for firmware version 11
+Level: 1
+Component: checks
+Compatible: compat
+Version: 1.2.5i7
+Date: 1417622592
+Class: feature
+
+
diff --git a/ChangeLog b/ChangeLog
index 32f1c06..474a176 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -35,6 +35,7 @@
* 1565 mem.win: set default levels for page file to 80%/90%
* 1608 zpool_status: Add an overall state check (thx to Craig Cook)...
* 1567 postfix_mailq: speedup in Linux agent for large mail queues...
+ * 1568 f5_bigip_cluster_v11: new check for F5 cluster status for firmware version 11
* 1478 FIX: kernel.util, statgrab_cpu: fix computation of utilization...
* 1480 FIX: brocade_vdx_status: disable check on some devices that do not support
it...
* 1485 FIX: dell_om_disks, dell_om_esmlog, dell_om_mem, dell_om_processors,
dell_om_sensors: detect more devices...
diff --git a/checkman/f5_bigip_cluster b/checkman/f5_bigip_cluster
index 7319fc9..a5b99e6 100644
--- a/checkman/f5_bigip_cluster
+++ b/checkman/f5_bigip_cluster
@@ -1,4 +1,4 @@
-title: F5 Big-IP: Cluster state
+title: F5 Big-IP: Cluster state, up to firmware version 10
agents: snmp
catalog: hw/network/f5
license: GPL
@@ -10,7 +10,7 @@ description:
- both nodes have differing configs
- the node being checked has the status "unconfigured"
- It supports devices running the 9.0 and above releases of the F5 OS. It's tested
against 9.3
+ It supports devices running the 9.0 and above releases of the F5 OS, but lower then 11.
It's tested against 9.3
devices.
inventory:
diff --git a/checks/f5_bigip_cluster b/checks/f5_bigip_cluster
index 6ff017b..ab66136 100644
--- a/checks/f5_bigip_cluster
+++ b/checks/f5_bigip_cluster
@@ -74,5 +74,6 @@ check_info["f5_bigip_cluster"] = {
]),
'snmp_scan_function': \
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(),
+ and "big-ip" in oid(".1.3.6.1.4.1.3375.2.1.4.1.0").lower() \
+ and int(oid(".1.3.6.1.4.1.3375.2.1.4.2.0").split('.')[0]) < 11,
}
diff --git a/checks/f5_bigip_cluster_v11 b/checks/f5_bigip_cluster_v11
new file mode 100644
index 0000000..8bce172
--- /dev/null
+++ b/checks/f5_bigip_cluster_v11
@@ -0,0 +1,78 @@
+#!/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.
+
+
+# Agent / MIB output
+# see: .1.3.6.1.4.1.3375.2.1.14.1.1.0
+# .1.3.6.1.4.1.3375.2.1.14.1.2.0
+# F5-BIGIP-SYSTEM-MIB::sysCmSyncStatusId
+# F5-BIGIP-SYSTEM-MIB::sysCmSyncStatusStatus
+
+# F5 nodes need to be ntp synced otherwise status reports might be wrong.
+
+
+f5_bigip_cluster_v11_states = {
+ '0': ( "Unknown", 3),
+ '1': ( "Syncing", 0),
+ '2': ( "Need Manual Sync", 1),
+ '3': ( "In Sync", 0),
+ '4': ( "Sync Failed", 2),
+ '5': ( "Sync Disconnected", 2),
+ '6': ( "Standalone", 2),
+ '7': ( "Awaiting Initial Sync", 1),
+ '8': ( "Incompatible Version", 2),
+ '9': ( "Partial Sync", 2),
+}
+
+
+def inventory_f5_bigip_cluster_v11(info):
+ if len(info) == 1:
+ return [(None, None)]
+
+
+def check_f5_bigip_cluster_v11(_no_item, _no_params, info):
+ statusid, statustxt = info[0]
+ statename, state = f5_bigip_cluster_v11_states[statusid]
+ infotext = statename
+ if statename != statustxt:
+ infotext += ' - ' + statustxt
+ return state, infotext
+
+
+check_info["f5_bigip_cluster_v11"] = {
+ 'check_function': check_f5_bigip_cluster_v11,
+ 'inventory_function': inventory_f5_bigip_cluster_v11,
+ 'service_description': 'Config Sync Status',
+ 'snmp_info': ('.1.3.6.1.4.1.3375.2.1.14.1', [
+ "1.0", # sysCmSyncStatusId
+ "2.0" # sysCmSyncStatusStatus
+ ]),
+
+ 'snmp_scan_function': \
+ 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() \
+ and int(oid(".1.3.6.1.4.1.3375.2.1.4.2.0").split('.')[0]) >= 11,
+}