Last updated February 22, 2012. Created by j.slemmer on February 22, 2012.
Log in to edit this page.
This module (http://drupal.org/project/drd) is for system administrators. It's a dashboard to manage and monitor 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 module page). Optionally the monitoring data will be made visible in nice graphs if the Google Chart API is available.
Glossary
- Dashboard
This is the only visible part and comes from this module DRD. It consists of filterable lists of servers 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 servers or domains. The dashboard is available for Drupal 7. - Server
A server in the context of DRD is a Drupal installation. That can be a physical or virtual server machine but there can easily be multiple Drupal installations on any machine. Each server (Drupal installation) is then hosting any number of domains or sites. One of those domains is considered to be a kind of main domain on this server and the URL of that domain should be used as the URL for the server. DRD supports Drupal 6 and Drupal 7 for servers and required the complementary module DRD Server. - Domain or Site
Domains in the context of DRD are the sites hosted by a Drupal installation (server) and on each of the domains, that you want to manage and monitor 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 server to the dashboard by providing one of the domains of that server, the dashboard adds that server entity to the database and performs the following actions:
- Run a script on the remote server to install the module drd_server for the given domain
- Send the encryption settings from the DRD to the remote server. 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 server. A link to get there directly is provided in DRD
- After that, DRD is reading all available domains from the remote server and updates the encryption keys for each of the domains
- Then, DRD is reading all available actions from the remote server and domain
This is repeated for each new server you're adding to your dashboard. That provides you with a list of all server including a lot of additional information, i.e. the number of hosted domains on that server. You can now always switch between the server list 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 and click 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 permanent 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 servers and domains (a) by the IP address of the DRD and (b) by encrypting all data being transferred with the AES module's functionality.
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.
| Attachment | Size |
|---|---|
| DRD Server List.preview.jpg | 42.55 KB |
| DRD Domain List.preview.jpg | 52.53 KB |
| DRD Server Heartbeat.preview.jpg | 49.33 KB |