systemadmin.es > Hardware > Comprobar la caducidad de la garantía de Dell mediante Nagios (versión 2)

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:

Ejemplo de las garantias de Dell

Ejemplo de las garantias de Dell

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

7 comments to “Comprobar la caducidad de la garantía de Dell mediante Nagios (versión 2)”

  1. No existe una cosa parecida para el Hardware de HP?

    Saludos

  2. No lo tengo hecho, pero todo es dedicarle un rato 🙂

  3. ¡¡¡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

  4. 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)
    fi
    
  5. 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.

  6. 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

  7. Hola, tienes alguna nueva actualizacion de este script??, ahora parece no funcionar ya que no devuelve WTF?!?!?!?!?!??! – tag_number, talvez hayan surgido cambios a la fecha de la pagina, saludos y este excelente el script

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>