Author: glen Date: Tue Dec 27 11:42:33 2011 GMT Module: packages Tag: HEAD ---- Log message: - import: Version 0.0.3 2010-08-18
---- Files affected: packages/nagios-plugin-check_fibrealliance: check_fibrealliance.sh (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/nagios-plugin-check_fibrealliance/check_fibrealliance.sh diff -u /dev/null packages/nagios-plugin-check_fibrealliance/check_fibrealliance.sh:1.1 --- /dev/null Tue Dec 27 12:42:33 2011 +++ packages/nagios-plugin-check_fibrealliance/check_fibrealliance.sh Tue Dec 27 12:42:27 2011 @@ -0,0 +1,154 @@ +#!/bin/sh + +# Version 0.0.3 2010-08-18 +# Verify that the sensors check returns data. If not, return unknown to nagios. + +# Version 0.0.2 2010-05-11 +# Ulric Eriksson <[email protected]> + +BASEOID=.1.3.6.1.3.94 +SYSTEMOID=$BASEOID.1.6 +connUnitStateOID=$SYSTEMOID.1.5 +# 1 = unknown, 2 = online, 3 = diag/offline +connUnitStatusOID=$SYSTEMOID.1.6 +# 3 = OK, 4 = warning, 5 = failed +connUnitProductOID=$SYSTEMOID.1.7 +# e.g. "QLogic SANbox2 FC Switch" +connUnitSnOID=$SYSTEMOID.1.8 +# chassis serial number +connUnitNumSensorsOID=$SYSTEMOID.1.14 +# number of sensors in connUnitSensorTable +connUnitNameOID=$SYSTEMOID.1.20 +# symbolic name +connUnitContactOID=$SYSTEMOID.1.23 +connUnitLocationOID=$SYSTEMOID.1.24 + +SENSOROID=$BASEOID.1.8 +connUnitSensorIndexOID=$SENSOROID.1.2 +connUnitSensorNameOID=$SENSOROID.1.3 +# textual id of sensor +connUnitSensorStatusOID=$SENSOROID.1.4 +# 1 = unknown, 2 = other, 3 = ok, 4 = warning, 5 = failed +connUnitSensorMessageOID=$SENSOROID.1.6 +# textual status message + +PORTOID=$BASEOID.1.10 +connUnitPortUnitIdOID=$PORTOID.1.1 +connUnitPortIndexOID=$PORTOID.1.2 +connUnitPortTypeOID=$PORTOID.1.3 +connUnitPortStateOID=$PORTOID.1.6 +# user selected state +# 1 = unknown, 2 = online, 3 = offline, 4 = bypassed, 5 = diagnostics +connUnitPortStatusOID=$PORTOID.1.7 +# actual status +# 1 = unknown, 2 = unused, 3 = ready, 4 = warning, 5 = failure +# 6 = notparticipating, 7 = initializing, 8 = bypass, 9 = ols, 10 = other +# Always returns 2, so this is utterly useless +connUnitPortSpeedOID=$PORTOID.1.15 +# port speed in kilobytes per second + +usage() +{ + echo "Usage: $0 -H host -C community -T status|sensors" + exit 0 +} + + +get_system() +{ + echo "$SYSTEM"|grep "^$1."|head -1|sed -e 's,^.*: ,,' +} + +get_sensor() +{ + echo "$SENSOR"|grep "^$2.*$1 = "|head -1|sed -e 's,^.*: ,,' +} + +get_port() +{ + echo "$PORT"|grep "^$2.*$1 = "|head -1|sed -e 's,^.*: ,,' +} + +if test "$1" = -h; then + usage +fi + +while getopts "H:C:T:" o; do + case "$o" in + H ) + HOST="$OPTARG" + ;; + C ) + COMMUNITY="$OPTARG" + ;; + T ) + TEST="$OPTARG" + ;; + * ) + usage + ;; + esac +done + +RESULT= +STATUS=0 # OK + +case "$TEST" in +sensors ) + SENSOR=`snmpwalk -v 1 -c $COMMUNITY -On $HOST $SENSOROID` + # Figure out which sensor indexes we have + connUnitSensorIndex=`echo "$SENSOR"| + grep -F "$connUnitSensorIndexOID."| + sed -e 's,^.*: ,,'` + for i in $connUnitSensorIndex; do + connUnitSensorName=`get_sensor $i $connUnitSensorNameOID` + connUnitSensorStatus=`get_sensor $i $connUnitSensorStatusOID` + connUnitSensorMessage=`get_sensor $i $connUnitSensorMessageOID` + RESULT="$RESULT$connUnitSensorName = $connUnitSensorMessage +" + if test "$connUnitSensorStatus" != 3; then + STATUS=2 # Critical + fi + done + if test -z "$SENSOR"; then + STATUS=3 # Unknown + fi + ;; +status ) + SYSTEM=`snmpwalk -v 1 -c $COMMUNITY -On $HOST $SYSTEMOID` + connUnitStatus=`get_system $connUnitStatusOID` + connUnitProduct=`get_system $connUnitProductOID` + connUnitSn=`get_system $connUnitSnOID` + case "$connUnitStatus" in + 3 ) + RESULT="Overall unit status: OK" + ;; + 4 ) + RESULT="Overall unit status: Warning" + STATUS=1 + ;; + 5 ) + RESULT="Overall unit status: Failed" + STATUS=2 + ;; + * ) + RESULT="Overall unit status: Unknown" + STATUS=3 + ;; + esac + if test ! -z "$connUnitProduct"; then + RESULT="$RESULT +Product: $connUnitProduct" + fi + if test ! -z "$connUnitSn"; then + RESULT="$RESULT +Serial number: $connUnitSn" + fi + ;; +* ) + usage + ;; +esac + +echo "$RESULT" +exit $STATUS ================================================================ _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
