Nagis – Checkejant snapshots en màquines virtuals de VMware

En aquest post verem com Nagios nos pot ajudar a monitorar la existència de snapshots en la nostra infraestructura virtual, de tots es sabi el perill que tiene tener snapshots o dejarlos durant períodes largos… Backups colgados que dejan snapshots a mitjans… Per combatir això, automatitzaremos un checkeo periodico con un gran script!

 

Este script necesita que tengamos SSH habilitado en un host ESXi (almenys) para checkear la existència de snapshots en los datastores de un host, no usará por tanto SNMP. El script, necesitará validarse contra el host ESXi a la hora de ejecutarse, por lo que deberemos configurar ssh fingerprint. Así el host ESXi confiará en l'usuari que executa el script des de la màquina de Nagios y no preguntará por los credenciales.

El primer, serà lloguerament en la shell del nostre amic Nagios, ahí, ens lloguem amb l'usuari que executa els scripts, en el meu cas l'usuari se que és 'centreon-engine’ (ya que uso CES), por lo que nos logueamos, generem les claus per al nostre usuari i copiem la clau pública al host ESXi, al ser la primera vez que nos conectemos además confirmaremos con un ‘yesque confiamos en su firma.

[sourcecode]la seva – centreon-engine
ssh-keygen -t rsa
scp /var/lib/centreon-engine/.ssh/id_rsa.pub root@HOST_ESXI:/tmp[/sourcecode]

 

 

Ara, nos vamos al host ESXi, nos conectamos con un Putty o similar mediante SSH, y añadimos al fichero de claves de confianza la que acabamos de generar:

[sourcecode]cat /tmp/id_rsa.pub >> /etc/ssh/keys-root/authorized_keys[/sourcecode]

 

 

Bé, lo interesante empieza, ja, nos bajamos este script, lo copiamos al directorio /usr/lib/nagios/plugins/ y lo hacemos ejecutable:

https://exchange.nagios.org/directory/Plugins/Operating-Systems/*-Virtual-Environments/VMWare/Check-snapshots-age-and-number/details

 

Probamos a ejecutarlo, ull, al ejecutarlo como root nos pedirá validarnos, si volem, podemos hacer los pasos anteriores y copiar también la clave pública de root para que el host ESXi confíe en lo que vamos a ejecutar. I si no, metemos la clave manualmente y pista! Deberemos especificar el host ESXi al que haremos la consulta y ademas de indicar primeramente el número de snapshots que permitiremos hasta que nos cante Warning, luego el valor a Critical y si queremos también la antiguedad en días que permitimos:

[sourcecode]./check_VM_snapshots HOST_ESXi NUM_SNAP_WARNING NUM_SNAP_CRITICAL DIAS_SNAP[/sourcecode]

 

 

Recordamos, creamos primero desde Centreon el Comando, des de “Configuration” > “Commands” > “Add…” o duplicamos de uno existente y completamos:

  • Command Name: Indiquem un nom al comandament, en mi caso le pongo el mismo que el script para asociarlo más fácil.
  • Check Type: Lo dejamos en Check.
  • Command Line: /usr/lib/nagios/plugins/check_VM_snapshots $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$

 

Posem en “Descriu arguments” y definimos los 3 argumentos del comando, el ARG1 será el Warning como recordaremos, el ARG2 el valor de Crítical y ARG3 los días de antiguedad del snap.

Gravem amb “Save”!

 

Ahora ya podremos definir el Servei que monitorizará los Snapshots, lo creamos o duplicamos desde “Configuration” > “Services”. Deberemos tener en cuenta lo siguiente:

  • Description: Será el nombre con el que veremos el servei en la vigilació, un nombre como 'Snapshots en MVs’ lo identifica perfectament o que? 😉
  • Linked with Hosts: Lo asociaremos al host ESXi con el que hicimos el fingerprint. Será el host encargado en buscar en los datastores y en las MVs la existència de snapshots.
  • Template: Normalmente 'generic-active-service-custom', dependerá de las que usemos o hayamos modificado.
  • Check Command: Seleccionem el Comandament que hem creat en el pas anterior 'check_VM_snapshots’
  • Args: Dicho comando nos requires que cumplimentemos los 3 arguments, en aquest exemple vull que quan exista 1 snapshot en la meva organització em vaig avisar amb un Warning i si hay 2 o més amb un Critical, tot ello quan els snaps tenen més de 2 dies.

 

Guardem amb “Save”.

 

Exportem les dades i recarreguem la configuració perquè Centreon pugui llegir els nous canvis que acabem de meter. Como siempre iremos a “Configuration” > "Pollers" > "Export configuration", seleccionant el nostre poller, marquem els checks i reiniciem & "Export".

Y ahora ya, des de “Monitoring” ya visualizaremos que sale el servicio que checkeará. Para forzar y probarlo, le seleccionamos y en el combo escogemos: ‘Services – Schedule immediate check (Forced)’.

I llest!!!! Ya tenemos más cositas monitorizadas en nuestro entorno! Cada día descansaremos mejor!!! Com sempre, espero que lo disfrutéis todos!!

 

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!

Nagis - Monitoritzant amb NRPE

16 de May de 2017