Note that there are some explanatory texts on larger screens.

plurals
  1. POArchitecture for a machine database
    text
    copied!<p>This might be more of a serverfault.com question but a) it doesn't exist yet and b) I need more rep for when it does :~)</p> <p>My employer has a few hundred servers (all *NIX) spread across several locations. As I suspect is common we don't <em>really</em> know how many servers we have: more than once I've been surprised to find a server that's been up for 5 years, apparently doing nothing but elevating the earth's temperature slightly. We have a number of databases that store bits of server information -- <a href="http://reductivelabs.com/products/puppet/" rel="nofollow noreferrer">Puppet</a>, <a href="https://fedorahosted.org/cobbler/" rel="nofollow noreferrer">Cobbler</a>, <a href="http://www.nagios.org/" rel="nofollow noreferrer">Nagios</a>, <a href="http://www.cacti.net/" rel="nofollow noreferrer">Cacti</a>, our load balancers, DNS, various internal spreadsheets and so on but it's all very disparate, incomplete and overlapping. Maintaining this mess costs time and money.</p> <p>So, I'd like to come up a single database which holds details of what each server is (hardware specs, role, etc) and replaces (or at least supplies data for) the databases mentioned above. The database and web interface are likely to be a Rails app as this is what I have most experience with. I'm more of a sysadmin than a coder.</p> <p>Has this problem already been solved? I can't find any open source software that really fits the bill and I'm generally not too keen on bloaty, GUI vendor-supplied solutions.</p> <p>How should I implement the device information collection bit? For instance, it'd be great to the database update device records when disks are added or removed, or when the server serial number changes because HP replace the board. This information comes from many different sources: <code>dmidecode</code>, command-line disk tools, SNMP against the server or its onboard lights-out card, and so on. I could expose all this through custom scripts and <code>net-snmp</code>, or I could run a local poller that reported the information back to the central DB (maybe via a RESTful interface or something). It must be easily extensible.</p> <p>Have you done this? How? Tell me your experiences, discoveries, mistakes and recommendations!</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload