12

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

5 Answers 5

6

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.

1
  • 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
    Commented Apr 23, 2011 at 12:37
5

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
1
  • 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
    Commented Apr 23, 2011 at 12:39
2

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

1
  • 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
    Commented Apr 23, 2011 at 12:41
1

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.

0

I am using check_drupal to monitor various drupal sites. This is a nagios plugin which does not require any code changes to a drupal site itself. Only requirement is that drush needs to be present on the server.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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