Monitorizando un clúster desde Centreon

Seguro que más de alguno de nosotros tenemos algún servicio en clustering, pero, ¿Cómo monitorizamos esto con Centreon? O sea, saber que el clúster ofrezca su servicio ya que sus miembros lo ofrecen.

 

Lo dicho, puede ser habitual dependiendo de nuestra infraestructura tener servicios en alta disponibilidad o balanceados, hablamos de clústers de tipo Activo/Activo o Activo/Pasivo. En el caso de los Activo/Activo, como sabemos todos los miembros del clúster ofrecen su servicio, y en el caso de los Activo/Pasivo, todos los nodos miembros suelen estar detenidos a excepción de uno. Los Activo/Activo son preferibles ya que se balancea y aprovechan los recursos frente a los Activo/Pasivo, que además, a veces estos últimos dan sorpresas, ya que hasta que no se levantan sus servicios no sabes si van a funcionar.

Total, en este documento vamos a ver cómo monitorizar que la salud del clúster es buena o mala dependiendo de sus miembros y el estado de los servicios de los mismos. Gracias al script ‘check_cluster’ podremos consultar el estado de los Hosts o Servicios miembros. 

¡Al turrón! Cómo monitorizar con Centreon esto… pongamos un ejemplo sencillo, un servidor WEB1, un WEB2, WEB3… todos son máquinas que ofrecen la misma página web, por HTTPS. Bueno, pues primero será tenerlos monitorizados como es habitualmente: Individual cada Host, con sus Servicios… y luego ya podremos comenzar con esto 🙂

 

Antes de nada, instalamos el script que vamos a necesitar:

yum install nagios-plugins-cluster.x86_64 -y

 

 

Y vamos directamente a crear el Comando. Todavía no vamos a bajar a shell, hoy no es necesaria. «Configuration» > «Commands» > «Check» > «Create» y crearemos dos. Uno para comprobar los servicios miembros (del clúster), y el otro para los hosts miembros (del clúster):

  • Nombre: check_cluster_servicios
  • Comando: /usr/lib64/nagios/plugins/check_cluster –service -l $ARG1$ -w $ARG2$ -c $ARG3$ -d $ARG4$

 

  • check_cluster_hosts
  • Comando: /usr/lib64/nagios/plugins/check_cluster –host -l $ARG1$ -w $ARG2$ -c $ARG3$ -d $ARG4$

Los argumentos serán:

  • ARG1 : Será la descripción del servicio que veremos luego en GUI.
  • ARG2 : El número de servicios miembros caídos que nos alertará como Warning.
  • ARG3 : El número de servicios miembros caídos que nos alertará como Critical.
  • ARG4 : ¡Aquí viene la salsa de este comando! Lo comentamos a continuación.

 

Lo siguiente ya será crear un Servicio a monitorizar al clúster, por ejemplo si el certificado lo tienen todos sus miembros bien instalado. Creamos el servicio, lo asociamos como siempre a una plantilla, y al comando recién creado.

Los argumentos de Warning y Critical dependerán de cuántos servicios/hosts caidos queremos permitir para alertarnos.

El último argumento, es el interesante, será una lista de servicios o equipos a controlar. Tenemos que concatenar los Servicios miembros a checkear en el siguiente formato: $SERVICESTATEID:WEB1:Certificado HTTPS$,$SERVICESTATEID:WEB2:Certificado HTTPS$,$SERVICESTATEID:WEB3:Certificado HTTPS$. Como veis utiliza variables de Centreon, por lo que desde la shell (todavía) poco podemos hacer (y no es necesaria). En el caso de querer monitorizar los Hosts miembros, el argumento luego lo cumplimentaremos con este formato: $HOSTSTATEID:WEB1$,$HOSTSTATEID:WEB2$,$HOSTSTATEID:WEB3$

 

Nota: Al final con las variables de $SERVICESTATEID: o $HOSTSTATEID lo que obtendremos será el estado actual de ese Servicio o Host, o sea, un 0 si es OK, 1 si es WARNING, 2 si es CRITICAL… 

 

Y tras crear los servicios que ofrece el clúster nos quedaría algo así. En el ejemplo que vemos, sería un clúster Activo/Pasivo, donde a pesar que uno de los nodos miembros tenga los servicios caidos, el clúster no se ve afectado, por tanto su salud y la de sus servicios es OK.

 

Bueno, que hacía tiempo que no ponía algo de Centreon, espero que os haya parecido interesante y es una manera de controlar clústers u otro tipo de combinaciones que necesitemos, dependencias entre máquinas para un servicio esté activo…

Que un abracito gordo y que vaya muy muy bien la semana, cuidarse!

 

Héctor Herrero