Ask Slashdot: Documenting a Tangle of Network Devices?
LoudMusic writes "One of the many tasks of a network administrator is documenting the network so that other members of the administration and support teams can find devices on the network. Currently my organization uses Excel spreadsheets to handle this, and it's invariably error ridden. We also save a new file with the date in the name each time an update is made. I'd like to move this to a more intelligent database system, but the driving force for keeping it in spreadsheets is the ability to take the document offline, edit it, then upload this new revision to the file server when we have a connection again. Our clients often don't have reliable internet connections, especially when we're tearing their network apart and rebuilding it. The information we're currently documenting about an individual device are: device name, device model, description, IP address, MAC address, physical location, uplink switch & port, and VLAN. What tools exist that would allow us to have multiple users make updates both online and offline simultaneously, and synchronize changes into both the online and offline copies?"
If your company has it, if not, and you have a spare Win2K8R2 machine laying around you can just install the free version.
but if it doesn't involve QR codes, I don't think it's sufficiently hip.
I use wiki software for network documentation. Tied it in to nagios, actually, so on the device listing page I can jump right to the documentation page.
Not offline, I know, so it doesn't directly match the job requirements. But I think "offline" is a bad requirement anyway.
Mod me down with all of your hatred and your journey towards the dark side will be complete!
and what about the offline part?
... currently broken network trying to fix it, you should be using a smartphone app to access the database (not spreadsheet) of network configuration info.
now we need to go OSS in diesel cars
based on the requirement "multiple users make updates both online and offline simultaneously", i'd consider using git
Currently my organization uses Excel spreadsheets to handle this, and it's invariably error ridden.
In the real world, away from press releases, sadly, Excel is the real world enterprise DBMS for almost all corporations.
I also worked for a place that used a word processor for DBMS.
No codd normal forms, and joins/selects are done completely by intern / human power.
Basically all the "paperless office" did was make it slightly easier to do existing paper processes. No core technological/process changes.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
Instead of file name encoded versioning system, use a distributed version control system: Git, Mercurial, Bazaar. It solves your offline problem too and you can keep committing changes when the network is down... And you keep track of who did what.
From map loggers to whatever else.
http://sydiproject.com/
What a good advert for a chromebook! :)
At least that should work in the event of disaster recovery and you have 'no network' to get any documents from.
Visio
"When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
I recommend the self-documenting approach. You already have to map name and MAC in dhcpd.conf (assuming you use DHCP reservations), so just put some extra comments in there (what the device actually is). That way you can be fairly sure that the docs will remain in sync with reality. However, that approach only works for relatively small networks.
In general, avoid the "split brain" approach where you have independenytly generated documentation AND config files. Make one generate the other.
Have you tried Google Docs?
-Free
-Easy to use and familiar look to "office" users
-Only requires a web browser or a smartphone
-Automatically saves revisions of the same file so you don't have to manually version
(Come on! It's 2012 out there and IT people are still manually versioning files? Have you been trapped in a time loop?)
-Collaborative so allows simultaneous edits of the same document (yes, simultaneous. No weird concept of lock-and-release queue.)
-Now has an offline mode that automatically reconciles edits when online again
I suppose that fits the bill for your description. Have fun.
... you need to have in your toolkit a nice set of very durable wire cutters.
now we need to go OSS in diesel cars
For most small businesses an excel file is fine. Medium business, use a wiki or something. Large enterprise networks need some kind of CMDB. I use Racktables, but other ones like iTop exist too. There are also paid offerings like Cisco Prime, or Orion. One really interesting offering is this software called Blueprints by pathway systems. It's more about dependency mapping, but it does network documentation too.
Racktables http://racktables.org/
It's not geared exclusively to network gear, however does include a number of features that make it nice for self documenting network config.
Racktables
Rancid
this is an internet classic that should be a Right of Passage for any budding network admin.
http://www.vibrant.com/images/cables/lopsa/do-not-touch.jpg
And not once, not twice, but thrice I've had to deal with said tangles. My solution was the same in all cases. Set aside some time and COMPLETELY document it. I use excel and conditional formulas to create cross lists for separate panels, to catch errors while trying to document.
Then once I'm certain I have it right, develop a new organization, then pull everything and start over.
My first experience with this removed multiple token rings, at least FOUR loops, and consolidated twelve hubs (not switches) and installed a master switch. Boot times on the floor went from 30 minutes to 45 seconds, and daily network problems vanished never to return. The morning after the rebuild we experienced an entire day of jaw-dropping throughout the building.
Do it. It's so worth it.
Also another hint. If you have to deal with a lot of unmarked jacks throughout the building, enlist a helper or two and use wireless headsets. One person at the rack with a keen eye for a light going out, and another one or two elsewhere briefly unplugging ethernet cables from live machines. Makes identification of jacks actually quick and easy.
I work for the Department of Redundancy Department.
Will be out of date the moment they hit save file. If you can't do it programmatically with Mac-address-tables / arp / snmp or other real-time querying tools. You're just humped. Work toward this end even if you can't reach it right away. Any work not to this end is just masturbatory and only serves to do lip-service toward solving the problem. Your network *must* self-document or you just need to get used to the idea of the documentation always being in some state of "wrong."
IPPlan is what i use to solve exactly this problem, but PDF output of it isnt the prettiest.
it works, and given that the scale of problems I would have if i couldnt access the IPPlan box would be such that a copypasta from PDF kept in a dropbox folder accessible by smartphone/tablet/laptop by myself or others is minimal in contrast...
Infoblox used to sell a box calledPortIQ. I think that has been wrapped into a new product that they sell but it will do everything that you want. You should also look at their iPam solution, which integrates. I think you will find them very beneficial in this situation.
Dump any modified excel file into a text file of comma seperated values and dump it into git.
convert the CSV files back into excell on a weekly or monthly basis and distribute is as the official file.
could also use a sed script to process it into entries that sqlite could build a database on.
Process looks just the same for people in the feild techs (edit an excell file) but does versioning (via git) and even perhaps give you a proper database that you could write tools on top of to help techs and customers.
OCS Inventory is a database and reporting interface that will keep an up-to-date database of the devices on your network(s). It's got a server component that runs on Linux or Windows (Linux is recommended) and client agents that run on Windows, *nix, and MacOS X. The client agents also use nmap to scan for other types of nodes, such as routers and printers. It's very slick; I've used it for six years for my job, and we currently track over 500 computers plus a few other devices through nmap.
The whole thing is GPL, and you can opt for a support contract.
It can also integrate with another package called GLPI, which among other things handles trouble tickets and is also Free.
Hail Eris, full of mischief...
E pluribus sanguinem
Um, you're a technologist in charge of a network of computers, and you want to use a manual system to document your own network so that "other members of the administration and support teams can find devices on the network"?
This is like some dystopian sic-fi satire.
That "network" thing you have, with all its "devices," can actually tell you what it's doing! Better yet, some of those devices can "execute code," which is technology talk for stuff like generating lists of devices and their attributes, putting the results in a spreadsheet, etc.
Google "ping" and "traceroute." Then work your way into the 1990s, then the 2000s, then take a look at some of the tools we have today.
If you can afford it, you could use an OSS like Cramer (http://www.amdocs.com/Products/OSS/Pages/OSS.aspx). It's a database tailored to storing just the kinds of things you're talking about.
Use LibreOffice Calc, open a cell at the top left height: half the page tall and width: about 6 inches. Then use the drawing features of Calc and just put boxes, connectors, labels, etc. in your drawing. I usually then put written information below the drawing cell that describes special details network details, issues, and special notes about wiring. By having the entire page saved as an .ods document, you'll be able to open it easily. (I have over 150 such pages for clients in my business.)
I'm reading all the recommendations, and it's giving me a case of Tourette's. Haven't any of these people actually had to DO what they're talking about? There's a whole realm of software meant just for this purpose: it's called IPAM, or "IP Address Management." The proper solutions also contain exactly the information you're looking to capture in addition as well, and integrate with DNS (or, in some cases, include robust DNS capability) so that they are accurate and you don't need to update the database when you set a new DNS entry. Infoblox makes one of the better implementations that I've seen, but since I don't know your exact needs in detail, I would simply look at IPAM solutions in general.
For your security, this post has been encrypted with ROT-13, twice.
Its a cms setup for this task.
We input machine name, make, model, serial number, host name, IP, physical location, wall port #, where the funding comes.from, role of the machine, and it allows.you to attach devices together (say you have a monitor in epic and a scanner, and a PC... and the monitor is attached to the PC as is the scanner.. epic allows.you to add those devices to.the base unit).
Every piece of equipment at the 6 libraries on the main campus as well as all the branch campuses of Penn state are in the database. We also have it linked to big fix so it will list any machines big fix finds that isn't in our epic database as well as the other way around.
You can then search and filter via criteria and download any "reports" via a csv file.
We log more.info.than I listed (like Mac address etc) but that gives you an idea
Last time I had to map a network I used a tool from http://www.solarwinds.com/products/toolsets/discovery-tools.aspx. It worked really well, I decided later to write my own tool using nmap and C. Now I can't give out the actual program because the company who I worked for owns it, but if you have a weekend it's a great quick way to write a tool that can discover networks.
Disclaimer, I'm biased because I work on the product, but this is the exact use case we've designed the product for. http://www.infoblox.com/en/products/netmri.html?utm_expid=7390868-7&utm_referrer=http%3A%2F%2Fwww.website-unavailable.com%2Fmain%3Fq%3Dnetmri%26d%3Dwww.infoblox.comhttp%26oq%3DInfo%2BBlox%2BCom%2BHTTP%2BInfo%2BBlox%2BComen%2BResource%2BProduct%2BDemo%2BNet%2BMRI%2BDownload%2BHTML%2BNet%2BProduct%2BDemos%2BResources%2BInfo%2BBlox%2BCom
automate it: Cacti with MacTrack plugin, rancid and nagios or openNms
Bullcrap. I'm a moron and yet I can differentiate between the two. QED
Where is even the least bit of insight in that idiotic post? How does that help the submitter in the slightest?
Spiceworks does a good job of automatically documenting the network. Combined with proper logins it can also document software installs and keys, bandwidth usage, personnel, and more. Also allows for metadata on each machine. Then it can draw you a pretty network map for people that can only deal with pictures (ie, the boss). Finally it can communicate and sync up with other Spiceworks installs on different network segments to give broader reporting. So you could install it locally at the client site and should the connection go down, it will continue to harvest local information that it will sync up when the connection returns. The master will even tell you when that host goes offline.
And of course... it's free!
Indeed, router configurations should be stored in git or similar rcs.
What hasn't really been mentioned is the use of cdp. If your switches and routers (both Cisco and some non-cisco) support this information it can be very useful to inventory connections. Checkin scripts can update an endpoint with the port information. Then simply tracking the physical location of resources by either asset id and mac address ties the network topology to a physical locality.
Labeling wall jacks to punch down block ports is handy for tracking cabling issues, but not mandatory for identifying port to port connectivity.
However, depending on the skill level involved it might not be trivial and the deployment itself could be time consuming. However, the whole package can be put together in a few days. I worked at one place where someone had the right idea and the implementation was mostly there. (albeit broken) It was fairly easy to fix it up and push out the changes via their deployment process. Physically performing inventory on the network did take some time, but we sent teams to each location for asset identification. If there had not been a desire to actually store rack unit ids we would have never had to perform physical scanning. (Completely worthless for our needs, but mother corporate wanted it down to the RU.)
"You should always go to other people's funerals; otherwise, they won't come to yours." -- Yogi Berra
cacoo.com It's an online diagramming tool. You can create diagrams and flow charts alike.
It's far more useful than using a spreadsheet. https://cacoo.com/tour
excel? really? are you sure you have all of your NT 3.51 servers listed in there?
They're using their grammar skills there.
MediaWiki is your friend. I set up one for a company a few years ago any later started using it to document my responsibilities there, which cover almost the entire ICT system.
My part of the wiki starts on an ICT page, which is divided into sections for Hardware, Software and Telecom. Each contains a number of links to articles with table overviews that contain links to further, more specific articles. The Hardware section has links to eight articles: Servers, Workstations, Monitors, Ethernet networks, Printers Scanners, Wi-Fi and Ethernet switches. The Software section has links to seven articles: Software packages, Scripts, Domain names, IP subnets, Websites, Cronjobs and AFS volumes. The Telecom section has links to six articles: Phone numbers, telecom subscriptions, Modems, Faxes, Telephones and PBXs. For each of the articles mentioned I also created index pages and every single article has various external and internal links for easy navigation. I even created a series of terminology articles to explain various concepts and how they are important to the site.
With several years of Wikipedia experience, the idea of using a wiki for this purpose seemed obvious to me. However, what was not easy was coming up with the structure outlined above. I had first tried out a deeper hierarchy based on the various geographical locations involved, but backed out of that idea when it was clear that it would be too much work.
Producing this kind of documentation in as much detail as I have represents a lot of work, but it has its advantages. For example, it not only means that critical knowledge about the system is now much harder to lose and easier to share, I've also learned many new things about the system (such as all the hardware specs) and it has also forced me to research areas that I wasn't completely sure about.
If you want an excel file that can be edited simultaneously by multiple users, then maybe consider Google Docs? I'm not sure how well the offline syncing ends up working, but there is some support.
I know a few companies that use this. It is free and comprehensive.
http://opennetadmin.com/
ikiwiki.org and git as the backend
clone the repo to your workers machines. Make changes offline, and sync with a git push when there is network.
Or use the web interface to the ikiwiki directly if you have network.
It's really powerful to be able to do a `git pull` and have a full copy of your docs, knowing you are going to be offline, and be able to do a git push when you can to sync any changes that you've made.
Uhmm, there are automated tools for that... Zabbix, OpenSNMP and many more.
Excuse me, but please get off my Pennisetum Clandestinum, eh!
For the least amouint of effort, you could simply use git and keep the same name. That'll let you have revision control of the single document.
http://rogerdudler.github.com/git-guide/
While this isn't a permanent solution it's better than what you have and pretty damn easy to setup.
Have a squat over at the hobo house.
Save the data as a CSV text file and keep it in a fossil repository (http://fossil-scm.org). As long as the changes are linear, then there's no problem, if multiple people make changes then it will store the changes as branches which can be merged. You can view the data in spreadsheet format, but by saving it as csv, fossil will make merging changes easier, and since fossil will let you make multiple changes/revisions offline and sync with an online repository when you have internet access.
create a table formatted like you have in your xls file and create a simple webpage to view the data in real time. You could upload the xls file to start exactly where you guys are at now and even create and export to spreadsheet feature if you need it for reporting etc. Should only take 2-3 hours to set everything up the way you want it. My first thought was Sharepoint but that's also provided you have a Windows box to put it on and not just *.nix based servers.
"Netdot is an open source tool designed to help network administrators collect, organize and maintain network documentation."
https://osl.uoregon.edu/redmine/projects/netdot
https://osl.uoregon.edu/redmine/projects/netdot/wiki
I used to have the same type of setup. We required the field techs to submit an as built of what they put out there. Then we would run a script that checked to see that it was all online and configured properly, then stick it into a database.
It wasn't perfect. It didn't save a copy of the original upload so once it was in the db it was just more records.. reverting changes was a manual thing for me if something went wrong. But you can make it as complex as you like, your primary problem is going to be enforcing the change in work habits, which has got to come from management or you'll have people holding out no matter how much better the new system is.
It's unlikely that you can acheive this, but if you have a network architecture with swithes that support LLDP (802.1AB), you can completely eliminate excel spreadsheets as you can poll the switches using SNMP to see what devices are connected to each switch port. (I may not fully understand your situation though.)
There's a Linux daemon that allows Linux HW to announce their presence to an LLDP capable switch so it is known what device is on what port. (https://github.com/vincentbernat/lldpd/wiki/) There's probably also the same avaialable for Windows HW too.
I've been thinking about the next time I do something like this and I'd take a serious look at doing it in Drupal. The Drupal website content management system you ask? Well once you get past a learning curve you realize that Drupal is a web based front end to a database which includes developer defined content types with custom fields and a CRUD front end with powerful permissions management, change tracking, query system, and presentation layer. For the offline issue there are export modules to Excel.
You'll get a help desk system, some automated acquisition, and an IT inventory system for $0 + setup time (which is a morning or so if you're fairly adept)
Why document it? What objectives are you trying to achieve? That is what you should be looking at. Without exception, everywhere that I have worked, when there are problems, there is no time to try to look at a document printed or online. You just look at what is actually plugged in. Why do I care what switch a PC or printer is plugged into? How can that help anything. It is just busy work. No one trusts the docs because they are never accurate, then people start pointing fingers.
Do as this poster suggested, let the network document itself. There are tons of ways to do this with ping, arp, etc. and plenty of programs that will make nice graphs, etc. But who cares about the graphs except the PHBs?
Question is how rich is your organization? There are corporate tools like HP uCMDB DDMA that keep the configuration database updated, detect changes, scan your networks etc... If you do not have money - look for Configuration Management tools - this is what you are looking for. If you totally lack money - use something like SVN/git etc.
Anything that involves a human updating a document ... Will be out of date the moment they hit save file.
Only if you are a terrible manager.
I agree with the wiki for the documentation side of things, but you must, must, must tie it into an automated discovery system. Wiki's are great, especially for knowledge capture, when there is buy in, and if it's for yourself and successors, well there's your buy-in. However, they do not do network scanning automatically. Now writing a program to tie in your autodiscovery tool's database to the wiki should be relative chump change, and it will be invaluable. A wiki won't tell you when a network goes dark. A wiki will tell you the network was there, but when stuff disappears, you'll only catch it if you go looking for it or automate scanning your network.
I've seen dozens of methods at different companies, but I've only ever seen one that works and it works really well. Many of the top ISP's use a variant of it.
Let the network self document.
What does that mean? Well, typically it means some discipline in how descriptions are written. For instance ISP's will use a standard customer identifier on all ports. An enterprise might just use hostname. From there, tools like Rancid can poll router and switch configs, store them in a version control system, and mail out changes to the entire staff. Rancid is great to use, because it reduces the human work load down to entering a single line for each device (name and OS type), and making sure that the device accepts logins.
Now that all the configs are archived and you have the one true list of devices it's trivial to take that list of devices and feed it to other tools. One of the first might be NetDisco which probes the devices with SNMP and builds adjacency tables, tracks MAC addresses, and so on. From it's database you should be able to locate anything on the network in seconds.
Now that there is a complete picture of the network, it's time for a little scripting. Take the output of Rancid and/or Netdisco, and use it to for instance build an MRTG configuration file, or a list of things for Nagios to probe. It's fairly easy to take the NetDisco adjacencies and run them into a tool like GraphViz to produce a network diagram.
I know of at least two ISP's using this basic formula, and it works really well. Going to an internal web site they can bring up diagrams, usage graphs, MAC tables, IP information and all sorts of other things about any device in the network in seconds. Once devices are in the system it is 100% automated, turn on a new port and it is magically graphed, MAC tracked, and added to the diagrams. Turn it off, it magically goes away. Everything is in version control so old state can be reconstructed. The only human manual intervention is adding/removing one line to the Rancid config when a device is turned up or turned down. I have even seen folks automate that with Netdisco (but, I think that can be problematic, as it's almost circular).
Spreadsheets, Visio diagrams, and the like are always out of date. Someone will always make a change and forget to update it. Some places are only a little out of date, most places are downright wrong. Self documenting is achievable, and always 100% current.
If you need a database that you can use offline and then sync up with online versions of the same thing, look at CouchDB http://couchdb.apache.org/. It is ideal for this kind of thing. It is also a self contained database, web server, and application server with a REST API. Just keep a copy of the database on the computers you will want to access the list from and periodically sync with a central DB instance.
If you want a solution that requires less development effort and is more free form, consider a Wiki like Tiddlywiki http://www.tiddlywiki.com/ that allows local installation and syncronization with a central server. Perhaps Evernote https://evernote.com/ might work as well.
I'm actually releasing a beta of my software/service that will initially have a strong focus on Network Documentation in the next couple of weeks if anyone is interested. I initially created it due to my frustration with Netdoc and it's now gotten to the point where it has various features netdoc does not have while being a fraction of the cost and much more pleasant to use. If you're interested, you can check out the website at www.flextory.com and send me an e-mail if you're interested in trying it out early before the beta launch in a week or two. Also, the site is a bit out of date (it'll be updated for the beta launch). There are more UI enhancements, a Reminder system, attribute data types, an API and more in addition to what's mentioned on the site. The software has also already won a couple different competitions.
The tentative plan is that the beta launch will last for three months and everything will be free. I'll also be more than happy to help anyone with data migration for the sake of getting some feedback on the system. After three months, it'll be a monthly subscription in the range of $50/month or so and I'll definitely be giving early adopters a discount.
Even if you have no interest in ultimately using it, I'd love to get as much feedback as possible on potential new features and bug fixes!
Can you get a list of all your DHCP clients from each DHCP server? I think that would probably be the way to go.
>What hasn't really been mentioned is the use of cdp.
Or even better, the much more widely supported (including Cisco in any halfway modern version of IOS), non-proprietary, and technologically superior LLDP.
http://www.lansweeper.com/
Doesn't answer the offline part, and it doesn't do any kind of graphical layout (you didnt really specify graphical, though....)
Otherwise, I love this. Enough to actually, you know... Pay for it! Lol. The free version doesn't do push scanning (just run a small script as part of the computer startup or login routine, instead) and doesn't give one click access to some of the tools. You probably already have most of those tools available otherwise, though, VNC or other remote desktop, remote management, etc...
The server runs on SQL, has a nice web interface, can tie in with AD, gather event logging events, has tons of reports available out of the box, with the ability to build custom reports and a community that is glad to help if you aren't an SQL guru... Being SQL, exports and imports are pretty easy in whatever format you need...
I ran into a similar problem years ago. We have several network topologies that interact and hosts that are on one or multiple networks. I needed a way to make sure hosts would not cross networks to talk to a host if they didn't have to and solved it with multi-view DNS. Along the way, I store mac-address and generate dhcp tables for all of the networks and can generate connectivity graphs and store comments (eg: todo items) per system.
We use this with an svn repository. You edit the local "db" (which is human readable xml) with a little python frontend or by hand if you prefer. Once done you run an update mechanism which goes through and runs tests, generates content from the xml and you can see exactly what changes are going to be pushed before they ever touch production systems. svn commit and wait for services to pull the new data and refresh... not to mention other people with the same checkout.
I recently moved the project from sourceforge to github:
https://github.com/imoverclocked/xmdns/
I'm happy to field questions about it to interested parties.
No software or hardware will solve the issue of incompetence and mismanagement.
Structured cable management and inventory management problems are, in my experience, always caused by management failures.
Sysadmins and networking people look for a software tool or something to solve the issue, but that isn't the source of the problem in the first place. When all you have is a hammer... you know the rest.
You will find, as I have myself, when you put the right tools and make it easy to do the right thing, there will still be staff on your team who always will do the least amount of work necessary to not get fired. These people will continue to use a 12ft patch cable where a 5ft was appropriate, and use a 5ft cable where a 12ft was appropriate.
Go to the team manager for these losers and you will find the source of the problem. Ask the IT manager for a listing of all servers, what OS they have, and the primary-responsible-person for each. Then, go perform an audit and find out they only gave you 70% of what was actually out there and that half of what they gave you is just flat-out wrong. You will find RAID arrays and servers which have not been used in years, still powered up doing nothing. Closets full of cabling nightmares, and viruses lurking on laptops brought in by employees from home.
I have gotten awfully good at finding these disasters through the interview process. I like to go interview for new jobs all the time, even if I am not really looking, and I almost always turn the place down at the end of my first visit because their shop is a disaster and I don't want to work with incompetent people like that.
F-grade managers, D-grade employees.
Thanks for the great post. I'm bookmarking it for future reference.
Why would you spend time doing this by hand when you can have SNMP probe the network for you? It can collect nearly all that information. You might have to put in some smarts to correlate switch port activates and new clients requesting DHCP, but that's easy (hint: your key is MAC address). If you need to, you can have the SNMP client supply custom OIDs to query for more specific information. Then just dump into the DB of your choice. THEN you add the appropriate DB driver to your visualizer of choice (Excel, for example) and you can generate reports.
This isn't too complicated to set up on your own, but there are off-the-shelf products that do this, too. I've used OpenNMS with success for this purpose.
The cisco onplus is only $250 and comes with 3 years of service. Simple network device that scans the network and with snmp can document devices on switches. you can also use it to telnet, ssh, rdp and web control any device on the network.
My god google docs you moron.
How well does that method deal with virtualized network resources?
It has a discover mode, that will reach out and basically ping every IP address. It's a big job for the initial round but afterwards, it's pretty easy to keep track.
It also has an inventory client/agent for linux, mac and windows computers and servers. And It's open source and free as in beer, and also speech.
To answer OP's question. Use OneNote. Awesome online and off, editable by many at the same time, tracks who changed what, securable, and super easy to do documentation in it. We use it to document thousands of network and other devices for our team of techs.
Chance favors the prepared mind.
Perfect is the enemy of good.
It's got built in host and device discovery, is multi-user and does most of what you are asking for automatically. It's also got a managed service provider mode that lets you track multiple deployments on different customer networks through one portal. From the brief blurb you left, it sounded to me like you may be working for an MSP. It's free, so it would be a good one to try out. www.spiceworks.com
http://www.combodo.com/-Overview-.html
At one job, I wrote a little tool to keep a database updated with this kind of information.
The servers were Linux, so it made it much easier to pull the necessary information. It's doable with Windows too. I'll only describe its function. There should be someone who can write the functional parts.
Basically, there were a few tables with what was described in the existing spreadsheet. There were a few other fields, such as last modified, current state (online/offline/pending deployment/disposed of).
The main table was for a machine. It had CPU, memory, OS, hardware description, and notes.
There was a table with MAC addresses, since many machines had multiple cards.
There was a table for IP addresses, since most machines had more than one IP on them.
I used dmidecode to gather the machine information (manufacturer, model number, serial number, service tag).
For the OS, it grabbed the kernel version (uname -a), and the release version (/etc/*version*, /etc/*release*)
To gather everything, it was just a scripted SSH session from a machine that had its keys on all the other machines.
For the most part, it was able to fill in most of the information on it's own. We extrapolated the datacenter location from the IP. It also discovered new machines with a ping scan (nmap -sP) on machines on that network segment, arp cache, and the network switch. We had to fill in the rack number and position. We simply numbered every 1u space in the rack, so most racks had 40 positions. They were named for the top most U occupied.
I also generated a simple HTML page, with an empty rack as placeholder images. Known machine types (like Dells matching a model) were used for known equipment. Some white box machines got a generic image. KVMs, network switches, remote PDU all got their appropriate images. Overlaid over the images were the hostname and primary IP that we had stored in the database.
Generally, the unique identifier for the machines was the MAC address for the first network card. We used the on-board network interfaces, and sometimes some add-ons. Using that first MAC let us keep a positive ID on the unit. If, for example, a machine was replaced with a new machine, there was a new record. The old machine was marked appropriately (discarded, or with its new designation).
Information in the network switch (MAC/CAM info) was used to determine what was plugged in where. MAC addresses were simplified to only hexadecimal. : and - marks were removed, so we had a consistent way of reading it. We filled in : every two digits to make it readable on the displayed version.
All in all, it's a day of programming to make the interface to edit the records by hand if necessary. It took a little while to get all the information updated. Every time someone went to a remote datacenter, they checked the list. There were crashed machines (power off, wasting space) that needed to be added. They also were to note the precise position, if a machine had been moved. They also had to determine where power was plugged in.
It was very helpful to determine if we could put more machines in a rack, without someone physically inspecting the site. We were able to ship equipment to sites, and have a local tech install it. "Put it above the machine labeled XYZ, plug in the network in ports 3,4. Plug in the power on PDU ## in position 4." We'd update our database to reflect that, and verify next time we had a staff member go to the site.
Staff were always sent out with label printers, in case a label was wrong. When we started doing it, there was a *lot* of information that was wrong. Machines had been reassigned over the years. and never got new stickers. Once we had the DB 90% right, it was easy to make the rest of the information correct.
Serious? Seriousness is well above my pay grade.
http://www.gestioip.net/ LAMP based IPAM application
A lot of network admins use the (free) tool Spiceworks. It does both hardware & software inventory with automated scans & network health checks. I manage 80+ devices on my network and Spiceworks has made that a LOT easier than a spreadsheet.
As a network admin, logon scripts come to mind... they allow computers to be logged... throw in a network scan for devices (printers, cameras, routers) and you should have a good idea where everything is looking
As a SharePoint developer, SP would be an easy answer, as it supports relational data, versioning, and accessible APIs... but you could easily use any simple database, web/wcf/json service.
Just pick a backend data store that's easily accessible via whatever scripting language(s) you're working with; remember, this is JUST the data store; the real value is provided by the scripts which provide quick updates
Google for Configuration Management Database software / solutions. Most corporate tools come with a sniffer / loader utiliy to scan the network, hook in or plug into servers and devices and update the CMDB in relative real time.
If you have no idea, start with the wikipedia article on CMDB: http://en.wikipedia.org/wiki/CMDB
Also have a look at what a configuration item is: http://en.wikipedia.org/wiki/Configuration_item
Have a play around with a free CMDB product if you like. OneCMDB is easy to get, setup and experiment with - http://www.onecmdb.org/
Major IT software vendors sell CMDB software, in the case of CA and HP it is part for their ITIL / ITSM tool - eg, http://www.ca.com/in/cmdb.aspx
With CMDB software I look for the following features: 1) Web interface, 2) Ability to easily load / unload / update data to the CMDB, 3) Ability to grant different levels of user admin, update and read access to the CMDB (preferably via web interface), 4) Tool to scan the network, determine or extract information, and upload the CMDB CIs (server names, server IP, hard drive space, physical ram, etc etc), 5) Ability to define users as CIs
A CMDB can relate configuration items in terms of how they relate to each other. Very useful in problem and incident management.
Quick overview: http://en.wikipedia.org/wiki/ITIL#Service_asset_and_configuration_management
Places like http://cmtf.com/ offer formal training and certification for Configuration Management. Does not cover specific product, but the theory of CM.
You have a sick, twisted mind. Please subscribe me to your newsletter.
Just because you are on Windows does not excuse inflecting sharepoint on users or administrators.
May as well install Confluence or Mediawiki or Drupal in preference to sharepoint. Either or can do the same job as Sharepoint in the content described by the OP
And yes, I have admined Sharepoint, Confluence and Mediawiki. I would suggest Confluence in this case,
Then rebuild from scratch.
Only way to be sure.
I see even classic Slashdot is now pretty much unusable on dial up anymore.
Two network discovery and self documenting systems. NetDisco is (if you can set it up) fantastic for tracking changes made per port.
http://www.netdisco.org/
http://www.observium.org/wiki/Main_Page
[RIAA] says its concern is artists. That's true, in just the sense that a cattle rancher is concerned about its cattle.
Just to add a little; in terms of network visibility. NMAP (http://nmap.org/) can be of great assistance in identifying network components that may be hidden away or forgotten. A document is only as good as the data it shows.
Been there. Done that. Failed repeatedly, and for various interesting reasons, none of which are generalizable.
Your problem has several aspects to it, and as far as I can nobody's talked about them. Lots of the answers talk about specific parts of the problem but not in a general way.
Here's your problem:
Frankly the last issue is the most important. If you can get management to sign off on spending money (and really, your time is their money) then you are 50% of the way home. If you get sandbagged halfway through when you discover you need to unplug three linksys switches that happen to form the iSCSI core network that will take the world offline for six hours to sort out a spanning-tree loop, then you'll have other problems. But the technical ones are easy to sort out once management has committed to spending time and money to solve them.
you should read everything on the internet as if it had "but I'm probably talking out of my ass" appended to it.