¿Cómo monitorizar XenServer con Nagios?: Parte III
Hola amigos, después de unos días de vacaciones… hay que volver a la carga. En el último post sobre monitorización de XenServer con Nagios, faltaba ver la monitorización de storage y otros checkeos avanzados para tener bien controlada nuestra infraestructura.
- Para monitorizar los SR de nuestro pool, primeramente hay que extraer la información que nos da la Xapi:
/usr/bin/xe sr-param-get uuid=<UUID-SR> param-name=physical-size
/usr/bin/xe sr-param-get uuid=<UUID-SR> param-name=physical-utilisation
Mediante estos datos, podemos establecer la lógica que queramos para que nos informe del estado del disco:
#/bin/bash
let total_alloc=`sudo /usr/bin/xe sr-param-get uuid=84ca4fbd-f150-1f62-c9e4-ee4a656558d5 param-name=physical-utilisation`
let total_bytes=`sudo /usr/bin/xe sr-param-get uuid=84ca4fbd-f150-1f62-c9e4-ee4a656558d5 param-name=physical-size`
let factor=1073741824
total_alloc_Gb=`expr $total_alloc \/ $factor`
total_bytes_Gb=`expr $total_bytes \/ $factor`
let free_space=`expr $total_bytes_Gb – $total_alloc_Gb`
total_percentage=`expr 100 \* $total_alloc_Gb \/ $total_bytes_Gb`
#echo $free_space
#echo $total_percentage
if [ $total_percentage -ge «90» ] ; then
echo «CRITICAL: Disc al $total_percentage%»
EXIT=2
else
if [ $total_percentage -ge «80» ] ; then
echo «WARNING: Disc al $total_percentage»
EXIT=1
else
echo «OK: Disc al $total_percentage%»
EXIT=0
fi
fi
exit $EXIT
- Otro checkeo importante que nos puede ser muy útil es comprobar el estado de la XAPI en cada servidor:
#!/bin/bash
#Check que comprueba el estado de la XAPI
#contamos los procesos que hay de xapi
procs=`ps -elf | grep xapi | grep -v grep | wc -l`
#Verificamos que haya algun proc xapi y si no lo hay, critical
if [ -z «$procs» ] ; then
echo «Critical: No hay procesos de Xapi»
exit=1
else #Hay procesos, pues lanzamos una peticion para ver si respnde ok
#Vemos si es capaz de conectar con la Xapi y extramos el número de hosts del pool
test_xapi=`sudo xe host-list | grep name-label | wc -l`
#test_xapi=»1″ #Fuerza a warning
if [ $test_xapi -gt 0 ]; then
ok_test=$(sudo xe host-list name-label=`hostname` params=name-label –minimal)
echo «OK: XAPI respondiendo en $ok_test «
exit=0
else
new_test=$(sudo xe host-list name-label=`hostname` params=name-label –minimal)
echo «Warning: Hay procs de XAPI pero algo falla $new_test»
exit=1
fi
fi
#Salida con el codigo de error para Nagios
exit $exit
A grandes rasgos el checkeo comprueba primeramente que hay procesos de Xapi en la “GNU/Linux LAND” y si existen, ejecuta un xe-host-list. Si este falla retornará código de error ya que aunque haya procesos, la XAPI no responde.
- Estado de los caminos del Multipath
Es importante tener bien monitorizados los caminos si usáis multipath para los que utilicéis una cabina de discos. Una forma de comprobar que están todos OK es filtrar por faulty en la salida de multipath –ll
#!/bin/bash
fault=`sudo /sbin/multipath -ll | grep faulty | wc -l`
if [ $fault -gt 0 ]; then
echo «Algun camino caído”
exit 1
else
echo «Todos los caminos: OK»
exit 0
fi
Con esto, espero haberos dado herramientas para que os programéis vuestros propios monitores, ya sea medianteXAPI o mediante comandos gnu/Linux y si me permitís, me encantaría saber que monitorizáis de vuestros XenServers. Un saludo.
¿Crees que este post le puede interesar a alguien a quien conoces? Compártelo clicando los botones de Twitter, Facebook o Google+ de abajo. Gracias por tu apoyo.