Centos Install and Configure MRTG

by Vivek Gite on July 30, 2009 · 7 comments

How do I install and configure MRTG under Fedora Linux or CentOS Linux v5.x server to monitor the traffic load on network-links including routers?

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. You need the following packages:

  • mrtg : Multi Router Traffic Grapher
  • net-snmp and net-snmp-utils : SNMP (Simple Network Management Protocol) is a protocol used for network management. The NET-SNMP project includes various SNMP tools. net-snmp package contains the snmpd and snmptrapd daemons, documentation, etc. You also want to install the net-snmp-utils package, which contains NET-SNMP utilities.

This FAQ works with RHEL / CentOS and Fedora Linux.

Step # 1: Install MRTG

Type the following command to install packages using yum command under CentOS / Fedora Linux:
# yum install mrtg net-snmp net-snmp-utils

Step # 2: Configure snmpd

If you need to monitor localhost including interface and other stuff such as CPU, memory etc, configure snmpd. Open /etc/snmp/snmpd.conf, enter:
# vi /etc/snmp/snmpd.conf
Update it as follows to only allow access from localhost:

com2sec local     localhost           public
group MyRWGroup v1         local
group MyRWGroup v2c        local
group MyRWGroup usm        local
view all    included  .1                               80
access MyRWGroup ""      any       noauth    exact  all    all    none
syslocation VSNL, India
syscontact Root <vivek@nixcraft.tld>

Save and close the file. Restart snmpd:
# chkconfig snmpd on
# service snmpd restart

Make sure you see interface IP, by running the following command:
# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
Sample Outputs:

IP-MIB::ipAdEntIfIndex.123.xx.yy.zzz = INTEGER: 2
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1

Step # 3: Configure MRTG

Use cfgmaker command to creates /etc/mrtg/mrtg.cfg file, enter:
# cfgmaker --global 'WorkDir: /var/www/mrtg' --output /etc/mrtg/mrtg.cfg public@localhost

  • --global 'WorkDir: /var/www/mrtg' : add global config entries i.e. set workdir to store MRTG graphs.
  • --output /etc/mrtg/mrtg.cfg: configr output filename
  • public@localhost : public is the community name of the device you want to create a configuration for. If you are using the wrong community name you will get no response from the device. localhost is the DNS name or the IP number of an SNMP-managable device i.e. our local server.

Finally, run indexmaker to create web pages which display the status of an array of mrtg interface status pages:
# indexmaker --output=/var/www/mrtg/index.html /etc/mrtg/mrtg.cfg

Step # 4: Verify Cron Job

/etc/cron.d/mrtg runs mrtg command to monitor the traffic load on network links:
# cat /etc/cron.d/mrtg
Sample Output:

*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok

Just make sure crond is running and you are done with configuration:
# chkconfig --list crond
If it is off in run level # 3, just run the following to turn on crond service:
# chkconfig crond on
# service crond on

How do I view mrtg graphs?

You need Apache web server to view graphs, simply type the following to install httpd:
# yum install httpd
# chkconfig httpd on
# service httpd on

Fire a webbrowser and type the url:
http://your-ip.add.ress/mrtg/

http://192.168.1.5/mrtg/

Fig.01:Sample MRTG Graph

Fig.01:Sample MRTG Graph

How Do I Create MRTG For My Router at 192.168.1.254?

Run cfgmaker as follows (there is no need to configure snmp for router, as most router and switches comes pre configured with their own SNMPD):
# cfgmaker --global 'WorkDir: /var/www/mrtg' --output /etc/mrtg/mrtg.cfg public@router
OR
# cfgmaker --global 'WorkDir: /var/www/mrtg' --output /etc/mrtg/mrtg.cfg public@192.168.1.254

How Do I Password Protect My Graphs?

Read this FAQ: Set Apache Password Protected Directories With .htaccess File.

See Also:

Featured Articles:

Share this with other sys admins!
Facebook it - Tweet it - Print it -

{ 7 comments… read them below or add one }

1 Aaron July 30, 2009

Good tutorial. Very thorough.

The tool MRTG is great, but I’ve come to love Cacti (http://cacti.net/). It has a web-based interface for managing graphs and a very slick graphical presentation.

Reply

2 M. Sanaullah October 1, 2009

nice one.

Reply

3 Dimitris May 10, 2010

Very nice tutorial and the result is a working MRTG !
Thank you very much

Reply

4 Adnan Mubeen June 10, 2010

Hi there,
I install Centos 5.5 , I have got one problem here during configuration mrtg please help me , after i run this command
# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
output is nothing …
and then
when i run this
# indexmaker –output=/var/www/mrtg/index.html /etc/mrtg/mrtg.cfg
it is giving me error
Use of uninitialized value in hash element at /usr/bin/indexmaker line 352.

can some body help me please .
Thanks

Best Regards
Adnan Mubeen

Reply

5 Greg September 15, 2010

Make sure you have this line.
access MyRWGroup “” any noauth exact all all none

The snmpwalk must work before anything else will work.

Re Greg

Reply

6 oat June 21, 2011

Hi all,
I am having same issue. Use of uninitialized value in hash element at /usr/bin/indexmaker line 352. snmpd has no output. This is not my first time of configuring mrtg. This seems strange. I am also running snmp version 5.3.2.2. This is the third Centos I am trying today. same error.

Reply

7 Jonno August 1, 2011

Hi all, for my install of mrtg on centos 5.5 i used the following config for snmpd :

# First, map the community name “public” into a “security name”
# sec.name source community
com2sec notConfigUser default public

# Second, map the security name into a group name:
# groupName securityModel securityName
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser

# Third, create a view for us to let the group have rights to:
# Open up the whole tree for ro, make the RFC 1213 required ones rw.
# name incl/excl subtree mask(optional)
view roview included .1
view rwview included system.sysContact
view rwview included system.sysName
view rwview included system.sysLocation
view rwview included interfaces.ifTable.ifEntry.ifAdminStatus
view rwview included at.atTable.atEntry.atPhysAddress
view rwview included at.atTable.atEntry.atNetAddress
view rwview included ip.ipForwarding
view rwview included ip.ipDefaultTTL
view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteDest
view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteIfIndex
view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric1
view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric2
view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric3
view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric4
view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteType
view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteAge
view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMask
view rwview included ip.ipRouteTable.ipRouteEntry.ipRouteMetric5
view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaIfIndex
view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaPhysAddress
view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaNetAddress
view rwview included ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaType
view rwview included tcp.tcpConnTable.tcpConnEntry.tcpConnState
view rwview included egp.egpNeighTable.egpNeighEntry.egpNeighEventTrigger
view rwview included snmp.snmpEnableAuthenTraps

# Finally, grant the group read-only access to the systemview view.
# group context sec.model sec.level prefix read write notif
access notConfigGroup “” any noauth exact roview rwview none

###############################################################################
# System contact information
#

# It is also possible to set the sysContact and sysLocation system
# variables through the snmpd.conf file:

syslocation LOCATION, COUNTRY
syscontact NAME

and then the standard config as followed on this page for mrtg.

Hope this helps

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <blockquote> <pre> <a href="" title="">
What is 6 + 7 ?
Please leave these two fields as-is:
Solve the simple math so we know that you are a human and not a bot.




Previous post:

Next post: