Where I work we have a configuration management database, or CMDB. The term CMDB comes from the Information Technology Infrastructure Library, or ITIL. ITIL to some is a true four-letter word, but the idea of the CMDB has been incredibly handy for us to track information about servers, applications & their support information, IP addresses, warranties, etc. Our CMDB is a full-blown product made for this, but there are millions of ways to keep track of this sort of thing.
The thing is, I think people spend too much time tracking stuff that’s not useful, or that the CMDB cannot be authoritative for. Like the number of CPUs in a host, or amount of RAM. These are things that you can poll the servers for, and that the only authoritative number is what the server is reporting. So why even bother putting it in a database? The same is true for DNS information. The CMDB usually isn’t attached directly to the DNS servers & zone files, so how do you keep the information in sync?
People also put things in a CMDB that should just be standardized. Like the name of a server in the backup system. Often you can tell a backup client that the name of the server is something different than the servername itself. We just decided, a long time ago, to never do that. That way we have one less thing to track.
That said, I also think too little information goes into these databases about application support. Sure, there’s sysadmins in the database, who to call when the server isn’t up, but what about the application people? Why aren’t they in the database, too?
I’m very interested to know what people are doing for CMDBs, whether it’s a full-blown product, Access database, or a text file, and what information they’re putting in there. I’m also interested in what you’re doing with a CMDB. Does your monitoring system pull directly from it to find who to page? How do you get data in and out?