mrtg-rrd - How to use RRDtool with MRTG


After using MRTG for some time you may find some limitations. Mostly in the areas of performance and graphing flexibility. These are exactly the areas addressed by rrdtool. To learn more about RRDtool check out its website on


When using mrtg with RRDtool you are replacing rateup with the RRDtool perl module To enable RRDtool support in mrtg you have to add the line

 LogFormat: rrdtool

MRTG needs access to both the RRDtool perl module and to the rrdtool executable.

If these two items are not installed in locations where perl can find them on its own, then you can use the following two parameters to supply the appropriate directories.

For the location of the rrdtool executable you put

 PathAdd: /usr/local/rrdtool/bin/


 PathAdd: c:\rrdtool\bin

For the location of the perl module it would be:

 LibAdd: /usr/local/rrdtool/lib/perl/


 LibAdd: c:\rrdtool\bin\lib\perl

When you have made this modification to the configuration file, several things will happen when you run mrtg again with the new config file:

  1. mrtg will take all your old .log files and convert them to .rrd format. (The .log files don't get touched in the process, so if things don't work out they are still there.)

  2. mrtg will use rrdtool to update its databases. These will have a new format called rrd which is totally different than the native log format of the classic mrtg.

  3. mrtg will not create any webpages of graphs anymore. It will only query the routers for traffic information and update its rrd databases.

The advantage of whole thing is that the mrtg will become much faster. Expect the runtime to drop to 20% of the previous value. (I would like to get some feedback on this from folks with large installations)

Mind you though, while the logging process of RRDtool is very fast, you are also gaining some time by neither creating graphs nor updating webpages. The idea behind this is that it is more efficient to create graphs and webpages on demand. Using a cgi script.

At the moment there is no official script to do this, but two contributers have created such scripts:

  1. 14all.cgi
    Was the first program to take over the webpage creation and graphing task. It has been developed by Rainer Bawidamann <>. You can find a copy on Rainers website:

    The program comes with its own documentation

    routers.cgi, servers.cgi and generic.cgi
    are other cgi frontends to mrtg running with rrdtool. Thier main difference to 14all is, that the web pages it creates are much more stylish than the ones from mrtg. These tools have been written by Steve Shipway <>. You can find a copy in

    The scripts comes with their own installation instructions.

    The mrtg-rrd script is a CGI/FastCGI application by Jan ``Yenya'' Kasprzak for displaying MRTG graphs from data in the RRDtool format. It is an intended replacement for the 14all.cgi script. It can make your monitoring system faster because MRTG does not have to generate all the PNG files with graphs every 5 minutes or so. Instead of this the graphs are generated on-demand when the user wants to see them.

Paul C. Williamson has written a more indepth page on how the whole process works, including some performance figures. You can find his page on


Just as a side note: MRTG-3 will be based entirely on rrdtool technology. But don't wait for it ... get going now!


Tobias Oetiker <>