Skip to content

Instantly share code, notes, and snippets.

@analogic
Last active May 24, 2017 07:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save analogic/7304464bbb69ff2f7a31c14b82c48cdb to your computer and use it in GitHub Desktop.
Save analogic/7304464bbb69ff2f7a31c14b82c48cdb to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
set -e
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
PROGNAME=`basename $0`
OID_GENERAL_ALARM="1.3.6.1.4.1.9839.2.1.1.23"
OID_ALARMS=(
"1.3.6.1.4.1.9839.2.1.1.5:High Pressure Alarm"
"1.3.6.1.4.1.9839.2.1.1.6:Low Pressure Alarm"
"1.3.6.1.4.1.9839.2.1.1.8:Wrong phase sequence alarm (No GEMINI)"
"1.3.6.1.4.1.9839.2.1.1.9:Fan thermal protection Alarm (Klixon) (No GEMINI)"
"1.3.6.1.4.1.9839.2.1.1.10:Loss of Air Flow Alarm"
"1.3.6.1.4.1.9839.2.1.1.11:Heater Overheating Alarm"
"1.3.6.1.4.1.9839.2.1.1.12:Clogged Filter Alarm"
"1.3.6.1.4.1.9839.2.1.1.13:Room High Temp. Alarm (1st Level Alarm)"
"1.3.6.1.4.1.9839.2.1.1.14:Room Low Temp. Alarm"
"1.3.6.1.4.1.9839.2.1.1.15:Main Sensor Failure/Disconnected"
"1.3.6.1.4.1.9839.2.1.1.16:Auxiliary Sensor Failure/Disconnected"
"1.3.6.1.4.1.9839.2.1.1.17:LAN connection Failure"
"1.3.6.1.4.1.9839.2.1.1.18:Room High Temp. Alarm (2nd Level Alarm)"
"1.3.6.1.4.1.9839.2.1.1.19:Air filter - hour counter threshold Alarm"
"1.3.6.1.4.1.9839.2.1.1.20:Air conditioning unit - hour counter threshold Alarm"
"1.3.6.1.4.1.9839.2.1.1.21:Compressor: hour counter threshold Alarm"
"1.3.6.1.4.1.9839.2.1.1.22:Heater: hour counter threshold Alarm"
"1.3.6.1.4.1.9839.2.1.1.23:General Alarm"
"1.3.6.1.4.1.9839.2.1.1.31:No LAN present"
"1.3.6.1.4.1.9839.2.1.1.36:Addressable Alarm State"
"1.3.6.1.4.1.9839.2.1.1.38:Fan Alarm"
)
print_usage() {
echo "Usage: $PROGNAME host community "
}
print_help() {
echo ""
print_usage
echo ""
echo "This plugin checks Fixnet air controller"
echo ""
exit 0
}
case "$1" in
--help)
print_help
exit 0
;;
-h)
print_help
exit 0
;;
*)
COMMUNITY=$2
HOST=$1
SNMPGET="snmpwalk -v 2c -O v -c $COMMUNITY $HOST"
DESCRIPTIONS=""
GENERAL_ALARM=`${SNMPGET} ${OID_GENERAL_ALARM}`
if [ "$GENERAL_ALARM" != "INTEGER: 0" ]; then
for alarm in "${OID_ALARMS[@]}" ; do
OID=${alarm%%:*}
DESCRIPTION=${alarm#*:}
RESULT=`${SNMPGET} ${OID}`
if [ "${RESULT}" != "INTEGER: 0" ]; then
if [ -z "${DESCRIPTIONS}" ]; then
DESCRIPTIONS="${DESCRIPTION}"
else
DESCRIPTIONS="${DESCRIPTIONS}, ${DESCRIPTION}"
fi
fi
done
if [ -z "${DESCRIPTIONS}" ]; then
echo "CRITICAL - General alarm, no other alarms"
else
echo "CRITICAL - ${DESCRIPTIONS}"
fi
exit 2
fi
echo "OK - No general alarm"
exit 0
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment