Comprobar la caducidad de la garantía de Dell mediante Nagios
Una de las tareas más pesadas, repetitiva y aburrida es la comprobación de la garantía de los servidores. Mediante el siguiente script integrable con Nagios podemos comprobar el estado de la garantía automáticamente y recibir alertas desde el Nagios.
Actualización: Existe una segunda versión de este check para comprobar garantías de Dell
Su funcionamiento es simple, le pasamos como parámetro el serial del equipo y nos contestará OK si quedan más de 30 días y CRITICAL en caso que queden menos de 30:
$ ./check_dell_support 6333Q3J OK - 1061 days left - 1061 days left $ ./check_dell_support 9YYYY2J CRITICAL - 0 days left $ ./check_dell_support putarata 0 WTF?!?!?!?!?!??!
El script es el siguiente:
#!/bin/bash
GALETA=$(mktemp /tmp/dell.galeta.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
wget 'http://support.dell.com/support/topics/global.aspx/support/my_systems_info/details' --save-cookies $GALETA -O /dev/null 2>/dev/null
COUNT=0
RESULTS=""
for i in $(wget --load-cookies $GALETA --post-data "ServiceTagNumber=&logout=&ServiceTag=$1" 'http://support.dell.com/support/topics/global.aspx/support/my_systems_info/details?c=us&l=en&s=dhs&cs=19' -O - 2>/dev/null| 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" | awk '{ print $NF }' | grep "^[0-9]*$");
do
if [ $i -le 30 ];
then
echo CRITICAL - $i days left - $1
exit 2
fi
RESULTS="$RESULTS - $i days left"
let COUNT=COUNT+1
done
rm $GALETA
if [ $COUNT -eq 0 ];
then
echo "$COUNT WTF?!?!?!?!?!??!"
exit 3
else
echo OK $RESULTS
fi
Para evitar tener que buscar el serial de cada equipo podemos usar la instrucción dmidecode:
# dmidecode --type 1 | grep "Serial" | awk '{ print $NF }'
DX2323J
A continuación podemos generar en cada equipo la entrada en el NRPE y reinciar el daemon.
# echo "command[check_dell_support]=/usr/local/nagios/libexec/check_dell_support $(dmidecode --type 1 | grep "Serial" | awk '{ print $NF }')" >> nrpe.cfg
A continuación añadimos el check en el Nagios:
define service{
use local-service ; Name of service template to use
host_name maria
service_description Garantia Dell
check_command check_nrpe!check_dell_support
check_interval 1440
notification_interval 1440
retry_interval 1440
max_check_attempts 1
}
Dicha comprobación la haremos una vez al dia (cada 1440 minutos) ya que no tiene ningún sentido hacerla más frecuentemente.
Relacionados
Imprimir

19. May 2010 at 9:36 am :
Me ha parecido sobresaliente la idea…. y el script!!!
19. May 2010 at 1:33 pm :
ehlo,
Muy interesante, probado y funcionando!
salu2!
.
19. May 2010 at 9:30 pm :
Muchas gracias! Siempre he odiado las tareas repetitivas, por lo que suelo buscar formas más divertidas de hacerlas