•
Comprobar la caducidad de la garantía de Dell mediante Nagios (versión 2)
Anteriormente vimos como comprobar las garantías de equipos Dell automáticamente mediante Nagios, pero tiene una pega en el caso de equipos nuevos con garantías extendidas.
Si compramos un equipo nuevo con la extensión de garantía de soporte en 4h tendríamos lo siguiente:
La garantía “Next Business Day” la podemos ignorar siempre que tengamos vigente la “ProSupport for IT and 4hr Mission Critical“, por lo que he modificado el check de Nagios para que tenga en cuenta solamente la más grande por defecto:
#!/bin/bash
GALETA=$(mktemp /tmp/dell.galeta.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
DATA=$(mktemp /tmp/dell.data.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
LOWER=0
while getopts 'lh:' OPT;
do
case $OPT in
l) LOWER=1
;;
h) JELP=1
;;
[?]) WTF="yes"
;;
esac
done
shift $(($OPTIND - 1))
if [ -n "$WTF" ];
then
echo WTF?
exit 3;
fi
if [ -n "$JELP" ];
then
echo $0 [-l] SERIAL
exit 3;
fi
wget 'http://support.dell.com/support/topics/global.aspx/support/my_systems_info/details' --save-cookies $GALETA -O /dev/null 2>/dev/null
wget --load-cookies $GALETA --post-data "ServiceTagNumber=&logout=&ServiceTag=$*" 'http://support.dell.com/support/topics/global.aspx/support/my_systems_info/details?c=us&l=en&s=dhs&cs=19' -O $DATA 2>/dev/null
if [ $LOWER == "1" ];
then
RESULTS=$(cat $DATA | sed 's/<tr[^>]*>/jordiINTROjordi/g' |sed 's/<[^>]*>/ /g' | sed 's/ / /g' | sed 's/{[^}]*}/ /g' | grep ".contract_table" | sed 's/jordiINTROjordi/\n/g' | grep -v ".contract_table" | grep -v "1.800.247.4618" | sed 's/[^0-9]/ /g' | awk '{ print $NF }' | grep "^[0-9]*$")
else
RESULTS=$(cat $DATA | sed 's/<tr[^>]*>/jordiINTROjordi/g' |sed 's/<[^>]*>/ /g' | sed 's/ / /g' | sed 's/{[^}]*}/ /g' | grep ".contract_table" | sed 's/jordiINTROjordi/\n/g' | grep -v ".contract_table" | grep -v "1.800.247.4618" | sed 's/[^0-9]/ /g' | awk '{ print $NF }' | grep "^[0-9]*$" | sort -rn | head -n1)
fi
if [ -z "$RESULTS" ];
then
echo "WTF?!?!?!?!?!??! - $*"
exit 3
fi
for i in $RESULTS;
do
if [ $i -le 30 ];
then
echo CRITICAL - $i days left - $*
exit 2
fi
PRINT="$PRINT - $i days left"
done
rm $GALETA
rm $DATA
echo OK $PRINT - $*
Pero si por algún motivo queremos que se comporte como en la versión anterior deberemos añadir la opción -l. Para el caso de la imagen los dos comportamientos serían:
# ./check_dell_support XX29X4J OK - 734 days left - XX29X4J # ./check_dell_support -l XX29X4J CRITICAL - 3 days left - XX29X4J
Relacionados
Imprimir
•
6 comments to “Comprobar la caducidad de la garantía de Dell mediante Nagios (versión 2)”
•

15. June 2010 at 7:25 pm :
No existe una cosa parecida para el Hardware de HP?
Saludos
8. July 2010 at 3:42 pm :
¡¡¡Diossss!!! Te acabas de convertir en mi heroe con este check.
Copy-paste inmediato a mi Nagios.
MUCHAS gracias por el aporte.
Diego Fernández
8. July 2010 at 3:44 pm :
Muchas gracias, pero justo ayer cambiaron algo y lo corregí con estas modificaciones, las he actualizado en el post ahora mismo:
if [ $LOWER == "1" ]; then RESULTS=$(cat $DATA | sed 's/<tr[^>]*>/jordiINTROjordi/g' |sed 's/<[^>]*>/ /g' | sed 's/ / /g' | sed 's/{[^}]*}/ /g' | grep ".contract_table" | sed 's/jordiINTROjordi/\n/g' | grep -v ".contract_table" | sed 's/[^0-9]/ /g' | awk '{ print $NF }' | grep "^[0-9]*$") else RESULTS=$(cat $DATA | sed 's/<tr[^>]*>/jordiINTROjordi/g' |sed 's/<[^>]*>/ /g' | sed 's/ / /g' | sed 's/{[^}]*}/ /g' | grep ".contract_table" | sed 's/jordiINTROjordi/\n/g' | grep -v ".contract_table" | sed 's/[^0-9]/ /g' | awk '{ print $NF }' | grep "^[0-9]*$" | sort -rn | head -n1) fi8. July 2010 at 3:47 pm :
No lo tengo hecho, pero todo es dedicarle un rato
23. November 2010 at 3:38 pm :
Disculpen, soy nuevo en esto del nagios. Porían decirme que es lo que tengo que configurar para poder poner operativa esta función en nagios. Que archivos debo editar, donde pego esta información que es lo que tengo que hacer?. Saludos y gracias de antemano.
23. November 2010 at 4:51 pm :
Dicho código es un shell script que deberás dejar en el directorio dónde tengas el resto de checks y luego ya depende. Si quieres un check remoto con NRPE sino lo puedes hacer directamente desde la máquina de motorización.
Cada instalación es diferente por lo que no te puedo decir exactamente dónde tocar