Site icon Leonid Mamchenkov

MRTG

MRTG (Multi Router Traffic Grapher) is monitoring utility, which runs on many platforms and is capable of collecting and graphing statistical information such as network traffic, CPU/Memory/Disk space usage, etc. MRTG can gather information using both SNMP protocol and external scripts. Below are few pieces of my MRTG config file together with scripts, which I felt like sharing.

#
# MS Win2k server monitoring
#
# CPU #0
# My script gets the processor load using snmpwalk.  There is a bug in 
# MS SNMP implementation, which changes the processor OID every time SNMP 
# service is restarted.
# My script takes care of it, until your processor is Intel based.  
Target[server1.cpu0]: `/usr/local/bin/mrtg/snmpcpuinfo.perl server1 community 0`
# This will be created under WordDir.  Comes very handy, when you have a
# a handfull of servers.
Directory[server1.cpu0]: server1.mydomain.com
# Processor load is measured in percent, so 100 will be enough.
MaxBytes[server1.cpu0]: 100
Options[server1.cpu0]: growright,integer,unknaszero,nopercent,gauge
Title[server1.cpu0]: server1.mydomain.com (cpu0)
YLegend[server1.cpu0]: % Used
ShortLegend[server1.cpu0]: %
# You can add here as many processors, as you have on your server.
#
# eth0
# This is the network interface of our Win2k server.  The easiest way
# to get the correct target is to use cfgmaker, which comes with MRTG.
Target[server1.eth0]: 2:community@server1.mydomain.com
Directory[server1.eth0]: server1.mydomain.com
Options[server1.eth0]: nopercent,growright
Title[server1.eth0]: server1.mydomain.com (eth0)
#
# users and processes
# Actually, this is not that useful on Win server, though I added it to
# have some consistency with Lin servers pages.
Target[server1.userproc]: `/usr/local/bin/mrtg/snmpuserprocinfo.perl server1 community`
Directory[server1.userproc]: server1.mydomain.com
MaxBytes[server1.userproc]: 523444000
Options[server1.userproc]: nopercent,growright,gauge,integer
Title[server1.userproc]: server1.mydomain.com (users and processes)
YLegend[server1.userproc]: Processes/Users
ShortLegend[server1.userproc]: #
#
# Disk space on drive C
# The index of disk can be obtained from snmpwalk output.
# Now, guess what?  Win2k does not update the value of space used very
# often.  Actually, this value changes only when the SNMP service is
# restarted.  There are different ways of going around this problem. I've
# decided to schedule SNMP service restarts every 10 minutes with 
# this .bat file.
Target[server1.diskc]: `/usr/local/bin/mrtg/snmphddinfo.perl server1 community 2`
Directory[server1.diskc]: server1.mydomain.com
# Make sure you put a huge number in here
MaxBytes[server1.diskc]: 100000000000
Options[server1.diskc]: growright,integer,unknaszero,nopercent,gauge
# By default MRTG uses 1000 for Kilo.  Here we change it for a second
kilo[server1.diskc]: 1024
# Disk space is better viewed in Megabytes, Gigabytes, etc.
kMG[server1.diskc]: M,G,T
ShortLegend[server1.diskc]: Bytes
#
#
# Linux server monitoring
#
# Append the following lines to your /etc/snmp/snmpd.conf and restart the
# snmp daemon.  Of course, you should not have hash (#) sign in front of
# those lines.
# ----------
# exec Load-1 /usr/bin/perl /usr/local/sbin/mrtg/loadavg.perl 1
# exec Load-5 /usr/bin/perl /usr/local/sbin/mrtg/loadavg.perl 5
# exec Procs /usr/bin/perl /usr/local/sbin/mrtg/numprocs.perl
# exec MailQ /usr/bin/perl /usr/local/sbin/mrtg/mailqlen.perl
# exec MailQ-Frozen /usr/bin/perl /usr/local/sbin/mrtg/mailqlen.perl frozen
# ----------
# CPU #0
# Actually, I am not measuring CPU load on in Linux servers.  I am pretty
# satisfied with plain Load Average * 100.
Target[server2.cpu0]: `/usr/local/bin/mrtg/snmploadavg.perl server2 community`
Directory[server2.cpu0]: server2.mydomain.com
# Actually, load average is multiplied by 100, so that the graph looks more
# interesting.
MaxBytes[server2.cpu0]: 10000
Options[server2.cpu0]: growright,integer,unknaszero,nopercent,gauge
Title[server2.cpu0]: server2.mydomain.com (Load average)
YLegend[server2.cpu0]: loadavg
LegendI[server2.cpu0]: 1 min load average
LegendO[server2.cpu0]: 5 min load average    
# You can add here as many processors, as you have on your server.
#
# eth0
# Network monitoring is configured exactly the same as for Win2k server.
# Still running of cfgmaker is recommended.
Target[server2.eth0]: 2:community@server2.mydomain.com
Directory[server2.eth0]: server2.mydomain.com
Options[server2.eth0]: nopercent,growright
Title[server2.eth0]: server2.mydomain.com (eth0)
#
# Mailq
# Monitoring of mail queue is essential, since it helps you to see a 
# wide range of problems with your server
# I am using Exim instead of Sendmail,
# so, I am sorry if you are missing mailq command.
Target[server2.mailq]: `/usr/local/bin/mrtg/snmpmailq.perl server2 community`
Directory[server2.mailq]: server2.mydomain.com
# Change the number appropriate for your environment
MaxBytes[server2.mailq]: 1000000
Options[server2.mailq]: growright,integer,unknaszero,nopercent,gauge
Title[server2.mailq]: server2.mydomain.com (Mail Queue)
YLegend[server2.mailq]: Messages
ShortLegend[server2.mailq]: Messages
LegendI[server2.mailq]: Frozen
LegendO[server2.mailq]: Total
#
# users and processes
# Pretty much the same as for Win2k server, but note that "lin" parameter 
# to the script.
Target[server2.userproc]: `/usr/local/bin/mrtg/snmpuserprocinfo.perl server2 community lin`
Directory[server2.userproc]: server2.mydomain.com
MaxBytes[server2.userproc]: 523444000
Options[server2.userproc]: nopercent,growright,gauge,integer
Title[server2.userproc]: server2.mydomain.com (users and processes)
YLegend[server2.userproc]: Processes/Users
ShortLegend[server2.userproc]: #
#
# Disk space on /
Target[server2.disk0]: `/usr/local/bin/mrtg/snmphddinfo.perl server2 community 1`
Directory[server2.disk0]: server2.mydomain.com
MaxBytes[server2.disk0]: 100000000000
Options[server2.disk0]: growright,integer,unknaszero,nopercent,gauge
# By default MRTG uses 1000 for Kilo.  Here we change it for a second
kilo[server2.disk0]: 1024
kMG[server2.disk0]: M,G,T
ShortLegend[server2.disk0]: Bytes

You can get all the scripts mentioned in this article as one file.

Exit mobile version