MRTG-NT-GUIDE(1) mrtg MRTG-NT-GUIDE(1)
NNAAMMEE
mrtg-nt-guide - The Windows Guide to MRTG 2.14.7
SSYYNNOOPPSSIISS
Installing MRTG on a Windows box is not quite as "click
and point" as some might want it to be. But then again, it
is not all that difficult if you follow the instructions
below.
PPRREERREEQQUUIISSIITTEESS
To get MRTG to work on Windows you need the following:
+o A current copy of Perl. For Example ActivePerl from
http://www.activestate.com/Products/Download/Down-
load.plex?id=ActivePerl
+o The latest version of MRTG from
http://oss.oetiker.ch/mrtg/pub Look for
mrtg-2.14.7.zip or better. The archive also contains a
precompiled copy of rateup.exe for Win32.
IINNSSTTAALLLLIINNGG
I suggest you do the following from the machine that will
be running MRTG, which, in this case, is also a web
server. All examples are for doing things to a LOCAL
machine.
First
Unzip MRTG to C:\mrtg-2.14.7 on the Windows machine of
your choice.
Next
Install Perl on the same Windows machine. You might
want to make sure that the Perl binary directory is
listed in your system path.
C:\Perl\bin;%SystemRoot%\system32;%SystemRoot%;...
You can manually check this by going to [Control
Panel]->[System]->[Environment]
To see if everything is installed properly you can open a
Command Shell and go into _c_:_\_m_r_t_g_-_2_._1_4_._7_\_b_i_n. Type:
perl mrtg
This should give you a friendly error message complaining
about the missing MRTG configuration file. Now, you have
successfully installed MRTG and Perl.
CCOONNFFIIGGUURRIINNGG MMRRTTGG
Now it is time to create a configuration for MRTG. But
before we begin you need to know a few things. Take an
opportunity to gather the following information:
+o The IP address or hostname and the SNMP port number,
(if non standard), of the device you want to monitor.
+o If you want to monitor something other than bytes in
and out, you must also know the SNMPOID of what you
want to monitor.
+o Finally you need to know the read-only SNMP community
string for your device. If you don't know it, try ppuubb--
lliicc, that is the default.
For the rest of this document we will be using device
1100..1100..1100..11 ( a CISCO Catalyst 5000) with Community string
ppuubblliicc. We are interested in monitoring traffic, and the
CPU load. Let's begin.
The first thing we do in setting up MRTG is making a
default config file. Get to a cmd prompt and change to
the _c_:_\_m_r_t_g_-_2_._1_4_._7_\_b_i_n directory. Type the following com-
mand:
perl cfgmaker public@10.10.10.1 --global "WorkDir: c:\www\mrtg" --output mrtg.cfg
This creates an initial MRTG config file for you. Note
that in this file all interfaces of your router will be
stored by number. Unfortunately, these numbers are likely
to change whenever you reconfigure your router. In order
to work around this you can get _c_f_g_m_a_k_e_r to produce a con-
figuration which is based on Ip numbers, or even Interface
Descriptions. Check cfgmaker
If you get an error message complaining about nnoo ssuucchh nnaammee
or nnoo rreessppoonnssee, your community name is probably wrong.
Now, let's take a look at the mrtg.cfg file that was cre-
ated.
In Perl, a "#" is a comment, synonymous with "REM" in DOS.
Add the following to the top of the mrtg.cfg file:
WorkDir: D:\InetPub\wwwroot\MRTG
This is where the web pages are created, usually a web
root.
######################################################################
# Description: LCP SUWGB
# Contact: Administrator
# System Name: LC-Bridge
# Location: Here
#.....................................................................
TargetDevice's IP Address:Interface Number:Community:IP
Address
Target[10.10.10.1.1]: 1:public@10.10.10.1
This is the interface speed (Default is 10 megabits; for
100Mbit devices use 12500000 and so on...)
MaxBytes[10.10.10.1.1]: 1250000
Title[10.10.10.1.1]: LC-Bridge (sample.device): ether0
This section determines how the web page headers will look
PageTop[10.10.10.1.1]:
Traffic Analysis for ether0
System: | LC-Bridge inAndover |
Maintainer: | Administrator |
Interface: | ether0(1) |
IP: | sample.device(10.10.10.1) |
Max Speed: |
1250.0 kBytes/s (ethernetCsmacd) |
Target[10.10.10.1.2]: 2:public@10.10.10.1
MaxBytes[10.10.10.1.2]: 1250000
Title[10.10.10.1.2]: LC-Bridge (): ulink0
PageTop[10.10.10.1.2]: Traffic Analysis for ulink0
System: | LC-Bridge inAndover |
Maintainer: | Administrator |
Interface: | ulink0(2) |
IP: | () |
Max Speed: |
1250.0 kBytes/s (ethernetCsmacd) |
#---------------------------------------------------------------
And that's a very basic MRTG config file. You can run this
and see your results by going into the _c_:_\_m_r_t_g_-_2_._1_4_._7_\_b_i_n
directory and typing:
perl mrtg mrtg.cfg
It is normal to get errors for the first two times you run
this command. The errors will alert you about the fact
that there have not been any log files in existence
before.
If you take a look at those web pages they are not very
exciting (yet). You need to have the MRTG files run every
five minutes to produce the desired results. Just run it
again after a few minutes. You should now be able to see
the first lines in your graphs.
MMAAKKEE MMRRTTGG RRUUNN AALLLL TTHHEE TTIIMMEE
Starting MRTG by hand every time you want to run it is not
going to make you happy I guess.
There is a special option you can set in the MRTG configu-
ration file so so that MRTG will not terminate after it
was started. Instead it will wait for 5 minutes and then
run again.
Add the option
RunAsDaemon: yes
to your mrtg.cfg file and start it with:
start /Dc:\mrtg-2.14.7\bin wperl mrtg --logging=eventlog mrtg.cfg
If you use wwppeerrll instead of ppeerrll, no console window will
show. MRTG is now running in the background. If it runs
into problems it will tell you so over the EventLog. To
stop MRTG, open the Task Manager and terminate the
wwppeerrll..eexxee process. If mrtg has anything to tell you these
messages can be found in the event log.
If you put a shortcut with
Target: wperl mrtg --logging=eventlog mrtg.cfg
Start in: c:\mrtg-2.14.7\bin
into your start-up folder, MRTG will now start whenever
you login to your NT box.
If you do not want to log into your box just to start
MRTG. Have a look at http://www.firedae-
mon.com/mrtg-howto.html which describes a free tool to
start any program as a Service. The pages gives specific
instructions for MRTG users.
HHOOWW TTOO SSEETTUUPP MMRRTTGG AASS AA WWIINNDDOOWWSS SSEERRVVIICCEE
AAddddiittiioonnaall PPrreerreeqquuiissiitteess
+o MRTG must be installed and fully configured on the
target system. In the following exercise the assump-
tion is that MRTG is installed under c:\mrtg\ and all
the sample files use this location.
+o Microsoft Tools SSRRVVAANNYY..eexxee (Applications as Services
Utility) and IINNSSTTSSRRVV..eexxee (Service Installer) - Those
files can be downloaded from Microsoft as a part of
Windows 2000 Resource Kit at
. They are also avail-
able from other locations such as ,
, etc.
Detailed instructions on how to use this package are
available at . In order to follow
the steps in this HOW-TO you MMUUSSTT obtain both executa-
bles.
+o You must have administrative rights on the target sys-
tem.
PPrreeppaarraattiioonn
Please complete the following steps before starting the
installation:
+o Copy ssrrvvaannyy..eexxee and iinnssttssrrvv..eexxee to c:\mrtg\bin\ (your
MRTG bin directory).
+o Create a file called mmrrttgg..rreegg anywhere on your system
and paste the following content into it:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRTG\Parameters]
"Application"="c:\\perl\\bin\\wperl.exe"
"AppParameters"="c:\\mrtg\\bin\\mrtg --logging=eventlog c:\\mrtg\\bin\\mrtg.cfg"
"AppDirectory"="c:\\mrtg\\bin\\"
SSeerrvviiccee IInnssttaallllaattiioonn
Once again, assuming that MRTG is already fully installed
and configured on the target system under c:\mrtg\ the
following steps are necessary to setup MRTG as a service.
Using the command prompt go into the temporary directory
where you unzipped the package. When there type the fol-
lowing command to create a service named "MRTG" in the
Windows Services management console:
instsrv MRTG c:\mrtg\bin\srvany.exe
Now you need to create the AApppp** entries required for the
new service. You can do this by either right-clicking on
the mrtg.reg file and selecting 'merge' or by running the
following command:
regedit /s mrtg.reg
After setting up the registry entry it is time to point it
to your MRTG installation. If you have installed MRTG
under _c_:_\_m_r_t_g_\, you can skip this step. Open your reg-
istry editor (Start -> Run -> regedt32), and locate the
[[HHKKEEYY__LLOOCCAALL__MMAACCHHIINNEE\\SSYYSSTTEEMM\\CCuurrrreennttCCoonnttrroollSSeett\\SSeerr--
vviicceess\\MMRRTTGG]] key. Make sure that the IImmaaggeePPaatthh variable is
correctly pointing to ssrrvvaannyy..eexxee located in your MRTG bin
directory (for example c:\mrtg\bin\srvany.exe). Next you
have to expand the MRTG tree, and go to the
[[HHKKEEYY__LLOOCCAALL__MMAACCHHIINNEE\\SSYYSSTTEEMM\\CCuurrrreennttCCoonnttrroollSSeett\\SSeerr--
vviicceess\\MMRRTTGG\\PPaarraammeetteerrss]] key. Under Parameters make sure
that all the AApppplliiccaattiioonn variables are setup properly.
At this point you are ready to run the service. The only
thing left to do is to start the MRTG service in the Ser-
vices management console. After you do this, you should
see two new processes running on your system: srvany.exe
and wperl.exe. Make sure to stop any previously running
MRTG processes to avoid conflict.
Note that it is imperative to set the RRuunnAAssDDaaeemmoonn:: yyeess
option or the service will stop after just one single run!
EEXXAAMMPPLLEE
Now lets look at a config file to monitor what we wanted
to on our mythical Cisco Cat 5000 -- utilization on ports
3, 5, 10, and 24, and the CPU Load, which will show us
nonstandard mrtg configurations as well as more options..
WorkDir: D:\InetPub\wwwroot\MRTG
RunAsDaemon: yes
######################################################################
# Description: LCP SUWGB
# Contact: Administrator
# System Name: LC-Bridge
# Location: Here
#.....................................................................
Target[10.10.10.1.1]: 3:public@10.10.10.1
MaxBytes[10.10.10.1.1]: 1250000
Title[10.10.10.1.1]: LC-Bridge (sample-device): ether0
PageTop[10.10.10.1.1]: Traffic Analysis for ether0
System: | LC-Bridge inAndover |
Maintainer: | Administrator |
Interface: | ether0(3) |
IP: | sample-device(10.10.10.1) |
Max Speed: |
1250.0 kBytes/s (ethernetCsmacd) |
#---------------------------------------------------------------
Target[10.10.10.1.2]: 5:public@10.10.10.1
MaxBytes[10.10.10.1.2]: 1250000
Title[10.10.10.1.2]: LC-Bridge (): ulink0
PageTop[10.10.10.1.2]: Traffic Analysis for ulink0
System: | LC-Bridge inAndover |
Maintainer: | Administrator |
Interface: | ulink0(5) |
IP: | () |
Max Speed: |
1250.0 kBytes/s (ethernetCsmacd) |
#---------------------------------------------------------------
Target[10.10.10.1.1]: 10:public@10.10.10.1
MaxBytes[10.10.10.1.1]: 1250000
Title[10.10.10.1.1]: LC-Bridge (sample-device): ether0
PageTop[10.10.10.1.1]: Traffic Analysis for ether0
System: | LC-Bridge inAndover |
Maintainer: | Administrator |
Interface: | ether0(10) |
IP: | sample-device(10.10.10.1) |
Max Speed: |
1250.0 kBytes/s (ethernetCsmacd) |
#---------------------------------------------------------------
Target[10.10.10.1.2]: 24:public@10.10.10.1
MaxBytes[10.10.10.1.2]: 1250000
Title[10.10.10.1.2]: LC-Bridge (): ulink0
PageTop[10.10.10.1.2]: Traffic Analysis for ulink0
System: | LC-Bridge inAndover |
Maintainer: | Administrator |
Interface: | ulink0(24) |
IP: | () |
Max Speed: |
1250.0 kBytes/s (ethernetCsmacd) |
#---------------------------------------------------------------
# Router CPU load %
Target[cpu.1]:1.3.6.1.4.1.9.2.1.58.0&1.3.6.1.4.1.9.2.1.58.0:public@10.10.10.1
RouterUptime[cpu.1]: public@10.10.10.1
MaxBytes[cpu.1]: 100
Title[cpu.1]: CPU LOAD
PageTop[cpu.1]: CPU Load %
Unscaled[cpu.1]: ymwd
ShortLegend[cpu.1]: %
XSize[cpu.1]: 380
YSize[cpu.1]: 100
YLegend[cpu.1]: CPU Utilization
Legend1[cpu.1]: CPU Utilization in % (Load)
Legend2[cpu.1]: CPU Utilization in % (Load)
Legend3[cpu.1]:
Legend4[cpu.1]:
LegendI[cpu.1]:
LegendO[cpu.1]: Usage
Options[cpu.1]: gauge
This is a nice example of how to monitor any SNMP device
if you know what OID you want to use. Once again, for an
explanation of the more advance features of mrtg, please
see the rest of the documentation.
AAUUTTHHOORRSS
Tobi Oetiker , David S. Divins , Steve Pierce , Artyom
Adjemov , Ilja Ivanov
Karel Fajkus
2.14.7 2006-09-06 MRTG-NT-GUIDE(1)