[CentOS-es] Script Nagios
Fequay
fequay en esfera.cl
Mar Abr 22 15:08:51 UTC 2008
buenas,
Tengo el siguiente shell script configurados en una maquina
Linux, al ejecutar el script en la maquina local, me trae
los datos al pasarlos por el NRPE hacia la maquina con
Nagios, no me lleva los datos.
Este el el programa:
#!/bin/bash
debug=$(echo "$@" | sed -e "s/.*\(-D\).*/\1/g")
if [ "$debug" = "-D" ]; then
opcion=$( expr "$#" - 1 )
else
opcion="$#"
fi
function retorna_estado {
##############################################################################################
status=$(/usr/sbin/asterisk -rx "core show channels" | grep
"active calls" | awk '{ print $3" "$2" "$1}')
register=$(/usr/sbin/asterisk -rx "sip show peers " | grep
"OK" | awk '{ print $3" "$2" "$1}' | wc -l)
usadas=$(echo $status | awk '{ print $3 }')
libres=$(echo "$register - $usadas" | bc)
#echo "Call simultaneas: $usadas Total Registros: $register
Chanels No Activos: $libres"
##############################################################################################
prused=$(echo "$usadas - $libres" | bc -l | sed -e
"s/\(^.....\).*/\1/g" )
#echo $register
echo "Call OK: Totalles $(echo "$usadas")x, Registros
$register x, Free $libres x"
#echo $register
exit 0
if [ "$1" = 0 ]; then
echo "-"
##################################
elif [ "$1" = 1 ]; then
if [ "$libres" -le "$(echo "$2" | bc)" ]; then
echo "Call WARNING:$(echo "$register" | bc )Kb, Used:$(echo
"$usadas" | bc )Kb, Free:$(echo "$libres" | bc )Kb $status"
exit 1
elif [ "$libres" -gt "$(echo "$2" | bc)" ];then
echo "Call OK: Total:$(echo "$register" | bc )Kb,
Used:$(echo "$usadas" | bc )Kb, Free:$(echo "$libres" | bc
)Kb $status"
exit 0
fi
####################################
elif [ "$1" = 2 ];then
if [ "$libres" -le "$(echo "$2" | bc)" ];then
echo "MEM CRITICAL: Total:$(echo "$register" | bc )Kb,
Used:$(echo "$usadas" | bc )Kb, Free:$(echo "$libres" | bc
)Kb $status"
exit 2
elif [ "$libres" -gt "$(echo "$2" | bc)" ];then
echo "MEM OK: Total:$(echo "$register" | bc )Kb,
Used:$(echo "$usadas" | bc )Kb, Free:$(echo "$libres" | bc
)Kb $status"
exit 0
fi
####################################
elif [ "$1" = 3 ];then
if [ "$libres" -le "$(echo "$3" | b) " ];then
echo "MEM CRITICAL: Total:$(echo "$register" | bc )Kb,
Used:$(echo "$usadas" | bc )Kb, Free:$(echo "$libres" | bc
)Kb $status"
exit 2
elif [ "$libres" -le "$(echo "$2" | bc)" ];then
echo "MEM WARNING: Total:$(echo "$register" | bc )Kb,
Used:$(echo "$usadas" | bc )Kb, Free:$(echo "$libres" | bc
)Kb $status"
exit 1
elif [ "$libres" -gt "$(echo "$2" | bc)" ];then
echo "MEM OK: Total:$(echo "$register" | bc )Kb,
Used:$(echo "$usadas" | bc )Kb, Free:$(echo "$libres" | bc
)Kb $status"
exit 0
fi
####################################
return 0
fi
}
if [ "$1" = "-?" ];then
echo ""
echo "uso: $0 -w INTEGER -c INTEGER -D"
echo "-w : umbral de warning(INTEGER)"
echo "-c : umbral de critical(INTEGER)"
echo "-D : Debug de memoria(APAN)"
echo "-? : esta ayuda"
echo ""
elif [ "$#" = 1 ] && [ "$1" = "-D" ] || [ "$#" = 0
];then
retorna_estado 0
elif [ "$opcion" = 2 ];then
if [ "$1" == "-w" ] && [ "$2" != "" ]; then
retorna_estado 1 $2
elif [ "$1" == "-c" ] && [ "$2" != "" ];then
retorna_estado 2 $2
else
echo "$0: error de parametros"
exit 4
fi
elif [ "$opcion" = 4 ];then
if [ "$1" == "-w" ] && [ "$2" != "" ] && [ "$3" ==
"-c" ] && [ "$4" != "" ];then
retorna_estado 3 $2 $4
else
echo "$0: error de parametros"
exit 4
fi
else
echo "$0: error en parametros"
echo ""
echo "uso: $0 -w INTEGER -c INTEGER"
echo "-w : umbral de warning(INTEGER)"
echo "-c : umbral de critical(INTEGER)"
echo "-? : esta ayuda"
echo ""
fi
Atte.
Fernando Quil Ayala
Más información sobre la lista de distribución CentOS-es