El siguiente plugin NAGIOS en Scripts Bash, lo realice para monitorear un servidor LINUX, el cual se creo solo con un File System principal (/). Y se requiere monitorear el espacio disponible en los siguiente Directorios: /usr /usr01 /usr02 A estos directorios les asignaremos un máximo de uso de 15 20 y 30 Gigas de uso en disco. El plugin debe alertar en estado WARNING cuando sobrepasen el 70 % de uso y alertar en estado CRITICAL, cuando sobrepase el 90% de uso.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#!/bin/bash # Directorios a monitorear DIRS=("/usr" "/usr01" "/usr03") # Límites en GB para cada directorio LIMITS=(15 20 30) # Umbrales WARNING_THRESHOLD=70 CRITICAL_THRESHOLD=90 STATUS=0 OUTPUT="" for i in "${!DIRS[@]}"; do DIR="${DIRS[$i]}" LIMIT="${LIMITS[$i]}" # Obtener uso en GB USED=$(du -sBG "$DIR" 2>/dev/null | awk '{print $1}' | sed 's/G//') if [ -z "$USED" ]; then echo "UNKNOWN - No se pudo obtener el uso de $DIR" exit 3 fi # Calcular porcentaje de uso PERCENT=$(( USED * 100 / LIMIT )) if [ "$PERCENT" -ge "$CRITICAL_THRESHOLD" ]; then STATUS=2 OUTPUT+="CRITICAL: $DIR usa $USED GB de $LIMIT GB ($PERCENT%) | " elif [ "$PERCENT" -ge "$WARNING_THRESHOLD" ]; then if [ "$STATUS" -lt 2 ]; then STATUS=1; fi OUTPUT+="WARNING: $DIR usa $USED GB de $LIMIT GB ($PERCENT%) | " else OUTPUT+="OK: $DIR usa $USED GB de $LIMIT GB ($PERCENT%) | " fi done # Eliminar el último separador OUTPUT="${OUTPUT% | }" echo "$OUTPUT" exit $STATUS |
Al ejecutarlo directamente en un servidor. Entregaría el siguiente resultado :
|
1 2 3 |
./checkdir.sh OK: /usr usa 3 GB de 15 GB (20%) | WARNING: /usr01 usa 40 GB de 45 GB (88%) | OK: /usr02 usa 1 GB de 30 GB (3%) |