MRTG Installation and Configuration in Debian based Distributions by Admin @ 12:08 pm. Filed under Monitoring This article is focusing installing and configure MRTG with CPU,Memory and Disk Usage Graphs examples for Debian Ubuntu and Kubuntu Users and may be work for some debian based distributions. MRTG is 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. MRTG Requirements Apache webserver with perl support NET-SNMP GD Libpng zlib If you want to download MRTG you can download from here Preparing you System for MRTG Instalaltion First you need to install the required compilers #apt-get install gcc make g++ Apache 2 Installation with perl support Follow these instructions to install apache2 with perl support MRTG Installation Now we need to install mrtg and snmp Installing MRTG in Debian, Ubuntu and Kubuntu #apt-get install mrtg snmpd The installation will create an mrtg subdirectory where the Apache Web pages reside. On your Debian,ubnutu,kubuntu systems the path of this subdirectory is: /var/www/mrtg Now you need to edit the mrtg configuration file to edit the some of the settings File is located at /etc/mrtg.cfg you need to change the global settings as follows # Global Settings RunAsDaemon: yes EnableIPv6: no WorkDir: /var/www/mrtg Options[_]: bits,growright WriteExpires: Yes Title[^]: Traffic Analysis for You will find a crontab running every 5 minutes as user root # cat /etc/cron.d/mrtg 0-55/5 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg.cfg >> /var/log/mrtg/mrtg.log 2>&1; fi Now we need to assign the snmp community name in snmp configration file /etc/snmp/snmpd.conf # sec.name source community # com2sec paranoid default public com2sec readonly default public #com2sec readwrite default private Now you need to restart the snmp service #/etc/init.d/snmpd restart The configuration file creating using #cfgmaker public@localhost > /etc/mrtg.cfg Creating a configuration file for a device using cfgmaker #cfgmaker public@192.168.0.1 >> /etc/mrtg.cfg With the configuration file created correctly there’s only one other thing you have to do and that’s to use the indexmaker utility to create the summary home page. Since you have to re-run this command every time you make certain changes to the /etc/mrtg.cfg configuration file. Creating index file for the webserver using indexmaker #indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html Now you need to reboot your system wait for five minutes or so and then take a look at your summary home page. If your Debian,ubuntu,kubuntu system’s IP address is 192.168.0.1 then you’d type in the following in the address bar of a browser running on a system on the same network: http://192.168.0.1/mrtg/ Your summary home page should come up with a graph for each target entry in the configuration file. If a graph looks like there’s no data on it, click on it and check the statistics to see if any traffic is being seen. Small amounts of traffic won’t show up on the graphs because we used the Unscaled statement Some of examples how to monitor cpu , memory , Disk usage CPU Usage /etc/mrtg/cpu.cfg WorkDir: /var/www/mrtg LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt Target[localhost.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1+ ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1+ ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1 RouterUptime[localhost.cpu]: public@127.0.0.1 MaxBytes[localhost.cpu]: 100 Title[localhost.cpu]: CPU Load PageTop[localhost.cpu]: Active CPU Load % Unscaled[localhost.cpu]: ymwd ShortLegend[localhost.cpu]: % YLegend[localhost.cpu]: CPU Utilization Legend1[localhost.cpu]: Active CPU in % (Load) Legend2[localhost.cpu]: Legend3[localhost.cpu]: Legend4[localhost.cpu]: LegendI[localhost.cpu]: Active LegendO[localhost.cpu]: Options[localhost.cpu]: growright,nopercent Memory Usage /etc/mrtg/mem.cfg LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt Target[localhost.mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost PageTop[localhost.mem]:Free Memory WorkDir: /var/www/mrtg Options[localhost.mem]: nopercent,growright,gauge,noinfo Title[localhost.mem]: Free Memory MaxBytes[localhost.mem]: 1000000 kMG[localhost.mem]: k,M,G,T,P,X YLegend[localhost.mem]: bytes ShortLegend[localhost.mem]: bytes LegendI[localhost.mem]: Free Memory: LegendO[localhost.mem]: Legend1[localhost.mem]: Free memory, not including swap, in bytes Memory Monitoring (Total Versus Available Memory) /etc/mrtg/memfree.cfg LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt Target[server.memory]: memAvailReal.0&memTotalReal.0:public@localhost Title[server.memory]: Free Memory PageTop[server.memory]: < H1 >Free Memory< /H1 > MaxBytes[server.memory]: 100000000000 ShortLegend[server.memory]: B YLegend[server.memory]: Bytes LegendI[server.memory]: Free LegendO[server.memory]: Total Legend1[server.memory]: Free memory, not including swap, in bytes Legend2[server.memory]: Total memory Options[server.memory]: gauge,growright,nopercent kMG[server.memory]: k,M,G,T,P,X Memory Monitoring (Percentage usage) /etc/mrtg/mempercent.cfg LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt Title[server.mempercent]: Percentage Free Memory PageTop[server.mempercent]: < H1 >Percentage Free Memory< /H1 > Target[server.mempercent]: ( memAvailReal.0&memAvailReal.0:publicy@localhost ) * 100 / ( memTotalReal.0&memTotalReal.0:public@localhost ) options[server.mempercent]: growright,gauge,transparent,nopercent Unscaled[server.mempercent]: ymwd MaxBytes[server.mempercent]: 100 YLegend[server.mempercent]: Memory % ShortLegend[server.mempercent]: Percent LegendI[server.mempercent]: Free LegendO[server.mempercent]: Free Legend1[server.mempercent]: Percentage Free Memory Legend2[server.mempercent]: Percentage Free Memory Disk Usage /etc/mrtg/disk.cfg LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt Target[server.disk]: dskPercent.1&dskPercent.2:public@localhost Title[server.disk]: Disk Partition Usage PageTop[server.disk]: < H1 >Disk Partition Usage /home and /var< /H1 > MaxBytes[server.disk]: 100 ShortLegend[server.disk]: % YLegend[server.disk]: Utilization LegendI[server.disk]: /home LegendO[server.disk]: /var Options[server.disk]: gauge,growright,nopercent Unscaled[server.disk]: ymwd Creating jobs for CPU , Memory and Disk Usage CPU /etc/cron.mrtg/cpu #!/bin/sh /usr/bin/mrtg /etc/mrtg/cpu.cfg Memory /etc/cron.mrtg/mem #!/bin/sh /usr/bin/mrtg /etc/mrtg/mem.cfg Memory Free /etc/cron.mrtg/memfree #!/bin/sh /usr/bin/mrtg /etc/mrtg/memfree.cfg Memory Percentage /etc/cron.mrtg/mempercent #!/bin/sh /usr/bin/mrtg /etc/mrtg/mempercent.cfg Disk /etc/cron.mrtg/disk #!/bin/sh /usr/bin/mrtg /etc/mrtg/disk.cfg Run each script 3 times (disregard the warnings) /etc/cron.mrtg/cpu /etc/cron.mrtg/mem /etc/cron.mrtg/memfree /etc/cron.mrtg/mempercent /etc/cron.mrtg/disk Make the Index Files #/usr/bin/indexmaker –output=/var/www/mrtg/index.html \ –title=”Memory and CPU Usage ” \ –sort=name \ –enumerate \ /etc/mrtg/cpu.cfg \ /etc/mrtg/mem.cfg \ /etc/cron.mrtg/memfree \ /etc/cron.mrtg/mempercent \ /etc/cron.mrtg/disk Make the mrtg.cfg file #cfgmaker –global “WorkDir: /var/www/mrtg/” \ –global “Options[_]: growright,bits” \ –ifref=ip \ public@localhost > /etc/mrtg/mrtg.conf Cronjob setup /bin/cat >> /var/spool/cron/crontabs/root */5 * * * * /bin/run-parts /etc/cron.mrtg 1> /dev/null Now you logon to your web browser http://192.168.0.1/mrtg/ and Now you should see CPU,Memory and Disk Usage graphs.