MRTG 2.8.12
|
|
The Multi Router Traffic Grapher (MRTG) is a tool to monitor the traffic load on network-links. MRTG generates HTML pages containing GIF images which provide a LIVE visual representation of this traffic. Check http://www.ee.ethz.ch/stats/mrtg/ for an example. MRTG is based on Perl and C and works under UNIX and Windows NT. MRTG is being successfully used on many sites around the net. Check the MRTG-Site-Map.
MRTG consists of a Perl script which uses SNMP to read the traffic counters of your routers and a fast C program which logs the traffic data and creates beautiful graphs representing the traffic on the monitored network connection. These graphs are embedded into webpages which can be viewed from any modern Web-browser In addition to a detailed daily view, MRTG also creates visual representations of the traffic seen during the last seven days, the last four weeks and the last twelve months. This is possible because MRTG keeps a log of all the data it has pulled from the router. This log is automatically consolidated, so that it does not grow over time, but still contains all the relevant data for all the traffic seen over the last two years. This is all performed in an efficient manner. Therefore you can monitor 50 or more network links from any halfway decent UNIX box. MRTG is not limited to monitoring traffic though, it is possible to monitor any SNMP variable you choose. You can even use an external program to gather the data which should be monitored via MRTG. People are using MRTG, to monitor things such as System Load, Login Sessions, Modem availability and more. MRTG even allows you to accumulate two or more data sources into a single graph. |
In 1994 I was working at a site where we had one 64kbit line to the outside world. Obviously everybody was interested in knowing how the link was performing. So I wrote a quick hack which created a constantly updated graph on the web, showing the traffic load on our Internet link. This eventually evolved into a rather configurable Perl script called MRTG-1.0 which I released in spring 1995. After a few updates I left my job at DMU, to start work at the Swiss Federal Institute of Technology. Due to lack of time I had to put MRTG aside. One day in January of 1996, I received email from Dave Rand asking if I had any ideas why MRTG was so slow. Actually I did. MRTG's programming was not very efficient and it was written entirely in Perl. After a week or so, Dave wrote back to me and said he had tried what I had suggested for improving MRTG's speed. Since the changes did not help much, he had decided to rewrite the time-critical sections of MRTG in C. The code was attached to his email. His tool increased the speed of MRTG by a factor of 40! This got me out of my 'MRTG ignorance' and I started to spend my spare time developing of MRTG-2. Soon after MRTG-2 development had begun I started to give beta copies to interested parties. In return I got many feature patches, a lot of user feedback and bug fixes. The product you are getting now is the result of a wonderful collaboration of many people. I would like to take this opportunity to thank them all. (See the files CHANGES for a long list of friendly people who helped to make MRTG what it is today) |
Check the latest release notes by going to the mrtg CHANGES file. |
|
|
Q: Why is there no "@#$%" (my native language) version of
MRTG. Q: I need a script to make mrtg work with xyz. Q: I need more documentation ... Q: The GIFs created by MRTG look very strange. Not all the
grid lines are drawn and ... Q: What is my Community Name? Q: I compiled your program and I get the following errors: at the command line I typed ./mrtg kirit.cfg and I get : Can't locate Socket.pm in @INC at /SNMP_Session.pm line 27. BEGIN failed--compilation aborted at /SNMP_Session.pm line 27. BEGIN failed--compilation aborted at ./mrtg line 356.A: You need to get Perl5 installed properly. Socket.pm comes with Perl5 and is an integral part of Perl5. Perl5 comes with compiled in defaults about where it should look for its libraries (eg Socket.pm). Type 'perl -V' to see what your perl assumes ... And get it fixed ... Eg by installing it properly.
Q:My graphs show a flat, nonzero line during an outage. What's up with that? A:Well, the short answer is that when an SNMP query goes out and a response doesn't come back, MRTG has to assume something to put in the graph, and by default it assumes that the last answer we got back is probably closer to the truth than zero. This assumption is not perfect (as you have noticed), it's a trade-off that happens to fail during a total outage. If it's an unacceptable trade-off, run at least MRTG V2.8.4 and use the "unknaszero" option. You may want to know what you're trading off, so in the spirit of trade-offs, here's the long answer: The problem is that MRTG doesn't know *why* the data didn't come back, all it knows is that it didn't come back. It has to do something, and it assumes it's a stray lost packet rather than an outage. Why don't we always assume the circuit is down, and use zero, which will (we think) be more nearly right? Well, it turns out that you may be taking advantage of MRTG's "assume last" behaviour without being aware of it. MRTG uses SNMP (Simple Network Management Protocol) to collect data, and SNMP uses UDP (User Datagram Protocol) to ship packets around. UDP is connectionless (not guaranteed) - unlike TCP where packets are tracked and acknowledged and, if needed, re-transmitted end-to end, UDP just throws packets at the network and hopes they arrive. Sometimes they don't. One likely cause of lost SNMP data is congestion, another is busy routers. Other possibilities include transient telecommunications problems, router buffer overflows (which may or may not be congestion-related), "dirty lines" (links with high error rates), and acts of God. These things happen all the time, we just don't notice because many interactive services are TCP-based and the lost packets get retransmitted automatically. In the above cases where some SNMP packets are lost but traffic is flowing, assuming zero is the wrong thing to do - you end up with a graph that looks like it's missing teeth whenever the link fills up. MRTG interpolates the lost data to produce a smoother graph which is more accurate in cases of intermittent packet loss. But with V2.8.4 and above, you can use the "unknaszero" option to produce whichever graph is best under the conditions typical of your network. Official MRTG FAQ Site and browse the MRTG Mailing list Archives. |
For discussion of MRTG or related topics on the UseNet, please send your posts to: |
There are two mailing lists for MRTG available. One is called 'mrtg' and is a discussion list for users and developers. The other is called 'mrtg-announce' and is a low volume list for MRTG related announcements. To subscribe to these mailing lists, send a message with the subject line subscribe to either mrtg-request@list.ee.ethz.ch or mrtg-announce-request@list.ee.ethz.ch. For posting to the mrtg list use the address mrtg@list.ee.ethz.ch. Further information about the usage of the mailing lists is available by sending a message with the subject line 'help' to either one of the request addresses. For past activity there is also a mailing list archive available: http://www.ee.ethz.ch/~slist/mrtg |
By Stuart Schneider <SchneiS@testlab.orst.edu> To setup mrtg on a WindowsNT system, you can follow the instructions already provided for UNIX systems with the following addition: 6.5. Change the $main::OS setting at the top of the mrtg script to equal 'NT'. Or, for those who need a little extra help, follow these steps:
If you have any questions about this program,
or have it up and running, |
![]() |
![]() |
![]() |
Tobias Oetiker <oetiker@ee.ethz.ch> and Dave Rand <dlr@bungi.com> |