10 Jun 2015

Monitoreo de replicación MySQL

Monitoreo de replicación MySQL

El conocer el estatus de nuestra replicación es vital para el soporte de nuestros datos, con un sencillo script que determine los dos principales valores de la replicación (último error producido y el tiempo de desfase), podremos lanzar notificaciones vía correo sobre lo que sucede desde un cron que se ejecute cada cierto tiempo en este monitoreo.

El siguiente script presupone que se ejecuta desde el propio servidor de replicación y que se tiene configurado el envió de correos desde el comando mail (configurado con postfix).

#!/bin/bash

host=localhost
user=usuario
password=12345

ERROR=`mysql -h $host -u$user -p$password -e 'show slave status\G' | grep Last_SQL_Error | sed -e 's/ *Last_SQL_Error: //'`
SECONDS=`mysql -h $host -u$user -p$password -e 'show slave status\G' | grep Seconds_Behind_Master | sed -e 's/ *Seconds_Behind_Master: //'`
let MINUTES_BEHIND=($SECONDS / 60)
if [ $MINUTES_BEHIND -gt 30 ]; then
        echo "Hay un desfase de $MINUTES_BEHIND minutos en la replicacion de MX" | mail -s "Desfase en replicacion" micorreo@dominio.com
fi
if [ -n "$ERROR" ]; then
   echo $ERROR | mail -s "ERROR en replicacion" micorreo@dominio.com
fi

Artículos relacionados