Module: check_mk
Branch: master
Commit: a2bf8c028b1d8d61c5c356ee329258adeb82a243
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=a2bf8c028b1d8d…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Dec 4 19:05:52 2014 +0100
#1677 FIX f5_bigip_interfaces: Cleaned up check a bit
---
.werks/1677 | 9 ++++++++
ChangeLog | 4 +---
checks/f5_bigip_interfaces | 51 +++++++++++++++++++++++---------------------
3 files changed, 37 insertions(+), 27 deletions(-)
diff --git a/.werks/1677 b/.werks/1677
new file mode 100644
index 0000000..654b3ab
--- /dev/null
+++ b/.werks/1677
@@ -0,0 +1,9 @@
+Title: f5_bigip_interfaces: Cleaned up check a bit
+Level: 1
+Component: checks
+Compatible: compat
+Version: 1.2.5i7
+Date: 1417716341
+Class: fix
+
+
diff --git a/ChangeLog b/ChangeLog
index 10e14e1..1655bc4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -55,10 +55,7 @@
* 1631 juniper_bgp_state: check now detects and supports more differen device
models...
* 1645 Added basic kernel section to FreeBSD agent...
* 1597 bluecat_dhcp, bluecat_dns: Checks can now be used in Check_MK Cluster Mode
-<<<<<<< HEAD
* 1599 check_mk_agent.aix: Simple run_cached Feature for plugins...
-=======
->>>>>>> dcce27ee01c3b2f67401746d50991795f63e1bc5
* 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...
@@ -113,6 +110,7 @@
* 1654 FIX: statgrab_disk: Fixed scaling of values shown in PNP graphs...
* 1655 FIX: AIX Agent: Fixed broken filesystem checks when having PowerHA
installed...
* 1656 FIX: cisco_vpn_tunnel: Refactored complete check, fixed threshold bugs...
+ * 1677 FIX: f5_bigip_interfaces: Cleaned up check a bit
Multisite:
* 1508 Allow input of plugin output and perfdata when faking check results...
diff --git a/checks/f5_bigip_interfaces b/checks/f5_bigip_interfaces
index 13025d5..eee0ad2 100644
--- a/checks/f5_bigip_interfaces
+++ b/checks/f5_bigip_interfaces
@@ -24,37 +24,40 @@
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
-# .1.3.6.1.4.1.3375.2.1.2.4.4.3.1.1. index for ifname
+# .1.3.6.1.4.1.3375.2.1.2.4.4.3.1.1. index for ifname
# .1.3.6.1.4.1.3375.2.1.2.4.1.2.1.17. index for ifstate
-# .1.3.6.1.4.1.3375.2.1.2.4.4.3.1.3. index for OUT bytes
-# .1.3.6.1.4.1.3375.2.1.2.4.4.3.1.5. index for IN bytes
+# .1.3.6.1.4.1.3375.2.1.2.4.4.3.1.3. index for IN bytes
+# .1.3.6.1.4.1.3375.2.1.2.4.4.3.1.5. index for OUT bytes
+
+f5_bigip_interface_states = {
+ 1 : "down (has no link and is initialized)",
+ 2 : "disabled (has been forced down)",
+ 3 : "uninitialized (has not been initialized)",
+ 4 : "loopback (in loopback mode)",
+ 5 : "unpopulated (interface not physically populated)",
+}
def check_f5_bigip_interfaces(item, params, info):
for port, ifstate, inbytes, outbytes in info:
- if item == port:
- if int(ifstate) != 0:
- states = {
- 1 : "down (has no link and is initialized)",
- 2 : "disabled has been forced down)",
- 3 : "uninitialized (has not been initialized)",
- 4 : "loopback (in loopback mode)",
- 5 : "unpopulated (interface not physically populated)",
- }
- return(2, "State of %s is %s" %
(states.get(ifstate,"unkown"), port))
- this_time = int(time.time())
- in_timedif, in_per_sec = get_counter("f5.interface.in.%s" % item,
this_time, saveint(inbytes))
- out_timedif, out_per_sec = get_counter("f5_interface.out.%s" %
item, this_time, saveint(outbytes))
+ if item != port:
+ continue
+ if int(ifstate) != 0:
+ return (2, "State of %s is %s" %
+ (f5_bigip_interface_states.get(ifstate, "unhandled (%d)" %
ifstate), port))
- inbytes_h = get_bytes_human_readable(in_per_sec)
- outbytes_h = get_bytes_human_readable(out_per_sec)
- perf = [
- ("bytes_in", in_per_sec),
- ("bytes_out", out_per_sec),
- ]
- return (0, "in bytes: %s/s, out bytes: %s/s" % (inbytes_h,
outbytes_h), perf)
- return 3, "no such interface found in snmp data"
+ this_time = int(time.time())
+ in_timedif, in_per_sec = get_counter("f5.interface.in.%s" % item,
this_time, saveint(inbytes))
+ out_timedif, out_per_sec = get_counter("f5_interface.out.%s" % item,
this_time, saveint(outbytes))
+ inbytes_h = get_bytes_human_readable(in_per_sec)
+ outbytes_h = get_bytes_human_readable(out_per_sec)
+ perf = [
+ ("bytes_in", in_per_sec),
+ ("bytes_out", out_per_sec),
+ ]
+ return (0, "in bytes: %s/s, out bytes: %s/s" % (inbytes_h, outbytes_h),
perf)
+ return 3, "Interface not found in SNMP data"
check_info["f5_bigip_interfaces"] = {
"check_function" : check_f5_bigip_interfaces,