ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ#!/bin/bash # Nagios NRPE Script # Este script devuelve la ocupacion media de CPU, basandose en MPSTAT # Es bastante generico, la idea es que sirva para muchos tipos de traficos # OK - Por debajo del warning_threshold # WARNING - Entre el warning_threshold y el critical_threshold # CRITICAL - Por encima del critical_threshold # UNKNOWN - Resto de errores (primera ejecucion, valor negativo, etc.) # PARAMETROS # tiempo de sampling para mpstat # warning threshold de cpu libre (por debajo, asle con warning o con critical). # critical threshold de cpu libre (por debajo, sale con critical). # Sanitycheck if [ $# -ne 3 ] then echo "Usage: `basename $0` mpstatsampling warningthreshold criticalthreshold" echo "Sample: `basename $0` 10 20 40" exit 3 fi # Variable INIT SAMPLING=$1 WARNING=$2 CRITICAL=$3 # Check what mpstat version we're running MPSTATVER=`/usr/bin/mpstat -V 2>&1 | head -n 1| cut -d' ' -f3 | cut -d. -f1` # Sanity checks on variables # Call to MPSTAT RESULT=$(/usr/bin/mpstat -P ALL $SAMPLING 1 | egrep -i 'Average|Media' | grep all) #Sample output #Media: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle #Media: all 0,00 0,00 0,00 0,00 0,00 0,00 0,02 0,00 99,98 USR=$(echo $RESULT | awk '{print $3}' | sed s/','/'.'/) NICE=$(echo $RESULT | awk '{print $4}' | sed s/','/'.'/) SYS=$(echo $RESULT | awk '{print $5}' | sed s/','/'.'/) IOWAIT=$(echo $RESULT | awk '{print $6}' | sed s/','/'.'/) IRQ=$(echo $RESULT | awk '{print $7}' | sed s/','/'.'/) SOFT=$(echo $RESULT | awk '{print $8}' | sed s/','/'.'/) STEAL=$(echo $RESULT | awk '{print $9}' | sed s/','/'.'/) GUEST=$(echo $RESULT | awk '{print $10}' | sed s/','/'.'/) IDLE=$(echo $RESULT | awk '{print $11}' | sed s/','/'.'/) # mpstat version 8 doesnt display guest info. So our guest info is really Idle info if [ $MPSTATVER -le 8 ]; then IDLE=$GUEST GUEST="0.00" fi # Debug purposes #echo -n $USR $NICE $SYS $IOWAIT $IRQ $SOFT $STEAL $GUEST $IDLE CRITICAL=$(echo "$IDLE < $CRITICAL" | bc -l) if [ "$CRITICAL" == "1" ]; then echo -n "Critical: $IDLE average cpu idle" echo "| USR=$USR%, NICE=$NICE%, SYS=$SYS%, IOWAIT=$IOWAIT%, IRQ=$IRQ%, SOFT=$SOFT%, STEAL=$STEAL%, GUEST=$GUEST%, IDLE=$IDLE%" exit 2 fi # CHECK IF WARNING WARNING=$(echo "$IDLE < $WARNING" | bc -l) if [ "$WARNING" == "1" ]; then echo -n "WARNING": $IDLE average cpu idle echo "| USR=$USR%, NICE=$NICE%, SYS=$SYS%, IOWAIT=$IOWAIT%, IRQ=$IRQ%, SOFT=$SOFT%, STEAL=$STEAL%, GUEST=$GUEST%, IDLE=$IDLE%" exit 1 fi # NORMAL EXIT echo -n "OK: $IDLE average cpu idle" echo "| USR=$USR%, NICE=$NICE%, SYS=$SYS%, IOWAIT=$IOWAIT%, IRQ=$IRQ%, SOFT=$SOFT%, STEAL=$STEAL%, GUEST=$GUEST%, IDLE=$IDLE%" exit 0