Module: check_mk
Branch: master
Commit: 24823706dd48a40141882264e467427f68c37cbb
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=24823706dd48a4…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Thu Mar 31 09:16:19 2011 +0200
if/if64: also output performance data if operstate not as expected
---
ChangeLog | 1 +
checks/if.include | 22 ++++++++++++++--------
2 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index cd3cd13..58d78af 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -60,6 +60,7 @@
a reboot is needed after updates have been installed.
* lnx_if: new check for Linux NICs compatible with if/if64 replacing
netif.* and netctr.
+ * if/if64: also output performance data if operstate not as expected
1.1.10:
diff --git a/checks/if.include b/checks/if.include
index 358e650..01429f5 100644
--- a/checks/if.include
+++ b/checks/if.include
@@ -119,8 +119,10 @@ def check_if_common(item, params, info):
elif len(params) == 6:
err_warn, err_crit, targetspeed, bw_warn, bw_crit, allowed_operstates = params
- for ifIndex, ifDescr, ifType, ifSpeed, ifOperStatus, ifInOctets, inucast, inmcast,
inbcast, ifInDiscards, \
- ifInErrors, ifOutOctets, outucast, outmcast, outbcast, ifOutDiscards,
ifOutErrors, ifOutQLen, ifAlias in info:
+ for ifIndex, ifDescr, ifType, ifSpeed, ifOperStatus, ifInOctets, \
+ inucast, inmcast, inbcast, ifInDiscards, ifInErrors, ifOutOctets, \
+ outucast, outmcast, outbcast, ifOutDiscards, ifOutErrors, \
+ ifOutQLen, ifAlias in info:
ifDescr = cleanup_if_strings(ifDescr)
ifAlias = cleanup_if_strings(ifAlias)
@@ -128,7 +130,8 @@ def check_if_common(item, params, info):
# Display port number or alias in infotext if that is not part
# of the service description anyway
- if item == ifIndex and (item == ifAlias or ifAlias == '') and (item
== ifDescr or ifDescr == ''): # description trivial
+ if item == ifIndex and (item == ifAlias or ifAlias == '') \
+ and (item == ifDescr or ifDescr == ''): # description trivial
infotext = ""
elif item != ifAlias and ifAlias != '': # alias useful
infotext = "[%s] " % ifAlias
@@ -137,21 +140,24 @@ def check_if_common(item, params, info):
else:
infotext = "[%s] " % ifIndex
+ state = 0
+
operstatus = if_statename(str(ifOperStatus))
if targetstate and \
(ifOperStatus != targetstate
- and not (type(targetstate) == list and ifOperStatus in targetstate)):
- return (2, "CRIT - %soperstatus: %s (CRIT)" % (infotext,
operstatus))
- infotext += "(%s) " % operstatus
+ and not (type(targetstate) == list and ifOperStatus in targetstate)):
+ state = 2
+ infotext += "(%s!!) " % operstatus
+ else:
+ infotext += "(%s) " % operstatus
- state = 0
# Check speed
speed = saveint(ifSpeed)
infotext += get_nic_speed_human_readable(speed)
if not targetspeed is None and speed != targetspeed:
infotext += " (wrong speed! expected: %s)" %
get_nic_speed_human_readable(targetspeed)
- state = 1
+ state = max(state, 1)
# convert percentages to absolute values and vice verca - if possible
if speed: