Grupo de bases de datos de alta disponibilidad con Pandora FMS

Pandora FMS se basa fundamentalmente en una base de datos MySQL para configurar y almacenar datos. Un fallo en la base de datos puede paralizar inmediatamente el software de monitorización. El cluster de la base de datos de alta disponibilidad de Pandora FMS nos posibilita desplegar fácilmente una arquitectura robusta y tolerante a los fallos.

Los recursos de cluster se gestionan con Pacemaker, un gestor de recursos de HA (del inglés, high availability) cluster avanzado y escalable. Corosync proporciona un modelo de comunicación de grupo de proceso cerrado para generar máquinas de estado replicadas. Percona, un reemplazo compatible con versiones anteriores de MySQL, se eligió como RDBMS por defecto por su escalabilidad, disponibilidad, seguridad y características de backup.

La replicación activa / pasiva se desarrolla desde un nodo maestro único (con permiso de escritura) a cualquier número de esclavos (solo lectura). Una dirección IP virtual siempre lleva al maestro actual. Si falla el nodo maestro, uno de los esclavos asciende a un maestro y se actualiza la dirección IP virtual en consecuencia.

Base de datos de alta disponibilidad

La herramienta de base de datos de alta disponibilidad de Pandora FMS, pandora_ha, monitoriza el clúster y se asegura que el servidor de Pandora FMS está en continuo funcionamiento, reiniciándolo en caso necesario. pandora_ha se monitoriza a su vez con systemd .

Requisitos previos e instalación

En este artículo configuraremos y probaremos un grupo de nodos con Pandora FMS. Necesitaremos tener instalada la versión Enterprise de Pandora FMS y los hosts adicionales que se ejecutan en la versión 7 de CentOS.

Para configurar el clúster se puede consultar la guía de instalación oficial de Pandora FMS sobre los clústeres de bases de datos de alta disponibilidad. Aunque esta guía sea sencilla, con explicaciones paso a paso, es recomendable tener algo de experiencia con la línea de comandos de Linux.

Al terminar nos damos cuenta de cualquiera de los dos nodos y ejecutamos el estado de pcs para el estado del cluster. Ambos nodos deben estar en línea:

estado cluster HA

El cluster está activo y funciona. También puedes comprobar su estado desde la consola de Pandora FMS. Simplemente ve a Servers -> Manage database HA (consejo: si hacemos clic en el icono de la lupa podremos ver la salida de los estados de pcs sin tener que realizar un ssh a ese nodo):

estado cluster HA en Pandora FMS

La herramienta de base de datos de alta disponibilidad de Pandora FMS crea agentes automáticamente para monitorizar un cluster. Se puede acceder a ellos desde la vista anterior, haciendo clic en el nombre del nodo que aparece en la columna Hostname:

modulos cluster HA

Es conveniente configurar alertas para, por lo menos, los módulos Node Status, Slave IO Running y Slave SQL Running. Estos módulos cambian a estado crítico cuando ocurre un problema, por lo que se puede utilizar el modelo de alertas Critical condition por defecto de Pandora FMS:

alertas cluster HA

Funcionamiento del cluster

Veamos qué ocurre cuando algo va mal. En esta sección probaremos el comportamiento de nuestro cluster de base de datos de alta disponibilidad en diferentes situaciones.

Conmutación por error manual

Quizá necesitemos interrumpir uno de los nodos para realizar un mantenimiento, por ejemplo. En vez de parar un esclavo, detengamos el maestro:

conmutacion por error manual cluster HA

El maestro anterior está en standby y el esclavo ha ascendido a maestro:

grupo de reserva HA

Lo volvemos a conectar:

unstandby conmutacion por error manual cluster HA

El maestro anterior está conectado y ahora es un esclavo. El nuevo maestro no renunciará a su función a no ser que falle.

limpieza cluster HA

Nuestro servidor de Pandora FMS funciona correctamente:

estado servidor cluster HA

Caída del maestro

Si el proceso del servidor de la base de datos falla, se reiniciará automáticamente:

caida cluster HA

Sin embargo, si hay más de una caída en un lapso de una hora, el nodo quedará bloqueado y un esclavo ascenderá a maestro:

bloqueo caída cluster HA

Cuando el problema se haya solucionado, hacemos clic en el icono de escoba para recuperar el nodo bloqueado.

escoba cluster HA

Parada o reinicio de un nodo

Una parada o reinicio de cualquier nodo dejará el cluster con un maestro y la operación no se verá afectada:

parada cluster HA

parada cluster HA

Si seconds behind master es superior a 0 al volver a conectar el nodo, entonces el esclavo aún no ha replicado todas las transacciones que ocurrieron en el maestro. Este valor debería disminuir paulatinamente hasta llegar a 0:

cluster HA

Replicación rota

Cuando el maestro no está en sincronía con el esclavo (es decir, cuando el maestro está por delante del esclavo) y falla, puede que no sea capaz de iniciar la replicación a partir del nuevo maestro hasta que se vuelva a conectar:

replicación rota cluster HA

Algunos de los cambios no replicados por el esclavo anterior podrían entrar en conflicto con los nuevos cambios que se necesitan replicar:

replicación rota cluster HA 2

La manera más fácil de reparar un nodo roto es seguir las instrucciones en la sección reparación de un nodo roto de la guía de instalación del cluster de base de datos de alta disponibilidad de Pandora FMS, lo que conlleva la reconstrucción de una base de datos del nodo a partir del maestro y el reinicio de la replicación.

Añadir nodos adicionales

Aunque no tratemos este tema en el presente artículo, es posible añadir nodos adicionales al cluster para aumentar su resiliencia. Para más información, se puede consultar la guía de instalación de cluster de base de datos de alta disponibilidad de Pandora FMS.

Conclusión

Cuando se utiliza el grupo de datos de alta disponibilidad de Pandora FMS, el servidor de Pandora FMS no detecta los fallos en los nodos esclavos. Sin embargo, es conveniente intervenir rápidamente antes de que caigan otros nodos.

Un fallo en el nodo maestro provocará una breve interrupción hasta que uno de los esclavos ascienda a maestro. Tras esta parada, se recuperará la operación normal automáticamente.

¡Nunca volverá a caer nuestra infraestructura de monitorización por un fallo en la base de datos!

Puede ver la demostración de cómo funciona la base de datos de alta disponibilidad en Pandora FMS aquí:

Shares