Take the 2-minute tour ×
Drupal Answers is a question and answer site for Drupal developers and administrators. It's 100% free, no registration required.

Lately, I have been facing some downtime on some of the Drupal sites I have deployed. I would want to approach the problem pro-actively, rather than reacting to those downtimes by restarting services or the server itself. I have read about monitoring tools like nagios, munin, cacti, etc to monitor the health of your server/infrastructure, but I haven't really tried one in production. I deal with Drupal almost 99% of the times, and I would like to find out suggestions for both server level monitoring, and Drupal (application code) level monitoring.

Basically, I would like to be notified when the server load is high, possibly being pointed to the culprit (or the victim), so that I could take informed decisions. I would also like to know what people use for Drupal level monitoring (such as emailing) when there is a PHP error/warning. (What happens when the email server itself is down?)

share|improve this question

4 Answers 4

up vote 7 down vote accepted

If you want monitor several Drupal sites from the same place with alerts, etc... I can say you are not the only one . It's starting to be a business niche, by now filled by:

Both are commercial SaaS approaches, with free limited options to try the service.

Also there is the Open Source Zabbix monitoring option with its Drupal module http://drupal.org/project/zabbix , but then you should configure and build yourself the server.

All these options have their Drupal modules to send server and drupal-specific information to the monitor server.

UPDATE. Munin has also a specific Drupal Module , with a 2.x branch based on Drush.

share|improve this answer
    
I tried out new relic with drupal and I must say its really extensive in a good way most of the times (xhprof more or less is a good substitute for transaction traces in NR but data collection is indespensible). Also been hearing about drupal.org adopting nagios for monitoring, Thanks for your answer, I'll wait couple of more days for couple more before selecting it. –  Dipen Apr 23 '11 at 12:37
    
Thanks this was the closest to what I was looking for. –  Dipen May 5 '11 at 13:47

These are some Drupal-agnostic suggestions:

  • Are My Sites Up will periodically ping your server(s) and will email you (or SMS if you get the non-free package) if your site is offline or unresponsive.
  • Load Impact is another great free tool that can stress-test your website so you can tell when exactly it starts failing.

As far as the Drupal application itself, I would suggest using Xdebug + Webgrind or XHProf to profile the code and keep an eye on this question: Best way to benchmark Drupal stack performance

share|improve this answer
    
Thanks for letting me know about load impact, I have been using jmeter but then it is more work setting up ur test plans etc. I hope load impact can deal with drupal authenticated simulations. –  Dipen Apr 23 '11 at 12:41

Regardless of which you use, the one thing I would definitely suggest is—unless you have a full-time IT staff—do not maintain your own monitoring: rely on a service that's completely independent from your servers. It's one thing to have a public-facing server down, it's another to have it down and not know about it because your monitoring server is also down. Most monitoring services will include all of the requirements you've listed out of the box.

But at the risk of this being turned into a shopping recommendation question, the service I use for the requirements you've listed is Pingdom:

  • Tells you if a sites up (of course)
  • Measures how long it takes to respond
  • Measures responsiveness and availability on any custom TCP/UDP port
  • Email availability checking
  • Allows for custom HTTP requests, letting you test out different aspects of your application
  • Extensive reporting
  • Worldwide monitoring, and they add about a dozen more monitoring sites every few months
share|improve this answer
    
I am already using site24x7.com and also pingdom (for a diff site) for alerting, I wanted monitoring which proactively tells me about resource usage or potential problems and tightly integrate with server environment. Thanks for your answer. –  Dipen Apr 23 '11 at 12:39

I like pingdom for small/medium sites because it's useful: it tells you that Something Is Wrong from a customer standpoint, which is actionable. Things like load average don't really mean anything unless you've got a wildly misconfigured stack (which you shouldn't) or you're getting hammered from Digg/Reddit (in which case there's nothing you can do anyway, you should have prepared).

From Ted Dziuba's blog:

I call these types of alerts Cool Story, Bro for short. These are bits of information that do not indicate any sort of problem state, and do not prompt any action. Cool Stories are things that you should not even have alerts for. They waste your time and make you paranoid. Cool Story Bro alerts are things like:

  • The load average on a server is above 20.
  • A job queue has more than X work units in it. Congratulations, dipshit, your queue is doing exactly what it is supposed to do.
  • Some metric is greater than an empirically determined mean. I get personally offended by shit like this.

Read the blog post, it's hilarious.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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