September 11, 2006

Get your network's weather from Weathermap4RRD

Author: Walter Gould

When I was investigating the Abilene/Internet2 network sometime back, I found its "network weather map," which graphically shows the load on network segments, to be an interesting tool. I thought something similar could be helpful on our network. Today, we're using Weathermap4RRD to show a high-level graphical representation of our network.

When I started looking for a package that I could use to create a visual weather map of our campus network, I tested a couple of packages, such as Indiana University's WxMap (used to create the above Abilene map). WxMap seemed outdated and bore a restrictive license. By contrast, Weathermap4RRD and Network Weathermap, the Perl package on which it is based, are licensed under the GPL. The project provides a fair bit of documentation on installing and configuring Weathermap4RRD, which is not the case with some of the other projects I had looked at.

The description from the project's site states, "Network Weathermap4RRD is a PHP or Perl script that generates a picture of network link utilization. Data used to create graphs are acquired from RRDTool databases or MRTG HTML files and are displayed as ... colored arrows on a map representing the logical topology of the network." The site shows an example weathermap image.

One nice feature of Weathermap4RRD is its ability to gather data from either RRDTool databases or MRTG files. We already had MRTG graphing our network, so it made sense to configure Weathermap4RRD to gather the link utilization data from our MRTG HTML files.

Weathermap4RRD is quite configurable. For example, you have the ability to configure the arrow images that are shown on a map to either be in the form of a normal arrow, a half arrow, or an arrow made up of circles. You can also choose from a few network device images to be placed on your map, such as a Cisco router, PIX firewall, server, terminal, or wireless router. Here's an example of our campus network weathermap.

Setting up your own map is simple. First, you need to find an image that represents your network coverage area. Second, depending on the quality and resolution of the image, you may need to edit it with an image editor. I used the GIMP to clean up the image of our campus map, to change the resolution, and to save it in PNG file format, which Weathermap4RRD requires. Third, place your new map image in the Weathermap4RRD directory (which should be located in your htdocs root). Finally, edit the weathermap.conf file in the Weathermap4RRD directory and append your image name after the "BACKGROUND" line.

To add devices to your new network map image, you need to edit the NODES section of the weathermap.conf file. It is in this section that you name the nodes, decide on the map position of the nodes, and choose the icons (from the icons directory) that will be shown on the map for the nodes. To determine the position on the map where you want the node to be placed, use the GIMP to help you figure out the x and y coordinates.

Once you have added the nodes to your map, configure the links that tie the nodes together by editing the LINKS section of the weathermap.conf file. Start by naming a link and specifying the node names (from the NODES section) that make up the link. On the TARGET line, enter either the MRTG HTML file path or URL or the RRD database filename and path. Configure the unit of bandwith (bits or bytes) and the maximum link bandwidth. Finally, specify what type of link arrow you want displayed. The Weathermap4RRD site contains installation and configuration documentation as well as the explanation of the configuration file directives.

If there is a down side to the project, it might be that the latest package release is dated December 2005. To me, this seems like a long time not to have a new release. Another potential down side is that the project appears to be maintained solely by the developer, and not by a group of folks. Because of that, I wonder about its long-term longevity.

Having said that, I still think Weathermap4RRD is a good network mapping/monitoring package. With it, we don't have to spend 30 minutes looking at 10 different MRTG graphs to see what is happening on our network.