¿Cómo monitorizar XenServer con Nagios?: Parte II
Hola amigos, hoy os traigo la continuación del post de la semana pasada sobre la monitorización de servidores Citrix XenServer con Nagios.
En el post anterior vimos como configurar Nagios para utilizar sus plugins sin necesidad de instalar nrpe y nos quedamos en la configuración de estos checkeos para monitorizar nuestros Hosts.
Empezamos con la monitorización básica del host.
- Las CPU’s estén trabajando sin rebasar el 80% de su capacidad.
- Que la memoria RAM no sobrepase el 80% de espacio ocupado.
- Que la partición / no se quede sin espacio.
- Que el Load Average no sobrepase la carga máxima por Cores.
- Que el/los SR’s no se queden sin espacio.
1.- Para monitorizar la CPU. Recomiendo usar un checkeo personalizado ya que los valores que extraen los plugins originales de Nagios, no extaen la información del hipervisor. Por ejemplo podemos hacer un script como este:
#!/bin/bash
CRITICAL_CPU=’95’
WARNING_CPU=’80’
#Porcentage de CPU en uso
#cpu_stat=$(sudo xentop -bi2 | grep Domain-0 | awk ‘{ print $4 }’ | tail -1 | cut -d ‘.’ -f1)
cpu_stat=’80’
#Evaluamos estado
if [ $cpu_stat -ge $CRITICAL_CPU ] ; then
echo «CRITICAL:CPU%= $cpu_stat»
exit 2
elif [ $cpu_stat -ge $WARNING_CPU ] ; then
echo «WARNING: CPU%= $cpu_stat»
exit 1
else
echo «OK:CPU%= $cpu_stat»
exit 0
fi
2.- Para la memoria:
#!/bin/bash
CRITICAL_MEM=’10’
WARNING_MEM=’20’
#Estados de memoria libre y total
mem_free=$(sudo xe host-list name-label=`hostname` params=memory-free –minimal)
mem_total=$(sudo xe host-list name-label=`hostname` params=memory-total –minimal)
#Calculo del porcentage
percent_libre=$(echo «scale=2; ($mem_free / $mem_total)*100 » | bc | cut -d».» -f1)
#Evaluamos estado
if [ $percent_libre -lt $CRITICAL_MEM ] ; then
echo «CRITICAL:MEM%=$percent_libre»
exit 2
elif [ $percent_libre -lt $WARNING_MEM ] ; then
echo «WARNING:MEM%=$percent_libre»
exit 1
else
echo «OK:MEM%=$percent_libre»
exit 0
fi
3.- Para el disco local /, vamos a utilizar el plugin de nagios. Simplemente definimos el comando en el servidor Nagios como:
define command{
command_name check_by_ssh_disk
command_line $USER1$/check_by_ssh -t 20 -H $HOSTADDRESS$ -C «/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ $ARG3$»
}
Definimos el servicio
define service{
use generic-service
hostgroup_name xen
service_description Estado disco /
is_volatile 0
check_period 24×7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_interval 120
notification_period 24×7
notification_options w,u,c,r
check_command check_by_ssh_disk!10%!5%!/
4.- Del mismo modo configuraremos el checkeo para el “load average”
define command{
command_name check_by_ssh_load
command_line $USER1$/check_by_ssh -t 20 -H $HOSTADDRESS$ -C «/usr/lib/nagios/plugins/check_load -w $ARG1$ -c $ARG2$»
}
define service{
use generic-service
hostgroup_name xen
service_description Load
is_volatile 0
check_period 24×7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_interval 120
notification_period 24×7
notification_options w,u,c,r
check_command check_by_ssh_load!15,10,5!30,25,20!
}
Ya tenemos monitorizado nuestro Host. Como habrás visto, la programación de checkeos para Nagios es muy sencilla y lo puedes hacer con el lenguaje de programación que te sea más cómodo.
Esto es todo por hoy. La semana que viene veremos como monitorizar el storage, nuestro pool y otros checkeos más avanzados. Espero como siempre que te haya parecido interesante. Saludos!!
¿Crees que este videopost le puede interesar a alguien a quien conoces? Compártelo clicando los botones de Twitter, Facebook o Google+ de abajo. Gracias por tu apoyo.