MachDB is machine database to catalog of the changing state of your hosts. It consists of a database, an aggregator, an XML spec and some example information gathering scripts. Along with a Web UI, these form the basis of a system that will allow you to catalog the current and historical state of the hosts in your infrastructure. It has been designed with scale in mind, the goal is to support 10k hosts. It is being actively developed and although in alpha testing, is used in production at a few organizations.
Inspiration for the project came while sitting in a tutorial session on UNIX Infrastructure Design by Lee Damon at LISA 2006. Everybody rolls their own Machine DB, I've rolled a few myself. It's high time somebody made a good, scalable, open source implementation of that most needed of sysadmin tools. Ideas came from experiences at MP3.com, Qualcomm, VMIX Media (my current company) and chats with various leaders in the field of System Administration. Design goals are:
- Information gathering should be architecture & OS agnostic
- Back end is LAMP
- XML Spec is the 'API'
- Scalable to 10K+ hosts
- Human and Machine readable interfaces
- Easy to use web front end
- History on everything
- Templates for Easy UI modifications
MachDB was shown to the user community at LISA 2007. Since then, I have started a development blog, linked at the top, where I will talk about my work and latest statuses. Make sure you subscribe to the RSS feed if you want to follow the project. But most importantly, the code is out! Go and download here.
I am also looking for feedback and ideas. If you've had experiences with various in-house machine databases, send me your ideas and favorite features.
current features and status
- Database and XML spec support most relevant types of host information: CPU, RAM, disk, partitions, network, software packages, etc.
- Web front end browsing is feature complete.
- Basic host search implemented
- Full History
- Sortable Tables for all tabular data
- AJAX tricks to reduce page load times
- "Recent Changes" front page
- Smarty templates: easily skinnable, divides logic from display
statusThe code is still alpha right now, actively being maintained and versioned at 0.5.2.