This module is for system administrators. It's a tool to monitor and manage any number of Drupal installations at once and it's built to be extensible by other modules. With version 2 as of January 2012 this module also comes with the highest level of security where as all communication between the dashboard and each of the servers is AES encrypted, hence the dependency (see below). Optionally the monitoring data will be made visible in nice graphs if the Google Chart API is available.
It consists of filterable lists of Cores or Domains including a lot of detailed information about each of them and also an extensible list of actions that can be performed on selected cores or domains. The dashboard is only available for Drupal 7.
A Core in the context of DRD is a Drupal installation. That can be a single Drupal installation or a Drupal multisite setup containing multiple Drupal installations. Each Core (Drupal installation) is then hosting any number of domains or sites. One of those domains is considered to be a kind of “primary control” domain on this core and the URL of that domain should be used as the URL for the core. DRD supports Drupal 6 and Drupal 7 for monitoring of cores and requires the complementary module “DRD Server”.
Domain or Site
Domains in the context of DRD are the sites hosted by a Drupal installation (Core) and on each of the domains, that you want to monitor and manage need to have the module DRD Server enabled. There is a mechanism in place that helps you enabling this module easily from the dashboard. DRD Server currently supports Drupal 6 and Drupal 7.
How it works
When installing DRD and adding a core to the dashboard by providing one of the domains of that server, the dashboard adds that core entity to the database and performs the following actions:
- Run a script on the remote core to install the module drd_server for the given domain
- Send the encryption settings from DRD to the remote core. To be able to do this, you have to insert the IP address of the DRD Server to the settings of “drd_server” module on your remote core. A link to get there directly is provided in DRD
- After that, DRD is reading all available domains from the remote core and updates the encryption keys for each of the domains
- Then, DRD is reading all available actions from the remote core and domain
This is repeated for each new Core you're adding to your dashboard. That provides you with a list of all Cores including a lot of additional information, i.e. the number of hosted domains on each Core. You can now always switch between the Cores overview and the domain list. In both of those lists you can always select one or more items and then select one of the available actions from the drop-down above the list to execute.
Now, not all of those actions get executed immediately, because that could take quite a while, e.g. if you're updating translation information on 150 domains all at once. Instead, all those actions are queued on the DRD server and get executed one after the other. In the dashboard you get updates on what's been done, what's currently been doing and what's still outstanding. Should you close your browser while there are still items in the queue, the remaining items get executed by cron or when you get back to the dashboard at any later time.
Talking about security
One of the objectives of DRD to keep all your data secure and never compromise any of the sites. This is been achieved by still keeping the system easy to use by protecting the communication between DRD and the Cores and domains (a) by the IP address of the DRD and (b) by encrypting all data being transferred with the AES module's functionality.
Also you stay in control of your own data and as non of your data will be shared with similar external services like droptor.com or Acquia insight.
How to collect monitoring data
Data is collected from all managed domains every time cron is been executed on your DRD Server. We recommend that you execute cron every 5 minutes which gives you quite a good insight into what's going on for all your domains. Please refer to public documentation on how to setup cron jobs on your specific operating system. An example from a Linux system may look like this:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * wget -O - -q -t 1 http://www.example.com/cron.php?cron_key=[YOUR_CRON_KEY]
Installation and Getting Started
There are 3 modules: DRD, DRD_Server and AES and you should download all of them and copy them into your sites/all/modules directory of your DRD Server first. Then, copy just the drd_server module and the aes module into the sites/all/modules directory of each (!) of your remote Drupal installations and that's about it in terms of preparation.
Now you can enable the DRD and DRD_Server module on your DRD server and then goto admin/config/system/drd where you can start adding servers to it. Just follow the instructions and you should be guided through all required steps easily.
For more info and FAQ
Check out the README.txt
CHART API - http://drupal.org/project/chart
Here is what we're planning for the next few release:
- Monitoring and alerts
- Supporting logs on the remote cores and domains
- Provide sample modules to demonstrate extensibility and the API
- Start support for Drush, i.e. allow to update modules from within DRD by using Drush over ssh
- Query remote databases
This project has been sponsored by:
|DRD Server List.preview.png||138.31 KB|
|DRD Domain Details.preview.png||181.44 KB|
|DRD Updates list.png||61.98 KB|