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