Current File : //usr/local/nagios/libexececk_perconacluster
#!/usr/bin/perl

use DBI;

$message ="";
$exit = 0;

my $my_cnf = '/etc/check_mk/mysql.cfg';

my $dsn =
  "DBI:mysql:;" . 
  "mysql_read_default_file=$my_cnf";

my $dbh = DBI->connect(
    $dsn, 
    undef, 
    undef, 
    {RaiseError => 1}
) or  die "DBI::errstr: $DBI::errstr";

my $sth = $dbh->prepare("SELECT STRCMP(VARIABLE_VALUE, \"ON\") FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME ='wsrep_ready';");
$sth->execute();
my $row;
while ($row = $sth->fetchrow_arrayref()) {
    $wsrep_ready= @$row[0];
}

my $sth = $dbh->prepare("SELECT STRCMP(VARIABLE_VALUE, \"3\") FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME ='wsrep_cluster_size';");
$sth->execute();
my $row;
while ($row = $sth->fetchrow_arrayref()) {
    $wsrep_cluster_size= @$row[0];
}

my $sth = $dbh->prepare("SELECT STRCMP(VARIABLE_VALUE, \"Synced\") FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME ='wsrep_local_state_comment';");
$sth->execute();
my $row;
while ($row = $sth->fetchrow_arrayref()) {
    $wsrep_local_state_comment= @$row[0];
}

if ($wsrep_ready ne 0){
	$message = $message . " / wsrep_ready not On\n";
	$exit = 2;
}
if ($wsrep_cluster_size ne 0){
        $message = $message . " / wsrep_cluster_size not 3\n";
        $exit = 2;
}
if ($wsrep_local_state_comment ne 0){
        $message = $message . " / wsrep_local_state_comment not Synced \n";
        $exit = 2;
}


$message ="Cluster is OK\n" if $message eq "";

print $message;
exit($exit);