After my home development network grew to about ten machines, I decided it was time to do a massive overhaul - things had fragmented with different scripts performing the same action on different machines, and no coherent single description of everything involved. While I had Nagios setup to monitor the status of most services on most machines, I was still lost at times as to what was connected to what, and what did what.
Personally, I feel that four or five machines is the limit to what I can keep in my head when it comes to remembering "everything". Past that, some aids are needed.
A good network map should, at a minimum, have three levels of data:
- Information about all of the devices connected to a network.
- Information on the physical aspect - cable routing, switches, and other network devices, as well as ancillary devices to each machine like KVMs and UPSes.
- Information on the serives being provided by each device - "Service Mapping"
Network Mapping Software
I have not been able to find any good package to perform "service mapping". Perhaps due to the requirement of local access to a machine, and perhaps even root privileges, this seems to be something unique to each environment. Personally, I have written a script which collects service information on each host, filters out the unnecessary information (like basic system processes and services) and provides useful output to a central repository in an easy-to-use format.
It is also superbly useful to maintain an inventory of all hardware. Some packages that aid this include: