Some tools look useful, while actually taking focus away from the actual problem. This is an evil so unspeakable that one can only blog about it. ;)

Microsoft Visio allows you write down all the things that you have in your network. Essentially, it provides a visual inventory of a system, where you have mapped out the connections between the devices in the inventory.

Let us count the Fails:

  1. Data in an inventory should be portable.
    You don't want to run an inventory and then lock up the data; rather you want to do the inventory once and store it in a system that other things can easily use.
  2. Network inventories should reflect change.
    Why create dead documentation when we can monitor the devices? When the network changes, an out-of-date inventory becomes obvious because the missing device no longer responds to test requests.
  3. Inventories should be correct.
    There needs to be an automatic method of reconciling the inventory to the real world, so that you know when new devices have been added to the network.

If we wrote code like Visio, we'd document our code nicely but never check any function's return values to make sure they weren't made up. After writing the program, we'd just throw away the source. And when we ran our finished program, we'd never be sure whether it actually did what it was supposed to do.

Visio does have a use in selling high-level network ideas. Although, as soon as we delve into details, we should use a format that can be fed into a provisioning system because tractable network management requires ever expandable automation.

Using Visio just makes you poorer for the experience.


I agree about Visio, but I'm curious what you're using instead... Nagios? -- David W

RedBacks have a proprietary data feed (ftp data up to a server), so I started with that and ended up with python + pysnmp + some other checks that all write to mysql. From there, I chart with matplotlib, and have a bunch of compliance scripts that just make sure stuff operates as expected. -- Patrick.

MySQL? Thought you were more of a Postgres guy. Is there a technical reason for the decision to use MySQL in this case? -- David W

Nope, just working with what we had. ;)