Google+

lunes, 4 de abril de 2016

Control de snapshot mediante Nagios


Buenos días a tod@s

El otro día leyendo blog vi que se hablaba del control del los snapshot, una ayuda muy potente a la hora de aplicar cambios y probar qué tal funciona (aunque yo prefiero los snapshot a nivel de cabina), pero muy peligrosa siempre que se alargan en el tiempo.

Una forma de controlar que no tengamos instantáneas en nuestra infraestructuras y en el caso de tenerlas, que estén controladas es mediante Nagios.

1º Lo primero que vamos a necesitar es generar la clave publica de nuestro servidor Nagios y meterla dentro de nuestro ESXI (esto ya lo hemos hecho en el post anterior, pero si alguien quiere, lo volvemos a poner paso a paso)

2º Ahora nos tocará escribir los script para que nuestro Nagios pueda buscar los snapshot existentes y nos avise en caso de que existan:

En este caso nos va a avisar siempre que existan y sean mayores que 2G

-#!/bin/sh
##########################################################3
# DECLARACION DE VARIABLES
######################################################3###

OK='0'
WARNING='1'
CRITICAL='2'

##################################################################################
#CONEXION A ESXI Y LOCALIZACION DE SNAPSHOT MAYORES A 2 GIGAS
################################################################################3#

VMS=$( ssh root@192.168.x.x /usr/bin/find /vmfs/volumes/ -name '*.vmsn' -size +2000000k | cut -d '/' -f5 )
exit 0

####################################################################3
#CUENTA MAQUINAS VISTRUALES CON SNAPSHOT SUPERIORES A 2 GIGAS
####################################################################

NUM=$( echo "$VMS" | wc -l )

if [ "$NUM" -eq 0 ] ; then
echo "sin snapshot"
exit $OK
elif [ "$NUM" -gt 2 ] ; then
echo "$VMS tienen snapshot"
exit $CRITICAL
else 
echo "$VMS tienen snapshot"
exit $WARNING 
fi


2ª script

#!/bin/sh
##########################################################33
#ARCHIVOS DELTA
########################################################

##########################################################3
# DECLARACION DE VARIABLES
######################################################3###

OK='0'
WARNING='1'
CRITICAL='2'

##################################################################################
#CONEXION A ESXI Y LOCALIZACION DE SNAPSHOT MAYORES A 2 GIGAS
################################################################################3#

VMS=$( ssh root@192.168.x.x /usr/bin/find /vmfs/volumes/ -name '*delta.vmdk' -size +2000000k | cut -d '/' -f5 )

####################################################################3
#CUENTA MAQUINAS VISTRUALES CON SNAPSHOT SUPERIORES A 2 GIGAS
####################################################################

NUM=$( echo "$VMS" |grep -v '^$' | wc -l )

if [ "$NUM" -eq 0 ] ; then
echo "sin snapshot"
exit $OK
elif [ "$NUM" -gt 2 ] ; then
echo "$VMS tienen snapshot"
exit $CRITICAL
else 
echo "$VMS tienen snapshot"
exit $WARNING 
fi


3º Una vez que tenemos nuestros script escritos en bash, tendremos que incluir en el fichero commands la siguiente instrucción.

define command {
        command_name    snapshot
        command_line    $USER1$/snapshot.sh $HOSTADDRESS$
        }
define command {
        command_name    snapshot-delta
        command_line    $USER1$/snapshot-delta.sh $HOSTADDRESS$
        }

4º Ya sólo nos quedaría incluir en nuestro fichero la definición del servicio

define service{
       use                     generic-service
        host_name               ESXI
        service_description     snapshot
        check_command           snapshot
        }
define service{
        use                     generic-service
        host_name               ESXI
        service_description     snapshot-delta
        check_command           snapshot-delta
        }


Con estos paso ya tendríamos controlado el uso de nuestros snapshot en nuestra infraestructura y podrían avisarnos mediante correo electrónico, mensajes o whatsapp de su existencia.

Espero que os haya resultado útil.

Un saludo amig@s