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/
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:
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop















{ 15 comments… read them below or add one }
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.
nice one.
Very nice tutorial and the result is a working MRTG !
Thank you very much
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
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
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.
Hi all, for my install of mrtg on centos 5.5 i used the following config for snmpd :
and then the standard config as followed on this page for mrtg.
Hope this helps
I have followed all the steps above, done the checks along the way and when I got to the webpage I get Forbidden
You don’t have permission to access /mrtg on this server.
——————————————————————————–
Apache/2.2.3 (CentOS) Server at (removed for security purposes)
also changed permission (chmod 0555) but not work. it give me some error
I have followed all the steps above, done the checks along the way and when I got to the webpage I get Forbidden
You don’t have permission to access /mrtg on this server.
——————————————————————————–
Apache/2.2.3 (CentOS) Server at (removed for security purposes)
@TnToast,
You need to set correct permission on mrtg folder so that web server user can read the files:
Thanks Vivek Gite for helping a linux nuub
I am trying to configure MRTG on CentOS. I have followed the same steps. When I try to run “indexmaker –output=/var/www/html/mymrtg/index.html /etc/mrtg/mymrtg.cfg”, I get the error message “use of uninitialized value in hash element at usr bin indexmaker line 352″. How can I resolve this?
Any help will be appreciated.
Regards.
Also, I am getting the MRTG Index Page but it is not displaying any graph. I am guessing that the issue may be because of the error that I have posted in the previous comment.
Thanks.
I followed everything and it work’s beautiful. But how do I add another graph. As soon as I run
# cfgmaker –global ‘WorkDir: /var/www/mrtg’ –output /etc/mrtg/mrtg.cfg public@192.168.1.89 it chance the localhost config to the switch.
If i make it # cfgmaker –global ‘WorkDir: /var/www/mrtg’ –output /etc/mrtg/mrtg1.cfg public@192.168.1.254
It creates a new cfg but no second graph
Dear all of replyer, After i configured in mrtg, i’m getting only MRTG Index Page. How can i view graph? Thank for your replying.