| 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);