A Single Dashboard to Monitor the Health of Dozens of Drupal Sites in Real Time

Summary

Every Drupal site has a status report page where administrators can see health indicators related to the site: whether Drupal and modules are up-to-date; whether server settings are optimal; potential security issues; whether enough memory is allocated; and so on. In this talk, we'll look at a few ways to increase the usefulness of these reports and integrate them into a master dashbaord with a variety of other checks.First, if you're a developer of contrib or custom code, consider making broader use of a handy piece of code, so-called hook_requirements(), to test your site for everything you can think of. This can avoid hours of debugging down the line by making sure certain indicators should always pass. For example, if your code depends on an API key for an external service, adding a check to make sure the key is valid will quickly alert you as to why certain pages are not displaying correctly.Next, if like most of us you are managing more than one website, you can aggregate all the checks for as many sites as you want into a master dashboard on a continuous integration server. A few solutions exist for this purpose, and I'll show you how I use the Expose Status module (disclaimer: I'm the maintainer) along with Jenkins, to quickly see, in a master dashboard, if any of the dozens of Drupal sites I maintain have any major issues.And this dashboard is not limited to the Drupal status reports; I'm also managing the health of non-Drupal sites, and checking for broken links and accessibility issues in real-time as well.