Fw: expect parameter
Jeremy Kister
argus-01 at jeremykister.com
Fri Oct 15 22:28:07 EDT 2004
On Fri, 15 Oct 2004 10:22:45 -0400, Jason 'XenoPhage' Frisvold wrote:
> expression? I'm trying to monitor the replication status on my MySQL
> server and I want to ensure that Slave_IO_Running and Slave_SQL_Running
> are both Yes. I believe I can do this by checking for the string "|
> Yes | Yes" in the return of "show slave status;" ... I just need
I dont know of a version of Mysql that shows "|Yes | Yes"; this may be
some interpretation of some softare trying to show you columns.
the best way I've found for argus to directly monitor MySQL slave status is:
Service DB {
dsn: DBI:mysql:host=hostname
user: username
pass: password
sql: show slave status
expect: Yes Yes
label: slave_status
uname: Status
}
this could, possibly, yield false positives, though. To be realy _really_
sure, run some perl:
#!/usr/local/bin/perl
use strict;
use DBI;
my $hostname = shift || die "specify hostname\n";
my $dbun = 'user';
my $dbpw = 'pass';
my $dsn = "DBI:mysql:host=${hostname}";
my $dbh = DBI->connect($dsn, $dbun, $dbpw, {RaiseError =>1});
my $sql = 'SHOW SLAVE STATUS';
my $sth = $dbh->prepare($sql);
$sth->execute;
my $row = $sth->fetchrow_hashref;
my $io = $row->{Slave_IO_Running};
my $sql = $row->{Slave_SQL_Running};
$sth->finish;
$dbh->disconnect();
if(($io eq 'Yes') && ($sql eq 'Yes')){
print "OK\n"
}else{
print "ERROR\n";
}
__END__
and then in your argus config, just put:
Service Prog {
command: /usr/local/script/sqltest.pl host.example.com
expect: ^OK
label: SQL_SLAVE
}
--
Jeremy Kister
http://jeremy.kister.net/
More information about the Arguslist
mailing list