Cargando...

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