I've been doing more work with multi-site installations recently, both of the traditional and Domain Access kind. I've been thinking it might be worthwhile to hack together a "dashboard" module which could track the status of all sites in a multi-site installation on one page.
The project would consist of a "client" module and a "server" module. The "server" modules would be installed on all sites, and the "client" one on the site(s) the admin would use to check the status of the other sites. When the dashboard page is loaded on the client site, it pings the server modules on the server sites for their status; this should happen on the client side via AJAJ to avoid a server-side timeout and to also allow for timed status updating on the dashboard page without having to reload the page. Information which could be shown on the dashboard includes:
- If the server is unreachable (the ping attempt timed out) or possibly misconfigured (the ping attempt returned a non-200 response)
- If the site is offline for "maintenance mode"
- When cron was last run and update status last checked for the site
- If there are updates available for a site's themes/modules
- If update.php needs to be run on the site
- Recent important watchdog log entries
Thoughts?

Comments
I'm sold!
I posted something similar to this recently on my blog -- https://elearning.psu.edu/projects/node/129
It has centralized user management across all sites with in the multisite and I am planning to make it more generic as well as expand capabilities into some of the areas your talking about. One that I'd really like to see is the ability to set a variable globally by running the variable_set() on all the databases (or just setting it in one site and then copying the record over to the other sites).
My module also works with a cracked version of Backup and Migrate to give users the ability to spawn off more sites in the multisite infrastructure. Maybe we could work on building a multisite_dashboard or multisite_console or something like that project. I've been trying to think up a name-space along those lines for it. multisite_hub or something like that. It would be great to have 1 site / configuration that can help manage the scale / scope that multi-sites can grow to.
"Plaguing the world with Drupal; One Plone, Moodle, Wordpress, Joomla user at a time since 2005." ~ btopro
http://elearning.psu.edu/
http://elearning.psu.edu/projects/
http://elearning.psu.edu/drupalineducation/
Ex Uno Plures
http://elmsln.org/
http://btopro.com/
http://drupal.psu.edu/
Well, what you've mentioned
Well, what you've mentioned in your post looks quite a bit more extensive than what I have in mind. My project, which I'm calling Compound Eye, wouldn't really do anything except send status information to a client.
Anyway, I wasted some time today hacking and now have a fairly functional server module written. It turned out to be easier than I thought it would be because a lot of the status notification stuff is done by modules themselves (hook_requirements()), even core stuff I didn't think would be handled that way.
The client module is going to be a lot more time-consuming to write, but - shock and awe! - I'm actually kind of motivated about this, so maybe it'll get it done. I'll try to create a new project tomorrow and upload what I've got so far, if anyone's interested in helping out.
The Boise Drupal Guy!
I'm interested
I'm currently have something I use using db queries. It's not integrated into drupal though. It would be nice to have something more detailed. I'll be sure to checkout the code when you upload it.
I'd be interested in seeing
I'd be interested in seeing that hacked Backup/Migrate code. We've been cloning an existing site and deleting its content by hand each time we want a new one.
if you go to the course
if you go to the course manager cvs (http://drupal.org/project/course_manager) there's some code there that you can pull down for stuff like that. I call a query in the hook_init that automatically finds sites within the given multi-site / database server and loads all of them into scope for the $db_url object. That way you don't have to define all your databases you need to connect to manually. After that it's easy enough to write a while loop that looks through the db_url and uses db_set_active to run querries against all of them. There's an example in there for setting user roles across all available sites which should probably be useful.
"Plaguing the world with Drupal; One Plone, Moodle, Wordpress, Joomla user at a time since 2005." ~ btopro
http://elearning.psu.edu/
http://elearning.psu.edu/projects/
http://elearning.psu.edu/drupalineducation/
Ex Uno Plures
http://elmsln.org/
http://btopro.com/
http://drupal.psu.edu/
Project page up!
Project page up! http://drupal.org/project/ce
A dev release should be available soon. It's not quite functional yet, though.
The Boise Drupal Guy!
The right idea
Garret --
I really like your idea to have a dashboard monitor different sites. I really want to be able to monitor what's going on my sites, whether it be new content, new comments, updated content, increase in traffic, etc, etc. Sounds like a lot to poll?
It looks like somebody is working on a similar solution to yours and has gotten a client app working. It's based on the Growl notification system, so it doesn't provide a log. He has future plans to be able to have a Views display provide the notifications -- which provides for limitless opportunities.
http://myzonelabs.com/blog/drupal-notifier-desktop-notification-app-for-mac
What I think is really needed is what you've done, plus what he's up to, and then a little bit more. I think that a client app that can show multiple logs (Views) on a site dashboard-- and the ability to have multiple dashboards for multiple sites-- would be AMAZING. It could look a lot like TweetDeck. TweetDeck allows you to add as many columns (logs) as you want. That would be heaven.
http://www.softpedia.com/screenshots/TweetDeck_1.png
The server module just sends
The server module just sends its info via standard JSON, so building a client app to connect to and parse it should be pretty easy. The tricky part - but not impossible - would be using cookies to tell the remote server that you're logged in as a user with permission to retrieve that data. In fact, the server modules are already functional to this point - at this point I'm working on the client module which receives server data, parses it, displays it, and then regularly reloads it, which requires quite a bit more code. I'm getting close, though.
The Boise Drupal Guy!
I've done something similar
I've got some code that logs into a remote Drupal site via a URL token, executes some PHP, and returns the result. We use it to enable a module or change a variable setting on all our sites at once.
It's tied rather tightly to our infrastructure right now (And requires fierce_sso module for authentication), but I'd be glad to take a look at CE and see if I can integrate it in.
Teaming up?
http://myzonelabs.com/blog/drupal-notifier-desktop-notification-app-for-mac
This guy has solved that problem with his Growl app. I don't think he is using the server module. But I am thinking that you two may be able to join forces and really get something amazing done.