NAME¶
mrtg - What is MRTG ?
DESCRIPTION¶
The Multi Router Traffic Grapher (MRTG) is a tool to monitor the traffic load on
network links. MRTG generates HTML pages containing PNG images which provide a
LIVE visual representation of this traffic. Check
http://www.stat.ee.ethz.ch/mrtg/ to see what it does.
Go to
http://oss.oetiker.ch/mrtg for all the details about mrtg.
HIGHLIGHTS¶
- Portable
- MRTG works on most UNIX platforms and Windows NT.
- Perl
- MRTG is written in Perl and comes with full source.
- Portable SNMP
- MRTG Uses a highly portable SNMP implementation written
entirely in Perl (thanks to Simon Leinen). There is no need to install any
external SNMP package.
- SNMPv2c support
- MRTG can read the new SNMPv2c 64bit counters. No more
counter wrapping.
- Reliable Interface Identification
- Router interfaces can be identified by IP address,
description and ethernet address in addition to the normal interface
number.
- Constant size Logfiles
- MRTG's logfiles do NOT grow thanks to the use of a unique
data consolidation algorithm.
- Automatic Configuration
- MRTG comes with a set of configuration tools which make
configuration and setup very simple.
- Performance
- Time critical routines are written in C (thanks to the
initiative of Dave Rand my Co-Author).
- GIF free Graphics
- Graphics are generated directly in PNG format using the GD
library by Thomas Boutell.
- Customizability
- The look of the webpages produced by MRTG is highly
configurable.
- RRDtool
- MRTG has built-in hooks for using RRDtool. If you are
strapped for performance this may help.
DETAILS¶
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 five 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 200 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.
HISTORY¶
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 that showed 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 wouldn't be in this
state if it hadn't been for the great contributions and support I received
from of many people. I would like to take this opportunity to thank them all.
(See the files CHANGES for a long list of folk people who helped to make MRTG
what it is today.)
Command-line¶
Mrtg is also the name of the script you have to run to poll data and generate
the graphs. Most configuration is set through the configuration file; some
command-line options exist all the same.
- --user username and --group
groupname
- Run as the given user and/or group. (Unix Only)
- --lock-file filename
- Use an alternate lock-file (the default is to use the
configuration-file appended with "_l").
- --confcache-file filename
- Use an alternate confcache-file (the default is to use the
configuration-file appended with ".ok")
- --logging filename|eventlog
- If this is set to writable filename, all output from mrtg
(warnings, debug messages, errors) will go to filename. If you are
running on Win32 you can specify eventlog instead of a filename
which will send all error to the windows event log.
NOTE:Note, there is no Message DLL for mrtg. This has the side
effect that the windows event logger will display a nice message with
every entry in the event log, complaing about the fact that mrtg has no
message dll. If any of the Windows folks want to contribute one, they are
welcome.
- --daemon
- Put MRTG into the background, running as a daemon. This
works the same way as the config file option, but the switch is required
for proper FHS operation (because /var/run is writable only by root)
- --fhs
- Configure all mrtg paths to conform to the FHS
specification; http://www.pathname.com/fhs/
- --check
- Only check the cfg file for errors. Do not do
anything.
- --pid-file=s
- Define the name and path of the pid file for mrtg running
as a daemon
- --log-only
- Only update the logfile, do not produce graphics or html
pages
- --debug=s
- Enable debug options. The argument of the debug option is a
comma separated list of debug values:
cfg - watch the config file reading
dir - directory mangeling
base - basic program flow
tarp - target parser
snpo - snmp polling
fork - forking view
time - some timing info
log - logging of data via rateup or rrdtool
Example:
--debug="cfg,snpo"
READ ON¶
Learn more about MRTG by going to the mrtg home page on:
http://oss.oetiker.ch/mrtg
AUTHOR¶
Tobias Oetiker <tobi@oetiker.ch> and many contributors