Script à intégrer dans un outil de monitoring pour tester si une réplication MySQL est fonctionnelle


Web / lundi, août 31st, 2009

Récemment un copain m’a demandé si je n’avais pas quelque chose pour vérifier qu’une réplication MySQL est bien fonctionnelle.

Je lui ai ressorti un petit script Perl que j’avais fait à l’époque et qui est appelé par l’outil de monitoring utilisé au boulot.

Vu que ce script  est simple et pratique, je le poste ici en me disant qu’il servira peut-être un jour à quelqu’un d’autre.

Pour utiliser ce script, il suffit :

1° D’avoir perl installé (ce qui est le cas sur tous les linux)

2° D’avoir le module perl DBI installé (pour l’installer sous Linux Debian «aptitude install libdbi-perl »)

3° D’avoir le module perl MySQL DBD installé (pour l’installer sous Linux Debian « aptitude install libdbd-mysql-perl ») 

… et bien sûr d’avoir une base de données répliquée sur au moins un autre serveur (salement mise dans mon code sous la dénomination « DB_A_TESTER »)

#!/usr/bin/perl -w
use strict;
use DBI;
# Script to test Test MySQL replication by TRD 08/01/2008

if (scalar(@ARGV)==3) {
        #Variables
        my $dbServer= »DBI:mysql:database=syslog;host=$ARGV[0] »;
        my $dbUser=$ARGV[1];
        my $dbPwd=$ARGV[2];

        #Connect to DB
        my $db=DBI->connect($dbServer,$dbUser,$dbPwd) || exit 2;

        my $rs=$db->prepare(‘show slave status’);
        $rs->execute();
        my $dr=$rs->fetchrow_hashref();
        my $Slave_IO_Running=$dr->{‘Slave_IO_Running’};
        my $Slave_SQL_Running=$dr->{‘Slave_SQL_Running’};
        $rs->finish();
        $db->disconnect();
        if (($Slave_IO_Running eq ‘Yes’) && ($Slave_SQL_Running eq ‘Yes’)) {
                exit 0;
        }
        else {
                exit 2;
        }
}
else {
        print « Missing parametern »;
        exit 1;
}

Il ne reste plus qu’à faire appeler ce script par votre système de monitoring. Le code de retour 0 signifie que la réplication est fonctionelle.

Une réponse à « Script à intégrer dans un outil de monitoring pour tester si une réplication MySQL est fonctionnelle »

Les commentaires sont fermés.