1

Script Bash pour monitorer la réplication MySql

Si vous avez mis en place un système de haute disponibilité avec Heartbeat/Mon et réplication en temps réel d’une base mysql, le passage du maître->esclave ne se fera pas si la réplication ne fonctionne plus car Mon supervisera seulement si le proces mysql tourne.
Donc par défaut nous n’avons pas moyen de savoir si la replication fonctionne, pour palier à ce soucie nous allons créer un script bash qu’on placera dans le crontab pour l’exécuter périodiquement.

    status=0
    MasterHost=”192.168.0.1″
    SlaveHost=”192.168.0.2″
    emails=”administateur@domaine.com”
    ReplicationDownAlert=”Replication status – NOK”
    ReplicationGoodAlert=”Replication status – OK”
    ReplicationGoodMessage=”Etat de la réplication sur $SlaveHost est OK.\nBonne journée!\n\n”

    #On se connect à notre MySql et on récupère l'état de la variable si yes ou no de Slave_SQL_Running et Slave_IO_Running
    SQLresponse=`mysql -u root –password=xxxxxx test -e “show slave status \G” |grep -i “Slave_SQL_Running”|gawk ‘{print $2}’`
    IOresponse=`mysql -u root –password=xxxxx test -e “show slave status \G” |grep -i “Slave_IO_Running”|gawk ‘{print $2}’`

    if [ "$SQLresponse" = "No" ]; then
    error=”La réplication sur le serveur exclave($SlaveHost) n'est plus en fionctionnement.\nSlave_SQL_Running: No\n”
    status=1
    fi

    if [ "$IOresponse" = "No" ]; then
    error=”La réplication sur le serveur exclave($SlaveHost) n'est plus en fionctionnement.\nSlave_IO_Running: No\n”
    status=1
    fi

    # si la réplication n'est pas en fonction
    if [ $status = 1 ]; then
    for address in $emails; do
    echo -e $error | mail -s $ReplicationDownAlert $address
    echo “Replication NOK, envoie email à $address”
    done
    fi

    # si la réplication est OK
    if [ $status = 0 ]; then
    for address in $emails; do
    echo -e $ReplicationGoodMessage | mail -s $ReplicationGoodAlert $address
    echo “Replication est OK, envoie email à $address”
    done
    fi

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

Un commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *