#!/bin/bash SNMPCOM=$1 HOST=$2 # Kommawerte: 0.5 1.33 etc FAKTOR_WARN=0.5 FAKTOR_CRIT=0.75 RETV= RETV_OK=0 RETV_WARN=1 RETV_CRIT=2 RETM="Load:" CORES=`snmpwalk -c$SNMPCOM -v2c $HOST 1.3.6.1.2.1.25.3.3.1.1 | wc -l` CORES_WARN=`echo "$CORES * $FAKTOR_WARN" | bc` CORES_CRIT=`echo "$CORES * $FAKTOR_CRIT" | bc` #LOAD_1=`snmpwalk -c$SNMPCOM -v2c $HOST .1.3.6.1.4.1.2021.10.1.3.1 | egrep -wo '[^ ]*$` LOAD_1=`snmpwalk -c$SNMPCOM -v2c $HOST .1.3.6.1.4.1.2021.10.1.3.1 | egrep -wo '".*"' | tr -d '"'` LOAD_5=`snmpwalk -c$SNMPCOM -v2c $HOST .1.3.6.1.4.1.2021.10.1.3.2 | egrep -wo '".*"' | tr -d '"'` LOAD_F=`snmpwalk -c$SNMPCOM -v2c $HOST .1.3.6.1.4.1.2021.10.1.3.3 | egrep -wo '".*"' | tr -d '"'` RETM1_OK="1 min: $LOAD_1 (ok)." RETM1_WARN="1 min: $LOAD_1 (warnung)." RETM1_CRIT="1 min: $LOAD_1 (kritisch)." RETM5_OK="5 min: $LOAD_5 (ok)." RETM5_WARN="5 min: $LOAD_5 (warnung)." RETM5_CRIT="5 min: $LOAD_5 (kritisch)." RETMF_OK="15 min: $LOAD_F (ok)." RETMF_WARN="15 min: $LOAD_F (warnung)." RETMF_CRIT="15 min: $LOAD_F (kritisch)." # 1 minuten werte if [ "`echo "$LOAD_1 > $CORES_CRIT" | bc -l`" == "1" ] then RETV1=2 RETM="$RETM $RETM1_CRIT" elif [ "`echo "$LOAD_1 > $CORES_WARN" | bc -l`" == "1" ] then RETV1=1 RETM="$RETM $RETM1_WARN" fi # 5 minuten werte if [ "`echo "$LOAD_5 > $CORES_CRIT" | bc -l`" == "1" ] then RETV5=2 RETM="$RETM $RETM5_CRIT" elif [ "`echo "$LOAD_5 > $CORES_WARN" | bc -l`" == "1" ] then RETV5=1 RETM="$RETM $RETM5_WARN" fi # 15 minuten werte if [ "`echo "$LOAD_F > $CORES_CRIT" | bc -l`" == "1" ] then RETVF=2 RETM="$RETM $RETMF_CRIT" elif [ "`echo "$LOAD_F > $CORES_WARN" | bc -l`" == "1" ] then RETVF=1 RETM="$RETM $RETMF_WARN" fi # einer der 1/5/15 minute kritisch? if [ "$RETV1" == "2" ] || [ "$RETV5" == "2" ] || [ "$RETVF" == "2" ] then RETV=2 # einer der 1/5/15 minute auf warnung? elif [ "$RETV1" == "1" ] || [ "$RETV5" == "1" ] || [ "$RETVF" == "1" ] then RETV=1 # alle werte ok else RETM="$RETM $RETM1_OK $RETM5_OK $RETMF_OK" RETV=0 fi # setze "Load: " ergebnisse und erklärung zusammen RETM="$RETM $CORES Kerne. Warnung > $CORES_WARN (Faktor $FAKTOR_WARN). Kritisch > $CORES_CRIT (Faktor $FAKTOR_CRIT)" if [ "$RETV" == "0" ] then echo "$RETM" exit $RETV_OK elif [ "$RETV" == "1" ] then echo "$RETM" exit $RETV_WARN elif [ "$RETV" == "2" ] then echo "$RETM" exit $RETV_CRIT else echo "unknow return value" exit 2 fi