Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

Im looking for a tool that could help me and my team monitor our MySQL Replication.

I would love for a tool that could alert me if

  • Seconds_Behind_Master passes a threshold
  • Slave_SQL_running is false
  • Slave_IO_running is false

If not alerting, then maybe just get a quick view of these parameters.

I am also ready for paid solutions.

Any ideas on such service/tool?

share|improve this question

closed as off topic by jcolebrand Jan 9 '12 at 21:56

Questions on Database Administrators Stack Exchange are expected to relate to database administration within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

add comment

5 Answers 5

up vote 0 down vote accepted

I use a tool called Server Density which also monitors various other metrics from the system, but I use it mainly to log statistics for my mysql slaves/masters and alert me if the get too slow, or if they go down. It's quite handy :) Though it does have a hefty price tag.

share|improve this answer
add comment

MONyog - MySQL Monitoring tool.

It has the features you are looking for. Additionally you can monitor your replication in real-time. If the replication fails you will be notified via an email and/or by SNMP traps.

Give it a try...

share|improve this answer
add comment

You could quite easily write a simply Perl or PHP script, running on a cron, to periodically check the MySQL server and alert you to any problems.

For example, I have the following Perl code in my setup:

$sql="show slave status";
$sth=$dbhread->prepare($sql);
$sth->execute();
($result)=$sth->fetchrow_hashref();
$sth->finish();

if($result->{'Slave_SQL_Running'} ne "Yes") {
   &SendAlert("Slave SQL not running");
}

if($result->{'Slave_IO_Running'} ne "Yes") {
   &SendAlert("Slave IO not running");
}

if($result->{'Seconds_Behind_Master'} > $threshold) {
   &SendAlert("Seconds Behind Master is too high");
}

Obviously &SendAlert can be set up to do what ever you like (email/SMS alerting)

share|improve this answer
    
No need to check Seconds_Behind_Master is one of the first two conditions is true because Seconds_Behind_Master is NULL when either 'Slave_IO_Running' or 'Slave_SQL_Running' is No. Still, +1 for Perl script idea rather than for commerical software. Even FreeWare is not necessary. –  RolandoMySQLDBA Dec 24 '11 at 23:31
add comment

MySQL Enterprise Monitor http://www.mysql.com/products/enterprise/monitor.html may be helpful. There's a separate tab for replication where you can see all the information as well as set triggers using 'Events'.

share|improve this answer
add comment

If you're using Nagios there's a build in plugin to monitor all you want and more

http://exchange.nagios.org/directory/MySQL/check_mysql_health/details

If you're currently implementing your monitoring in general as a bunch of one off scripts you should probably look toward moving to a more centralized tool such as Nagios to manage the checks, threshold and paging policies.

Edit: Nagios and the plugins are free, plus you can write your own plugins to suit specific needs that aren't already addressed by the community.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.