views:

3385

answers:

8

I'd like some opinions about the best mysql monitoring tool available. I've tried MySQL Enterprise Monitor, and it is great for me except it's impossible to get MySQL sell something (see comments for details) - I'm ok to pay even if I find the pricing and bundling it with MySQL Enterprise only unreasonable.

I am also looking at MONyog MySQL Monitor now, gonna give it a try soon. Just wanna get some expert advice/field experience.

+8  A: 

In the *nix environment, the standard monitoring tool is Nagios. You could check out Nagiosexchange, because there are a couple of plugins/addons that mention MySQL.

Aside from Nagios, my favorite tool would be Cacti. It can monitor all sorts of sources and you can setup scanners/feeds quite easily. It supports SNMP which is (imho) sometimes not the easiest to setup, but also not rocket science.

We are using Cacti to monitor diskspace and general resources on our servers, but you could also feed in and graph whatever is in your MySQL server's information_schema available.

My third recommendation would be to employ logwatch. Make it listen on your logfiles and it reports back to you.

My fourth goes out to phpMyAdmin which has a pretty comprehensive statistics page which also tells you where things go wrong so you can improve. Judging from the screenshots I have seen of the MySQL Enterprise Monitor, it's pretty much the same information (sans CPU etc.), which you can feed in from different tools.

All four solutions together are not exactly turn-key solution as it requires you to install and setup different software, get plugins, maybe write your own plugins and do a little customization but since they are opensource, they don't require a hefty yearly subscription.

I did a small survey among some professionals who use MySQL and all said that you cannot get the Enterprise Monitor by itself. You have to buy a support contract. As a commercial alternative, a colleague suggest the Continuent cluster tools, but I have no experience with those.

Till
Thanks a lot for the tips, I think they all make sense. I'd like something more mysql-specific and advanced in terms of monitoring the database health, but some of these can be of good use for me either.
Michael Pliskin
Please define health.
Till
MySQL memory consumption, things like various buffer sizes being suboptimal, cache hit rates, and all this kind of database tuning. We don't have a good DBA, so we're ok to invest a bit in a tool that helps here.
Michael Pliskin
Expanded answer. Buy the support if you have money. Otherwise, those are all my suggestions.
Till
Yes, thanks a lot for extra tips. Actually, I might end up buying support, but will look at other alternatives first. Thanks again!
Michael Pliskin
I'll put in a vote for phpMyAdmin, I'm using it currently for work and I really enjoy it.
jtyost2
+1  A: 

I use Zabbix with a lot of custom monitors which log the output from things like "mysqladmin extended-status" and "mysqladmin status", as well as system level things like disc usage, network throughput, etc.

Jon Topper
And all your custom monitors are home-brewed, correct?
Michael Pliskin
Yes, that's right. They're reasonably straightforward. I may tidy them up and publish them at some point. I've also thought about extending Zabbix to allow perl plugins, which would make these easier to write.
Jon Topper
A: 

I'd also recommend Nagios for availability monitoring.

For performance monitoring try DBTuna http://www.dbtuna.com It gives you a rich history of performance data for MySQL.

+2  A: 

hi frends, i am mysql tool user, i need to monitor my server so while searching i came around monyog which is best at its functionality and features also. I like to recommend to all.

+3  A: 

Jet Profiler for MySQL is good at monitoring queries and has a really nice GUI. Free version at http://www.jetprofiler.com/

Thanks for the tip, will definitely try it out!
Michael Pliskin
Thanks a ton again for the tip, I've tried and bought a license! Extremely useful thing.
Michael Pliskin
+1  A: 

I’d just like to point out another solution (from my employer, so take with a grain of salt – but I do believe in the product ) – LogicMonitor – see http://www.logicmonitor.com/logicmonitor-hosted-monitoring-service/database-monitoring/mysql-monitoring-and-optimization/

It’s advantages are: - unified alerting (a la nagios) and graphing (a la Cacti) - some advisor type functions (although obviously not as good as Merlin’s) - generally cheaper than the Enterprise Monitor - importantly, provides coverage of all devices (not just MySQL) - very simple to configure (hosted model with a small agent on one machine – trivial compared to nagios and cacti) - keeps itself up to date automatically (detecting replicas, storage engine types, new physical drives, etc) - very powerful in its flexibility – easy to add new data to be collected, alert escalations and routing, etc.

If you dont have excess free time to configure and maintain a monitoring system, and to learn what to monitor, this is a good tool. Thanks

Steve Francis
Thanks for the comment, I'd like to try it but I've already purchased MonYOG and using it now. Maybe will try for other projects though.
Michael Pliskin
A: 

I would recommend check_mysql_health with nagios. http://www.consol.de/opensource/nagios/check-mysql-health/ (german page)

ppuschmann
A: 

mysql-snmp looks promising (combining Perl Net-SNMP, SNMP and MySQL Cacti Templates).

Brian Clozel