MRTG: Difference between revisions

From CLONWiki
Jump to navigation Jump to search
Boiarino (talk | contribs)
No edit summary
Boiarino (talk | contribs)
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''General information'''
The Multi Router Traffic Grapher, or just simply MRTG, is free software for monitoring and measuring the traffic load on network links. It allows the user to see traffic load on a network over time in graphical form. It was originally developed by Tobias Oetiker and Dave Rand to monitor router traffic, but has developed into a tool that can create graphs and statistics for almost anything.
MRTG is written in Perl and can run on Windows, Linux, Unix, Mac OS and NetWare.
MRTG is free software licensed under the terms of the GNU General Public License.
'''How it works'''
MRTG uses the Simple Network Management Protocol [[SNMP]] to send requests with two object identifiers (OIDs) to a device. The device, which must be SNMP-enabled, will have a management information base (MIB) to look up the OIDs specified. After collecting the information it will send back the raw data encapsulated in an SNMP protocol. MRTG records this data in a log on the client along with previously recorded data for the device. The software then creates an HTML document from the logs, containing a list of graphs detailing traffic for the selected device.
'''Features'''
* Measures two values (I for Input, O for Output) per target.
* Gets its data via an SNMP agent, or through the output of a command line.
* Typically collects data every five minutes (it can be configured to collect data less frequently).
* Creates an HTML page per target that features four graphs (GIF or PNG images).
* Results are plotted vs time into day, week, month and year graphs, with the I plotted as a full green area, and the O as a blue line.
* Automatically scales the Y axis of the graphs to show the most detail.
* Adds calculated Max, Average and Current values for both I and O to the target's HTML page.
* Can also send warning emails if targets have values above a certain threshold.
'''See also'''
* [[Rrdtool]] - reimplementation of MRTG's graphing and logging features
* PRTG - Windows GUI implementation of MRTG's functionality (freeware available)
* Routers2 - Web front-end for MRTG/RRDtool combination
* Cacti - A similar tool using RRDtool.
MRTG is included in RHEL4; if want to install separately do following:
MRTG is included in RHEL4; if want to install separately do following:


  create user 'mrtg' with private group 'mrtg'
Create user 'mrtg' with private group 'mrtg'. On Linux, use GUI. If it reports problems in ''/etc/shadow'' file, use ''/usr/sbin/pwconv'' script.
 
Now do following:
   mkdir /www/mrtg2.15.0
   mkdir /www/mrtg2.15.0
   chown mrtg.mrtg /www/mrtg2.15.0
   chown mrtg.mrtg /www/mrtg2.15.0
Line 10: Line 44:
   make
   make
   make install
   make install
NOTE: mrtg-2.15.0 was used to install on 'clonweb'', mrtg-2.15.2 - on ''clonmon''.


Add MRTG-related part to apache config file /www/apache2.2.3/conf/httpd.conf:
Add MRTG-related part to apache config file /www/apache2.2.3/conf/httpd.conf:

Latest revision as of 14:39, 20 February 2009

General information

The Multi Router Traffic Grapher, or just simply MRTG, is free software for monitoring and measuring the traffic load on network links. It allows the user to see traffic load on a network over time in graphical form. It was originally developed by Tobias Oetiker and Dave Rand to monitor router traffic, but has developed into a tool that can create graphs and statistics for almost anything.

MRTG is written in Perl and can run on Windows, Linux, Unix, Mac OS and NetWare.

MRTG is free software licensed under the terms of the GNU General Public License.

How it works

MRTG uses the Simple Network Management Protocol SNMP to send requests with two object identifiers (OIDs) to a device. The device, which must be SNMP-enabled, will have a management information base (MIB) to look up the OIDs specified. After collecting the information it will send back the raw data encapsulated in an SNMP protocol. MRTG records this data in a log on the client along with previously recorded data for the device. The software then creates an HTML document from the logs, containing a list of graphs detailing traffic for the selected device.

Features

  • Measures two values (I for Input, O for Output) per target.
  • Gets its data via an SNMP agent, or through the output of a command line.
  • Typically collects data every five minutes (it can be configured to collect data less frequently).
  • Creates an HTML page per target that features four graphs (GIF or PNG images).
  • Results are plotted vs time into day, week, month and year graphs, with the I plotted as a full green area, and the O as a blue line.
  • Automatically scales the Y axis of the graphs to show the most detail.
  • Adds calculated Max, Average and Current values for both I and O to the target's HTML page.
  • Can also send warning emails if targets have values above a certain threshold.

See also

  • Rrdtool - reimplementation of MRTG's graphing and logging features
  • PRTG - Windows GUI implementation of MRTG's functionality (freeware available)
  • Routers2 - Web front-end for MRTG/RRDtool combination
  • Cacti - A similar tool using RRDtool.


MRTG is included in RHEL4; if want to install separately do following:

Create user 'mrtg' with private group 'mrtg'. On Linux, use GUI. If it reports problems in /etc/shadow file, use /usr/sbin/pwconv script.

Now do following:

 mkdir /www/mrtg2.15.0
 chown mrtg.mrtg /www/mrtg2.15.0
 cd /usr/local/src
 chown mrtg.mrtg mrtg-2.15.0
 cd mrtg-2.15.0
 ./configure --prefix=/www/mrtg2.15.0
 make
 make install

NOTE: mrtg-2.15.0 was used to install on 'clonweb, mrtg-2.15.2 - on clonmon.

Add MRTG-related part to apache config file /www/apache2.2.3/conf/httpd.conf:

 Alias /mrtg "/www/mrtg2.15.0/share"
 <Directory "/www/mrtg2.15.0/share">
   Options Indexes FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from all
 </Directory>

NOTE: temporary fix in:

 ERROR: CFG Error in "Interval": should be at least 5 Minutes (unless you use rrdtool)
 at /misc/clonweb/mrtg2.15.0/bin/../lib/mrtg2/MRTG_lib.pm line 772.

MRTG can be started by following command (do not start it yet !):

 env LANG=C /www/mrtg2.15.0/bin/mrtg /www/mrtg2.15.0/etc/mrtg.cfg

Copy contrib/mrtg-startup-script/mrtg to /etc/init.d/ and correct as following (do not forget to make unique second and third number after chkconfig):

 # chkconfig:    345 91 33
 # config:       /www/mrtg2.15.0/etc/mrtg.cfg
 MRTG="/www/mrtg2.15.0/bin/mrtg"
 CONFIG="/www/mrtg2.15.0/etc/mrtg.cfg"

Following commands can be used from now on (do not start it yet !):

 /etc/init.d/mrtg start
 /etc/init.d/mrtg stop
 /etc/init.d/mrtg restart

Add 'mrtg' to the list of services to be started at boot time (enable level 5 only):

 chkconfig --add mrtg
 chkconfig --level 3 mrtg off
 chkconfig --level 4 mrtg off
 chkconfig --list mrtg

Copy/create config files (was copied from clasweb-bck):

 cd /www/mrtg2.15.0
 mkdir etc
 cd /www/mrtg2.15.0/etc
 scp clasweb-bck:/etc/mrtg/"*" .

OR: create configuration files using 'cfgmaker' (never worked for me):

 #example
 #cfgmaker --global 'WorkDir: /home/httpd/mrtg'  \
 #         --global 'Options[_]: bits,growright' \
 #         --output /home/mrtg/cfg/mrtg.cfg    \
 #          community@router.abc.xyz
 DOES NOT WORK YET ...
 /www/mrtg2.15.0/bin/cfgmaker --global 'WorkDir: /www/mrtg2.15.0/etc'  \
        --global 'Options[_]: bits,growright' \
        --output /www/mrtg2.15.0/etc/mrtg.cfg \
        mrtg@clonweb.jlab.org
 DOES NOT WORK YET ...

OR: create configuration files manually (examples from clasweb-bck were used):

 etc/mrtg.cfg - main config file, includes *.inc files
 etc/*.inc - hardware-specific config files

Create 'web' directories:

 cd /www/mrtg2.15.0/share
 mkdir htmls
 mkdir images
 mkdir logs

MRTG will produce and update following files while running:

 share/htmls/*.html - actual html files to be displayed
 share/images/*.png (and *.gif ?) - monthly, dayly and yearly charts
 share/logs/*.log and *.old - current charts

It maybe good idea to copy some old files htmls/*, images/* and logs/* from previously used MRTG (on clasweb-bck in our case). It will preserve history: 'logs/*.log' contains recent history, while images/*.png contains longer history

 cd htmls
 scp clasweb-bck:/var/www/html/mrtg/Hall-B/htmls/* .
 cd ../images
 scp clasweb-bck:/var/www/html/mrtg/Hall-B/images/* .
 cd ../logs
 scp clasweb-bck:/var/www/html/mrtg/Hall-B/logs/* .

Start MRTG rigth the way to avoid interrupts in history:

 /etc/init.d/mrtg start

Generate 'index.html' script in 'share' directory. It will produce file for all channels. It can be splited manually on desired number of smaller files (it maybe possible to generate separate file for every *.inc, but it wanted WorkDir which is defined in mrtg.cfg, and I did not bother to play with it):

 /www/mrtg2.15.0/bin/indexmaker /www/mrtg2.15.0/etc/mrtg.cfg --prefix=htmls --show=none --output=/www/mrtg2.15.0/share/index.html


Cron job (another method to update plots ???):

 [root@clasweb-bck etc]# ll */mrtg
 -rw-r--r--    1 root     root           54 Feb 15  2005 cron.d/mrtg
 -rwxr-xr-x    1 vvsap    clas         1140 Mar  2  2005 init.d/mrtg
 [root@clasweb-bck etc]# more  cron.d/mrtg
 #0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg