mrtg-reference.1
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:69k
- ." Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
- ."
- ." Standard preamble:
- ." ========================================================================
- .de Sh " Subsection heading
- .br
- .if t .Sp
- .ne 5
- .PP
- fB\$1fR
- .PP
- ..
- .de Sp " Vertical space (when we can't use .PP)
- .if t .sp .5v
- .if n .sp
- ..
- .de Vb " Begin verbatim text
- .ft CW
- .nf
- .ne \$1
- ..
- .de Ve " End verbatim text
- .ft R
- .fi
- ..
- ." Set up some character translations and predefined strings. *(-- will
- ." give an unbreakable dash, *(PI will give pi, *(L" will give a left
- ." double quote, and *(R" will give a right double quote. | will give a
- ." real vertical bar. *(C+ will give a nicer C++. Capital omega is used to
- ." do unbreakable dashes and therefore won't be available. *(C` and *(C'
- ." expand to `' in nroff, nothing in troff, for use with C<>.
- .tr (*W-|(bv*(Tr
- .ds C+ Cv'-.1v'h'-1p's-2+h'-1p'+s0v'.1v'h'-1p'
- .ie n {
- . ds -- (*W-
- . ds PI pi
- . if (n(.H=4u)&(1m=24u) .ds -- (*Wh'-12u'(*Wh'-12u'-" diablo 10 pitch
- . if (n(.H=4u)&(1m=20u) .ds -- (*Wh'-12u'(*Wh'-8u'-" diablo 12 pitch
- . ds L" ""
- . ds R" ""
- . ds C` ""
- . ds C' ""
- 'br}
- .el{
- . ds -- |(em|
- . ds PI (*p
- . ds L" ``
- . ds R" ''
- 'br}
- ."
- ." If the F register is turned on, we'll generate index entries on stderr for
- ." titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
- ." entries marked with X<> in POD. Of course, you'll have to process the
- ." output yourself in some meaningful fashion.
- .if nF {
- . de IX
- . tm Index:\$1t\n%t"\$2"
- ..
- . nr % 0
- . rr F
- .}
- ."
- ." For nroff, turn off justification. Always turn off hyphenation; it makes
- ." way too many mistakes in technical documents.
- .hy 0
- .if n .na
- ."
- ." Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
- ." Fear. Run. Save yourself. No user-serviceable parts.
- . " fudge factors for nroff and troff
- .if n {
- . ds #H 0
- . ds #V .8m
- . ds #F .3m
- . ds #[ f1
- . ds #] fP
- .}
- .if t {
- . ds #H ((1u-(\\n(.fu%2u))*.13m)
- . ds #V .6m
- . ds #F 0
- . ds #[ &
- . ds #] &
- .}
- . " simple accents for nroff and troff
- .if n {
- . ds ' &
- . ds ` &
- . ds ^ &
- . ds , &
- . ds ~ ~
- . ds /
- .}
- .if t {
- . ds ' \k:h'-(\n(.wu*8/10-*(#H)''h"|\n:u"
- . ds ` \k:h'-(\n(.wu*8/10-*(#H)'`h'|\n:u'
- . ds ^ \k:h'-(\n(.wu*10/11-*(#H)'^h'|\n:u'
- . ds , \k:h'-(\n(.wu*8/10)',h'|\n:u'
- . ds ~ \k:h'-(\n(.wu-*(#H-.1m)'~h'|\n:u'
- . ds / \k:h'-(\n(.wu*8/10-*(#H)'z(slh'|\n:u'
- .}
- . " troff and (daisy-wheel) nroff accents
- .ds : \k:h'-(\n(.wu*8/10-*(#H+.1m+*(#F)'v'-*(#V'z.h'.2m+*(#F'.h'|\n:u'v'*(#V'
- .ds 8 h'*(#H'(*bh'-*(#H'
- .ds o \k:h'-(\n(.wu+w'(de'u-*(#H)/2u'v'-.3n'*(#[z(dev'.3n'h'|\n:u'*(#]
- .ds d- h'*(#H'(pdh'-w'~'u'v'-.25m'f2(hyfPv'.25m'h'-*(#H'
- .ds D- D\k:h'-w'D'u'v'-.11m'z(hyv'.11m'h'|\n:u'
- .ds th *(#[v'.3m's+1Is-1v'-.3m'h'-(w'I'u*2/3)'s-1os+1*(#]
- .ds Th *(#[s+2Is-2h'-w'I'u*3/5'v'-.3m'ov'.3m'*(#]
- .ds ae ah'-(w'a'u*4/10)'e
- .ds Ae Ah'-(w'A'u*4/10)'E
- . " corrections for vroff
- .if v .ds ~ \k:h'-(\n(.wu*9/10-*(#H)'s-2u~ds+2h'|\n:u'
- .if v .ds ^ \k:h'-(\n(.wu*10/11-*(#H)'v'-.4m'^v'.4m'h'|\n:u'
- . " for low resolution devices (crt and lpr)
- .if n(.H>23 .if n(.V>19
- {
- . ds : e
- . ds 8 ss
- . ds o a
- . ds d- dh'-1'(ga
- . ds D- Dh'-1'(hy
- . ds th o'bp'
- . ds Th o'LP'
- . ds ae ae
- . ds Ae AE
- .}
- .rm #[ #] #H #V #F C
- ." ========================================================================
- ."
- .IX Title "MRTG-REFERENCE 1"
- .TH MRTG-REFERENCE 1 "2006-02-03" "2.13.2" "mrtg"
- .SH "NAME"
- mrtg-reference - MRTG 2.13.2 configuration reference
- .SH "OVERVIEW"
- .IX Header "OVERVIEW"
- The runtime behaviour of s-1MRTGs0 is governed by a configuration file. Run-of-
- ther-mill configuration files can be generated with fBcfgmakerfR. (Check
- cfgmaker). But for more elaborate configurations some hand-tuning is
- required.
- .PP
- This document describes all the configuration options understood by
- the mrtg software.
- .SH "SYNTAX"
- .IX Header "SYNTAX"
- &s-1MRTGs0 configuration file syntax follows some simple rules:
- .IP "(bu" 4
- Keywords must start at the beginning of a line.
- .IP "(bu" 4
- Lines which follow a keyword line which start
- with a blank are appended to the keyword line
- .IP "(bu" 4
- Empty Lines are ignored
- .IP "(bu" 4
- Lines starting with a # sign are comments.
- .IP "(bu" 4
- You can add other files into the configuration file using
- .Sp
- &fBInclude:fR fIfilefR
- .Sp
- Example:
- .Sp
- .Vb 1
- & Include: base-options.inc
- .Ve
- .Sp
- If included files are specified with relative paths, both the current
- working directory and the directory containing the main config file will
- be searched for the files.
- .SH "GLOBAL KEYWORDS"
- .IX Header "GLOBAL KEYWORDS"
- .Sh "WorkDir"
- .IX Subsection "WorkDir"
- WorkDir specifies where the logfiles and the webpages should
- be created.
- .PP
- Example:
- .PP
- .Vb 1
- & WorkDir: /usr/tardis/pub/www/stats/mrtg
- .Ve
- .SH "OPTIONAL GLOBAL KEYWORDS"
- .IX Header "OPTIONAL GLOBAL KEYWORDS"
- .Sh "HtmlDir"
- .IX Subsection "HtmlDir"
- HtmlDir specifies the directory where the html (or shtml,
- but we'll get on to those later) lives.
- .PP
- &s-1NOTE:s0 Workdir overrides the settings for htmldir, imagedir
- and logdir.
- .PP
- Example:
- .PP
- .Vb 1
- & Htmldir: /www/mrtg/
- .Ve
- .Sh "ImageDir"
- .IX Subsection "ImageDir"
- ImageDir specifies the directory where the images live. They
- should be under the html directory.
- .PP
- Example:
- .PP
- .Vb 1
- & Imagedir: /www/mrtg/images
- .Ve
- .Sh "LogDir"
- .IX Subsection "LogDir"
- LogDir specifies the directory where the logs are stored.
- This need not be under htmldir directive.
- .PP
- Example:
- .PP
- .Vb 1
- & Logdir: /www/mrtg/logs
- .Ve
- .Sh "Forks (s-1UNIXs0 only)"
- .IX Subsection "Forks (UNIX only)"
- With system that supports fork (s-1UNIXs0 for example), mrtg can fork itself into multiple
- instances while it is acquiring data via snmp.
- .PP
- For situations with high latency or a great number of devices
- this will speed things up considerably. It will not make things faster,
- though, if you query a single switch sitting next door.
- .PP
- As far as I know s-1NTs0 can not fork so this option is not available on s-1NTs0.
- .PP
- Example:
- .PP
- .Vb 1
- & Forks: 4
- .Ve
- .Sh "EnableIPv6"
- .IX Subsection "EnableIPv6"
- When set to yes, IPv6 support is enabled if the required libraries are
- present (see the mrtg-ipv6 manpage). When IPv6 is enabled, mrtg can talk to routers
- using s-1SNMPs0 over IPv6 and targets may be specified by their numeric IPv6
- addresses as well as by hostname or IPv4 address.
- .PP
- If IPv6 is enabled and the target is a hostname, mrtg will try to resolve
- the hostname to an IPv6 address and, if this fails, to an IPv4 address.
- Note that mrtg will only use IPv4 if you specify an IPv4 address or a
- hostname with no corresponding IPv6 address; it will not fall back to IPv4
- if it simply fails to communicate with the target using IPv6. This is by
- design.
- .PP
- Note that many routers do not currently support s-1SNMPs0 over IPv6. Use the
- &fIIPv4OnlyfR per target option for these routers.
- .PP
- IPv6 is disabled by default.
- .PP
- Example:
- .PP
- .Vb 1
- & EnableIPv6: Yes
- .Ve
- .Sh "EnableSnmpV3"
- .IX Subsection "EnableSnmpV3"
- When set to yes, uses the Net::SNMP module instead of the s-1SNMP_SESSIONs0 module for
- generating snmp queries. This allows the use of SNMPv3 if other snmpv3 parameters
- are set.
- .PP
- SNMPv3 is disabled by default.
- .PP
- Example:
- .PP
- .Vb 1
- & EnableSnmpV3: yes
- .Ve
- .Sh "Refresh"
- .IX Subsection "Refresh"
- How many seconds apart should the browser (Netscape) be
- instructed to reload the page? If this is not defined, the
- default is 300 seconds (5 minutes).
- .PP
- Example:
- .PP
- .Vb 1
- & Refresh: 600
- .Ve
- .Sh "Interval"
- .IX Subsection "Interval"
- How often do you call mrtg? The default is 5 minutes. If
- you call it less often, you should specify it here.
- This does two things:
- .IP "(bu" 4
- The generated s-1HTMLs0 page contains the right
- information about the calling interval ...
- .IP "(bu" 4
- A s-1METAs0 header in the generated s-1HTMLs0 page will instruct
- caches about the time-to-live of this page .....
- .PP
- In this example, we tell mrtg that we will be calling it
- every 10 minutes. If you are calling mrtg every 5
- minutes, you can leave this line commented out.
- .PP
- Example:
- .PP
- .Vb 1
- & Interval: 10
- .Ve
- .PP
- Note that unless you are using rrdtool you can not set Interval to less
- than 5 minutes. If you are using rrdtool you can set interval down to 1
- minute. Note though, setting the Interval for an rrdtool/mrtg setup will
- influence the initial creation of the database. If you change the interval
- later, all existing databases will remain at the resolution they were
- initially created with.
- .Sh "MaxAge"
- .IX Subsection "MaxAge"
- &s-1MRTGs0 relies heavily on the real time clock of your computer. If the time is
- set to a wrong value, especially if it is advanced far into the future,
- this will cause mrtg to expire lots of supposedly old data from the log files.
- .PP
- To prevent this, you can add a 'reasonability' check by specifying a maximum
- age for log files. If a file seems to be older, mrtg will not touch it but
- complain instead, giving you a chance to investigate the cause.
- .PP
- Example:
- .PP
- .Vb 1
- & MaxAge: 7200
- .Ve
- .PP
- The example above will make mrtg refuse to update log files older than 2 hours (7200 seconds).
- .Sh "WriteExpires"
- .IX Subsection "WriteExpires"
- With this switch mrtg will generate .meta files for s-1CERNs0
- and Apache servers which contain Expiration tags for the
- html and gif files. The *.meta files will be created in
- the same directory as the other files, so you will have
- to set *(L"MetaDir .*(R" and *(L"MetaFiles on*(R"
- in your apache.conf or .htaccess file for this to work
- .PP
- &s-1NOTE:s0 If you are running Apache-1.2 or later, you can use the mod_expire
- to achieve the same effect ... see the file htaccess.txt
- .PP
- Example:
- .PP
- .Vb 1
- & WriteExpires: Yes
- .Ve
- .Sh "NoMib2"
- .IX Subsection "NoMib2"
- Normally we ask the s-1SNMPs0 device for 'sysUptime' and 'sysName' properties.
- Some do not have these. If you want to avoid getting complaints from
- mrtg about these missing properties, specify the nomib2 option.
- .PP
- An example of agents which do not implement base mib2 attributes are
- Computer Associates - Unicenter s-1TNGs0 Agents. s-1CAs0 relies on using the base
- &s-1OSs0 s-1SNMPs0 agent in addition to its own agents to supplement the management
- of a system.
- .PP
- Example:
- .PP
- .Vb 1
- & NoMib2: Yes
- .Ve
- .Sh "SingleRequest"
- .IX Subsection "SingleRequest"
- Some s-1SNMPs0 implementations can not deal with requests asking for
- multiple snmp variables in one go. Set this in your cfg file to force
- mrtg to only ask for one variable per request.
- .PP
- Examples
- .PP
- .Vb 1
- & SingleRequest: Yes
- .Ve
- .Sh "SnmpOptions"
- .IX Subsection "SnmpOptions"
- Apart from the per target timeout options, you can also configure the
- behaviour of the snmpget process on a more profound level. SnmpOptions
- accepts a hash of options. The following options are currently supported:
- .PP
- .Vb 7
- & timeout => $default_timeout,
- & retries => $default_retries,
- & backoff => $default_backoff,
- & default_max_repetitions => $max_repetitions,
- & use_16bit_request_ids => 1,
- & lenient_source_port_matching => 0,
- & lenient_source_address_matching => 1
- .Ve
- .PP
- The values behind the options indicate the current default value.
- Note that these settings s-1OVERRIDEs0 the per target timeout settings.
- .PP
- A per-target SnmpOptions[] keyword will override the global settings.
- That keyword is primarily for SNMPv3.
- .PP
- The 16bit request ids are the only way to query the broken s-1SNMPs0
- implementation of s-1SMCs0 Barricade routers.
- .PP
- Example:
- .PP
- .Vb 1
- & SnmpOptions: retries => 2, only_ip_address_matching => 0
- .Ve
- .PP
- Note that s-1AS/400s0 snmp seems to be broken in a way which prevents mrtg from
- working with it unless
- .PP
- .Vb 1
- & SnmpOptions: lenient_source_port_matching => 1
- .Ve
- .PP
- is set.
- .Sh "IconDir"
- .IX Subsection "IconDir"
- If you want to keep the mrtg icons in someplace other than the
- working (or imagedir) directory, use the fIIconDirfR variable for
- defining the url of the icons directory.
- .PP
- Example:
- .PP
- .Vb 1
- & IconDir: /mrtgicons/
- .Ve
- .Sh "LoadMIBs"
- .IX Subsection "LoadMIBs"
- Load the s-1MIBs0 file(s) specified and make its OIDs available as
- symbolic names. For better efficiancy, a cache of MIBs is maintained
- in the WorkDir.
- .PP
- Example:
- .PP
- .Vb 1
- & LoadMIBs: /dept/net/mibs/netapp.mib,/usr/local/lib/ft100m.mib
- .Ve
- .Sh "Language"
- .IX Subsection "Language"
- Switch output format to the selected Language (Check the fItranslatefR directory
- to see which languages are supported at the moment. In this directory you
- can also find instructions on how to create new translations).
- .PP
- Currently the following laguages are supported:
- .PP
- big5
- brazilian
- bulgarian
- catalan
- chinese
- croatian
- czech
- danish
- dutch
- eucjp
- french
- galician
- gb
- gb2312
- german
- greek
- hungarian
- icelandic
- indonesia
- iso2022jp
- italian
- korean
- lithuanian
- malay
- norwegian
- polish
- portuguese
- romanian
- russian
- russian1251
- serbian
- slovak
- slovenian
- spanish
- swedish
- turkish
- ukrainian
- .PP
- Example:
- .PP
- .Vb 1
- & Language: danish
- .Ve
- .Sh "LogFormat"
- .IX Subsection "LogFormat"
- Setting LogFormat to 'rrdtool' in your mrtg.cfg file enables rrdtool mode.
- In rrdtool mode, mrtg relies on fBrrdtoolfR to do its logging. See mrtg-rrd.
- .PP
- Example:
- .PP
- .Vb 1
- & LogFormat: rrdtool
- .Ve
- .Sh "LibAdd"
- .IX Subsection "LibAdd"
- If you are using rrdtool mode and your fBrrdtoolfR Perl module (RRDs.pm)
- is not installed in a location where perl can find it on its own, you can
- use LibAdd to supply an appropriate path.
- .PP
- Example:
- .PP
- .Vb 1
- & LibAdd: /usr/local/rrdtool/lib/perl/
- .Ve
- .Sh "PathAdd"
- .IX Subsection "PathAdd"
- If the fBrrdtoolfR executable can not be found in the normal f(CW*(C`PATH*(C'fR, you can
- use this keyword to add a suitable directory to your path.
- .PP
- Example:
- .PP
- .Vb 1
- & PathAdd: /usr/local/rrdtool/bin/
- .Ve
- .Sh "RunAsDaemon"
- .IX Subsection "RunAsDaemon"
- The RunAsDaemon keyword enables daemon mode operation. The purpose of daemon
- mode is that s-1MRTGs0 is launched once and not repeatedly (as it is with cron).
- This behavior saves computing resourses as loading and parsing
- of configuration files happens only once.
- .PP
- Using daemon mode s-1MRTGs0 itself is responible for timing the measurement
- intervals. Therfore its important to set the Interval keyword to an
- apropiate value.
- .PP
- Note that when using daemon mode s-1MRTGs0 should no longer be started from cron
- as each new process runs forever. Instead s-1MRTGs0 should be
- started from the command prompt or by a system startup script.
- .PP
- If you want mrtg to run under a particular user and group (it is not recomended to run
- &s-1MRTGs0 as root) then you can use the fB--user=fRfIuser_namefR and fB--group=fRfIgroup_namefR
- options on the mrtg commandline.
- .PP
- .Vb 1
- & mrtg --user=mrtg_user --group=mrtg_group mrtg.cfg
- .Ve
- .PP
- Also note that in daemon mode restarting the process is required in order to
- activate changes in the config file.
- .PP
- Under s-1UNIXs0, the Daemon switch causes mrtg to fork into background after
- checking its config file. On Windows s-1NTs0 the s-1MRTGs0 process will detach from
- the console, but because the s-1NT/2000s0 shell waits for its children you have to
- use this special start sequence when you launch the program:
- .PP
- .Vb 1
- & start /b perl mrtg mrtg.cfg
- .Ve
- .PP
- You may have to add path information equal to what you add when you run mrtg
- from the commandline.
- .PP
- Example
- .PP
- .Vb 2
- & RunAsDaemon: Yes
- & Interval: 5
- .Ve
- .PP
- This makes s-1MRTGs0 run as a daemon beginning data collection every 5 minutes
- .PP
- If you are daemontools and still want to run mrtg as a daemon you can
- additionally specify
- .PP
- .Vb 1
- & NoDetach: Yes
- .Ve
- .PP
- this will make mrtg run but without detaching it from the terminal.
- .Sh "ConversionCode"
- .IX Subsection "ConversionCode"
- Some devices may produce non-numeric values that would nevertheless
- be useful to graph with s-1MRTGs0 if those values could be converted to numbers.
- The ConversionCode keyword specifies the path to a file containing Perl code
- to perform such conversions. The code in this file must consist of one or more
- Perl subroutines. Each subroutine must accept a single string argument and
- return a single numeric value. When RRDtool is in use, a decimal value may
- be returned. When the name of one of these subroutines is specified in a
- target definition (see below), s-1MRTGs0 calls it twice for that target, once to
- convert the the input value being monitored and a second time to convert the
- output value. The subroutine must return an undefined value if the conversion
- fails. In case of failure, a warning may be posted to the s-1MRTGs0 log file using
- Perl's warn function. s-1MRTGs0 imports the subroutines into a separate name space
- (package MRTGConversion), so the user need not worry about pollution of s-1MRTGs0's
- global name space. s-1MRTGs0 automatically prepends this package declaration to
- the user-supplied code.
- .PP
- Example: Suppose a particular s-1OIDs0 returns a character string whose length is
- proportional to the value to be monitored. To convert this string to a
- number that can be graphed by s-1MRTGs0, create a file arbitrarily named
- &*(L"MyConversions.pl*(R" containing the following code:
- .PP
- .Vb 5
- & # Return the length of the string argument
- & sub Length2Int {
- & my $value = shift;
- & return length( $value );
- & }
- .Ve
- .PP
- Then include the following global keyword in the s-1MRTGs0 configuration file
- (assuming that the conversion code file is saved in the mrtg/bin directory
- along with mrtg itself):
- .PP
- .Vb 1
- & ConversionCode: MyConversions.pl
- .Ve
- .PP
- This will cause s-1MRTGs0 to include the definition of the subroutine Length2Int
- in its execution environment. Length2Int can then be invoked on any target
- by appending *(L"|Length2Int*(R" to the target definition as follows:
- .PP
- .Vb 1
- & Target[myrouter]: 1.3.6.1.4.1.999.1&1.3.6.1.4.1.999.1:public@mydevice|Length2Int
- .Ve
- .PP
- See *(L"Extended Host Name Syntax*(R" below for complete target definition syntax
- information.
- .SH "PER TARGET CONFIGURATION"
- .IX Header "PER TARGET CONFIGURATION"
- Each monitoring target must be identified by a unique name. This
- name must be appended to each parameter belonging to the same
- target. The name will also be used for naming the
- generated webpages, logfiles and images for this target.
- .Sh "Target"
- .IX Subsection "Target"
- With the fITargetfR keyword you tell mrtg what it should
- monitor. The fITargetfR keyword takes arguments in a wide
- range of formats:
- .IP "Basic" 4
- .IX Item "Basic"
- The most basic format is *(L"port:community@router*(R"
- This will generate a traffic graph for the interface 'port'
- of the host 'router' (dns name or s-1IPs0 address)
- and it will use the community 'community' (snmp password)
- for the snmp query.
- .Sp
- Example:
- .Sp
- .Vb 1
- & Target[myrouter]: 2:public@wellfleet-fddi.ethz.ch
- .Ve
- .Sp
- If your community contains a *(L"@*(R" or a *(L" *(R" these characters
- must be escaped with a *(L"e*(R".
- .Sp
- .Vb 1
- & Target[bla]: 2:stue pie@d@router
- .Ve
- .IP "SNMPv2c" 4
- .IX Item "SNMPv2c"
- If you have a fast router you might want to try to poll the ifHC* counters.
- This feature gets activated by switching to SNMPv2c. Unfortunately not all
- devices support SNMPv2c yet. If it works, this will prevent your counters
- from wraping within the 5 minute polling interval, since we now use 64 bit
- instead of the normal 32 bit.
- .Sp
- Example:
- .Sp
- .Vb 1
- & Target[myrouter]: 2:public@router1:::::2
- .Ve
- .IP "SNMPv3" 4
- .IX Item "SNMPv3"
- As an alternative to SNMPv2c, SNMPv3 provides access to the ifHC* counters,
- along with encryption. Not all devices support SNMPv3, and you will also
- need the perl Net::SNMP library in order to use it. It is recommended that
- cfgmaker be used to generate configurations involving SNMPv3, as it will
- check if the Net::SNMP library is loadable, and will switch to SNMPv2c if
- v3 is unavailable.
- .Sp
- &s-1SNMPs0 v3 requires additional authentication parameters, passed using the
- SnmpOptions[] per-target keyword.
- .Sp
- Example:
- Target[myrouter]: 2:router1:::::3
- SnmpOptions[myrouter]: username=>'user1'
- .IP "Reversing" 4
- .IX Item "Reversing"
- Sometimes you are sitting on the wrong side of the
- link, and you would like to have mrtg report Incoming
- traffic as Outgoing and vice versa. This can be achieved
- by adding the '-' sign in front of the *(L"Target*(R"
- description. It flips the incoming and outgoing traffic rates.
- .Sp
- Example:
- .Sp
- .Vb 1
- & Target[ezci]: -1:public@ezci-ether.ethz.ch
- .Ve
- .IP "Explicit OIDs" 4
- .IX Item "Explicit OIDs"
- You can also explicitly define which s-1OIDs0 to query by using the
- following syntax 'OID_1&OID_2:community@router'
- The following example will retrieve error counts for input and output
- on interface 1. s-1MRTGs0 needs to graph two variables,
- so you need to specify two s-1OIDs0's such as temperature and humidity
- or error input and error output.
- .Sp
- Example:
- .Sp
- .Vb 1
- & Target[myrouter]: 1.3.6.1.2.1.2.2.1.14.1&1.3.6.1.2.1.2.2.1.20.1:public@myrouter
- .Ve
- .IP "s-1MIBs0 Variables" 4
- .IX Item "MIB Variables"
- &s-1MRTGs0 knows a number of symbolic s-1SNMPs0 variable names.
- See the file mibhelp.txt for a list of known names.
- One example are the ifInErrors and ifOutErrors.
- This means you can specify the above as:
- .Sp
- Example:
- .Sp
- .Vb 1
- & Target[myrouter]: ifInErrors.1&ifOutErrors.1:public@myrouter
- .Ve
- .IP "SnmpWalk" 4
- .IX Item "SnmpWalk"
- It may be that you want to monitor an snmp object that is only reachable by
- &'walking'. You can get mrtg to walk by prepending the s-1OIDs0 with the string
- &fBWaLKfR or if you want a particular entry from the table returned by the walk
- you can use fBWaLKfRfIxfR where fIxfR is a number starting from 0 (!).
- .Sp
- Example:
- .Sp
- .Vb 1
- & Target[myrouter]: WaLKstrangeOid.1&WaLKstrangeOid.2:public@myrouter
- .Ve
- .Sp
- .Vb 1
- & Target[myrouter]: WaLK3strangeOid.1&WaLK4strangeOid.2:public@myrouter
- .Ve
- .IP "Interface by s-1IPs0" 4
- .IX Item "Interface by IP"
- Sometimes s-1SNMPs0 interface index can change, like when new interfaces are
- added or removed. This can cause all Target entries in your config file
- to become offset, causing s-1MRTGs0 to graphs wrong instances etc.
- &s-1MRTGs0 supports s-1IPs0 address instead of ifindex in target definition. Then
- &s-1MRTGs0 will query snmp device and try to map s-1IPs0 address to the current ifindex.
- You can use s-1IPs0 addresses in every type of target definition by adding
- &s-1IPs0 address of the numbered interface after s-1OIDs0 and separation char '/'.
- .Sp
- Make sure that the given s-1IPs0 address is used on
- your same target router, especially when graphing two different OIDs
- and/or interface split by '&' delimiter.
- .Sp
- You can tell cfgmaker to generate such references with the option
- &fB--ifref=ipfR.
- .Sp
- Example:
- .Sp
- .Vb 4
- & Target[myrouter]: /1.2.3.4:public@wellfleet-fddi.ethz.ch
- & Target[ezci]: -/1.2.3.4:public@ezci-ether.ethz.ch
- & Target[myrouter]: 1.3.6.1.2.1.2.2.1.14/1.2.3.4&1.3.6.1.2.1.2.2.1.14/1.2.3.4:public@myrouter
- & Target[myrouter]: ifInErrors/1.2.3.4&ifOutErrors/1.2.3.4:public@myrouter
- .Ve
- .IP "Interface by Description" 4
- .IX Item "Interface by Description"
- If you can not use s-1IPs0 addresses you might want to use
- the interface names. This works similar to the s-1IPs0 address aproach
- except that the prefix to use is a e instead of a /
- .Sp
- You can tell cfgmaker to generate such references with the option
- &fB--ifref=descrfR.
- .Sp
- Example:
- .Sp
- .Vb 4
- & Target[myrouter]: eMy-Interface2:public@wellfleet-fddi.ethz.ch
- & Target[ezci]: -eMy-Interface2:public@ezci-ether.ethz.ch
- & Target[myrouter]: 1.3.6.1.2.1.2.2.1.14eMy-Interface2&1.3.6.1.2.1.2.2.1.14eMy-Interface3:public@myrouter
- & Target[myrouter]: ifInErrorseMy-Interface2&ifOutErrorseMy-Interface3:public@myrouter
- .Ve
- .Sp
- If your description contains a *(L"&*(R", a *(L":*(R", a *(L"@*(R" or a *(L" *(R" you can include
- them but you must escape with a backlash:
- .Sp
- .Vb 1
- & Target[myrouter]: efune:e neye&ddd:public@hello.router
- .Ve
- .IP "Interface by Name" 4
- .IX Item "Interface by Name"
- This is the only sensible way to reference the interfaces of your switches.
- .Sp
- You can tell cfgmaker to generate such references with the option
- &fB--ifref=namefR.
- .Sp
- Example:
- .Sp
- .Vb 4
- & Target[myrouter]: #2/11:public@wellfleet-fddi.ethz.ch
- & Target[ezci]: -#2/11:public@ezci-ether.ethz.ch
- & Target[myrouter]: 1.3.6.1.2.1.2.2.1.14#3/7&1.3.6.1.2.1.2.2.1.14#3/7:public@myrouter
- & Target[myrouter]: ifInErrors#3/7&ifOutErrors#3/7:public@myrouter
- .Ve
- .Sp
- If your description contains a *(L"&*(R", a *(L":*(R", a *(L"@*(R" or a *(L" *(R" you can include them but you must escape with
- a backlash:
- .Sp
- .Vb 1
- & Target[myrouter]: #e:e fun:public@hello.router
- .Ve
- .Sp
- Note that the # sign will be interpreted as a comment character if
- it is the first non white-space character on the line.
- .IP "Interface by Ethernet Address" 4
- .IX Item "Interface by Ethernet Address"
- When the s-1SNMPs0 interface index changes, you can key that interface by its
- &'Physical Address', sometimes called a 'hard address', which is the s-1SNMPs0
- variable 'ifPhysAddress'. Internally, s-1MRTGs0 matches the Physical Address from
- the *.cfg file to its current index, and then uses that index for the rest of
- the session.
- .Sp
- You can use the Physical Address in every type of target definition by adding
- the Physical Address after the s-1OIDs0 and the separation char '!' (analogous to the s-1IPs0
- address option). The Physical address is specified as '-' delimited
- octets, such as *(L"0a-0-f1-5-23-18*(R" (omit the double quotes). Note that some
- routers use the same Hardware Ethernet Address for all of their Interfaces which
- prevents unique interface identification. Mrtg will notice such problems and alert you.
- .Sp
- You can tell cfgmaker to generate configuration files with hardware ethernet address references
- by using the option fB--ifref=ethfR.
- .Sp
- Example:
- .Sp
- .Vb 4
- & Target[myrouter]: !0a-0b-0c-0d:public@wellfleet-fddi.ethz.ch
- & Target[ezci]: -!0-f-bb-05-71-22:public@ezci-ether.ethz.ch
- & Target[myrouter]: 1.3.6.1.2.1.2.2.1.14!0a-00-10-23-44-51&!0a-00-10-23-44-51:public@myrouter
- & Target[myrouter]: ifInErrors!0a-00-10-23-44-51&ifOutErrors!0a-00-10-23-44-51:public@myrouter
- .Ve
- .IP "Interface by Type" 4
- .IX Item "Interface by Type"
- It seems that there are devices that try to defy all monitoring efforts: the interesting interfaces have
- neither ifName nor a constant ifDescr not to mention a persistant ifIndex. The only way to get a constant
- mapping is by looking at the interface type, because the interface you are interested in is unique in the
- device you are looking at ...
- .Sp
- You can tell cfgmaker to generate such references with the option
- &fB--ifref=typefR.
- .Sp
- Example:
- .Sp
- .Vb 4
- & Target[myrouter]: %13:public@wellfleet-fddi.ethz.ch
- & Target[ezci]: -%13:public@ezci-ether.ethz.ch
- & Target[myrouter]: 1.3.6.1.2.1.2.2.1.14%13&1.3.6.1.2.1.2.2.1.14%14:public@myrouter
- & Target[myrouter]: ifInErrors%13&ifOutErrors%14:public@myrouter
- .Ve
- .IP "Extended Host Name Syntax" 4
- .IX Item "Extended Host Name Syntax"
- In all places where ``community@router'' is accepted, you can add
- additional parameters for the s-1SNMPs0 communication using
- colon-separated suffixes. You can also append a pipe symbol ( | ) and
- the name of a numeric conversion subroutine as described under the global
- keyword *(L"ConversionCode*(R" above. The full syntax is as follows:
- .Sp
- .Vb 1
- & community@router[:[port][:[timeout][:[retries][:[backoff][:[version]][|name]]]]]
- .Ve
- .Sp
- where the meaning of each parameter is as follows:
- .RS 4
- .IP "port" 4
- .IX Item "port"
- the s-1UDPs0 port under which to contact the s-1SNMPs0 agent (default: 161)
- .IP "timeout" 4
- .IX Item "timeout"
- initial timeout for s-1SNMPs0 queries, in seconds (default: 2.0)
- .IP "retries" 4
- .IX Item "retries"
- number of times a timed-out request will be retried (default: 5)
- .IP "backoff" 4
- .IX Item "backoff"
- factor by which the timeout is multiplied on every retry (default: 1.0).
- .IP "version" 4
- .IX Item "version"
- for s-1SNMPs0 version. If you have a fast router you might want to put
- a '2' here. For authenticated or encrypted s-1SNMPs0, you can try to put a
- &'3' here. This will make mrtg try to poll the 64 bit counters and thus
- prevent excessive counter wrapping. Not all routers support this though.
- &s-1SNMPs0 v3 requires additional setup, see SnmpOptions[] for full details.
- .Sp
- Example:
- .Sp
- .Vb 1
- & 3:public@router1:::::2
- .Ve
- .IP "name" 4
- .IX Item "name"
- the name of the subroutine that s-1MRTGs0 will call to convert the input and output
- values to integers. See the complete example under the global keyword
- &*(L"ConversionCode*(R" above.
- .Sp
- Example:
- .Sp
- .Vb 1
- & 1.3.6.1.4.1.999.1&1.3.6.1.4.1.999.2:public@mydevice:161::::2|Length2Int
- .Ve
- .Sp
- This would retrieve values from the s-1OIDs0 1.3.6.1.4.1.999.1 for input and .2
- for output on mydevice using s-1UDPs0 port 161 and s-1SNMPs0 version 2, and would
- execute the user-defined numeric conversion subroutine Length2Int to convert
- those values to integers.
- .RE
- .RS 4
- .Sp
- A value that equals the default value can be omitted. Trailing colons
- can be omitted, too. The pipe symbol followed by the name parameter, if
- present, must come at the end. There must be no spaces around the colons or
- pipe symbol.
- .Sp
- Example:
- .Sp
- .Vb 1
- & Target[ezci]: 1:public@ezci-ether.ethz.ch:9161::4
- .Ve
- .Sp
- This would refer to the input/output octet counters for the interface
- with fIifIndex 1fR on fIezci-ether.ethz.chfR, as known
- by the s-1SNMPs0 agent listening on s-1UDPs0 port 9161. The standard initial
- timeout (2.0 seconds) is used, but the number of retries is set to
- four. The backoff value is the default.
- .RE
- .IP "Numeric IPv6 addresses" 4
- .IX Item "Numeric IPv6 addresses"
- If IPv6 is enabled you may also specify a target using its IPv6 address. To
- avoid ambiguity with the port number, numeric IPv6 addresses must be placed
- in square brackets.
- .Sp
- Example:
- .Sp
- .Vb 1
- & Target[IPv6test]: 2:public@[2001:760:4::]:6161::4
- .Ve
- .IP "External Monitoring Scripts" 4
- .IX Item "External Monitoring Scripts"
- If you want to monitor something which does not provide
- data via snmp you can use some external program to do
- the data gathering.
- .Sp
- The external command must return 4 lines of output:
- .RS 4
- .IP "Line 1" 4
- .IX Item "Line 1"
- current state of the first variable, normally 'incoming bytes count'
- .IP "Line 2" 4
- .IX Item "Line 2"
- current state of the second variable, normally 'outgoing bytes count'
- .IP "Line 3" 4
- .IX Item "Line 3"
- string (in any human readable format), telling the uptime of the target.
- .IP "Line 4" 4
- .IX Item "Line 4"
- string, telling the name of the target.
- .RE
- .RS 4
- .Sp
- Depending on the type of data your script returns you
- might want to use the 'gauge' or 'absolute' arguments
- for the fIOptionsfR keyword.
- .Sp
- Example:
- .Sp
- .Vb 1
- & Target[myrouter]: `/usr/local/bin/df2mrtg /dev/dsk/c0t2d0s0`
- .Ve
- .Sp
- Note the use of the backticks (`), not apostrophes (')
- around the command.
- .Sp
- If you want to use a backtick in the command name this can be done
- but you must escape it with a backslash ...
- .Sp
- If your script does not have any data to return but does not want mrtg to
- complain about invalid data, it can return 's-1UNKNOWNs0' instead of a number.
- Note though that only rrdtool is realy equipped to handle unknown data well.
- .RE
- .IP "Multi Target Syntax" 4
- .IX Item "Multi Target Syntax"
- You can also combine several target definitions in a mathematical expression.
- Any syntactically correct expression that the Perl interpreter can evaluate
- to will work. An expression could be used, for example, to aggregate both B
- channels in an s-1ISDNs0 connection or to calculate the percentage hard disk
- utilization of a server from the absolute used space and total capacity.
- .Sp
- Examples:
- .Sp
- .Vb 1
- & Target[myrouter]: 2:public@wellfleetA + 1:public@wellfleetA
- .Ve
- .Sp
- .Vb 2
- & Target[myrouter]: 1.3.6.1.4.1.999.1&1.3.6.1.4.1.999.2:public@mydevice /
- & 1.3.6.1.4.1.999.3&1.3.6.1.4.1.999.4:public@mydevice * 100
- .Ve
- .Sp
- Note that whitespace must surround each target definition in the expression.
- Target definitions themselves must not contain whitespace, except in
- interface descriptions and interface names, where each whitespace character
- is escaped by a backslash.
- .Sp
- &s-1MRTGs0 automatically rounds the result of the expression to an integer unless
- RRDTool logging is in use and the gauge option is in effect for the target.
- Internally s-1MRTGs0 uses Perl's Math::BigFloat package to calculate the result
- of the expression with 40 digits of precision. Even in extreme cases, where,
- for example, you take the difference of two 64-bit integers, the result of
- the expression should be accurate.
- .IP "s-1SNMPs0 Request Optimization" 4
- .IX Item "SNMP Request Optimization"
- &s-1MRTGs0 is designed to economize on its s-1SNMPs0 requests. Where a target
- definition appears more than once in the configuration file, s-1MRTGs0 requests
- the data from the device only once per round of data collection and uses
- the collected data for each instance of a particular target. Recognition of
- two target definitions as being identical is based on a simple string match
- rather than any kind of deeper semantic analysis.
- .Sp
- Example:
- .Sp
- .Vb 4
- & Target[Targ1]: 1:public@CiscoA
- & Target[Targ2]: 2:public@CiscoA
- & Target[Targ3]: 1:public@CiscoA + 2:public@CiscoA
- & Target[Targ4]: 1:public@CISCOA
- .Ve
- .Sp
- This results in a total of three s-1SNMPs0 requests. Data for 1:public@CiscoA
- and 2:public@CiscoA are requested only once each, and used for Targ1, Targ2,
- and Targ3. Targ4 causes another s-1SNMPs0 request for 1:public@CISCOA, which is not
- recognized as being identical to 1:public@CiscoA.
- .Sh "MaxBytes"
- .IX Subsection "MaxBytes"
- The maximum value either of the two variables monitored
- are allowed to reach. For monitoring router traffic
- this is normally the bytes per second this
- interface port can carry.
- .PP
- If a number higher than fIMaxBytesfR is returned, it is ignored.
- Also read the section on fIAbsMaxfR for further info.
- The fIMaxBytesfR value is also used in calculating the Y range
- for unscaled graphs (see the section on fIUnscaledfR).
- .PP
- Since most links are rated in bits per second, you need to divide their
- maximum bandwidth (in bits) by eight (8) in order to get bytes per second.
- This is very important to make your unscaled graphs display realistic
- information. T1 = 193000, 56K = 7000, 10 s-1MBs0 Ethernet = 1250000, 100 s-1MBs0
- Ethernet = 12500000. The fIMaxBytesfR value will be used by mrtg to decide
- whether it got a valid response from the router.
- .PP
- If you need two different MaxBytes values for the two monitored
- variables, you can use MaxBytes1 and MaxBytes2 instead of MaxBytes.
- .PP
- Example:
- .PP
- .Vb 1
- & MaxBytes[myrouter]: 1250000
- .Ve
- .Sh "Title"
- .IX Subsection "Title"
- Title for the s-1HTMLs0 page which gets generated for the graph.
- .PP
- Example:
- .PP
- .Vb 1
- & Title[myrouter]: Traffic Analysis for Our Nice Company
- .Ve
- .SH "OPTIONAL PER TARGET KEYWORDS"
- .IX Header "OPTIONAL PER TARGET KEYWORDS"
- .Sh "PageTop"
- .IX Subsection "PageTop"
- Things to add to the top of the generated s-1HTMLs0 page. Note
- that you can have several lines of text as long as the
- first column is empty.
- .PP
- Note that the continuation lines will all end up on the same
- line in the html page. If you want linebreaks in the generated
- html use the 'en' sequence.
- .PP
- Example:
- .PP
- .Vb 4
- & PageTop[myrouter]: <H1>Traffic Analysis for ETZ C95.1</H1>
- & Our Campus Backbone runs over an FDDI lineen
- & with a maximum transfer rate of 12.5 megabytes per
- & Second.
- .Ve
- .Sh "RouterUptime"
- .IX Subsection "RouterUptime"
- In cases where you calculate the used bandwidth from
- several interfaces you normaly don't get the router uptime
- and router name displayed on the web page.
- .PP
- If these interfaces are on the same router and the uptime and
- name should be displayed you have to specify
- its community and address again with the fIRouterUptimefR keyword.
- .PP
- Example:
- .PP
- .Vb 2
- & Target[kacisco.comp.edu]: 1:public@194.64.66.250 + 2:public@194.64.66.250
- & RouterUptime[kacisco.comp.edu]: public@194.64.66.250
- .Ve
- .Sh "RouterName"
- .IX Subsection "RouterName"
- If the default name of the router is incorrect/uninformative,
- you can use RouterName to specify a different s-1OIDs0 on either the
- same or a different host.
- .PP
- A practical example: sysName on BayTech s-1DS72s0 units always display
- &*(L"ds72*(R", no matter what you set the Unit s-1IDs0 to be. Instead, the
- Unit s-1IDs0 is stored at 1.3.6.1.4.1.4779.1.1.3.0, so we can have
- &s-1MRTGs0 display this instead of sysName.
- .PP
- Example:
- .PP
- .Vb 1
- & RouterName[kacisco.comp.edu]: 1.3.6.1.4.1.4779.1.1.3.0
- .Ve
- .PP
- A different s-1OIDs0 on a different host can also be specified:
- .PP
- .Vb 1
- & RouterName[kacisco.comp.edu]: 1.3.6.1.4.1.4779.1.1.3.0:public@194.64.66.251
- .Ve
- .Sh "MaxBytes1"
- .IX Subsection "MaxBytes1"
- Same as MaxBytes, for variable 1.
- .Sh "MaxBytes2"
- .IX Subsection "MaxBytes2"
- Same as MaxBytes, for variable 2.
- .Sh "IPv4Only"
- .IX Subsection "IPv4Only"
- Many IPv6 routers do not currently support s-1SNMPs0 over IPv6 and must
- be monitored using IPv4. The IPv4Only option forces mrtg to use IPv4
- when communicating with the target, even if IPv6 is enabled. This is
- useful if the target is a hostname with both IPv4 and IPv6 addresses;
- without the IPv4Only keyword, monitoring such a router will not work
- if IPv6 is enabled.
- .PP
- If set to no (the default), mrtg will use IPv6 unless the target has
- no IPv6 addresses, in which case it will use IPv4. If set to yes, mrtg
- will only use IPv4.
- .PP
- Note that if this option is set to yes and the target does not have an
- IPv4 address, communication with the target will fail.
- .PP
- This option has no effect if IPv6 is not enabled.
- .PP
- Example:
- .PP
- .Vb 2
- & Target[v4onlyrouter_1]: 1:public@v4onlyrouter
- & IPv4Only[v4onlyrouter_1]: Yes
- .Ve
- .Sh "SnmpOptions (V3)"
- .IX Subsection "SnmpOptions (V3)"
- SNMPv3 requires a fairly rich set of options. This per-target keyword
- allows access to the User Security Model of SNMPv3. Options are listed
- in the same syntax as a perl hash.
- .PP
- fISecurity ModesfR
- .IX Subsection "Security Modes"
- .PP
- SNMPv3 has three security modes, defined on the device being polled.
- For example, on Cisco routers the security mode is defined by the
- snmp-server group global configuration command.
- .IP "NoAuthNoPriv" 4
- .IX Item "NoAuthNoPriv"
- Neither Authentication nor Privacy is defined. Only the Username
- option is specified for this mode.
- .Sp
- Example:
- .Sp
- .Vb 1
- & SnmpOptions[myrouter]: username=>'user1'
- .Ve
- .IP "AuthNoPriv" 4
- .IX Item "AuthNoPriv"
- Uses a Username and a password. The password can be hashed using the
- snmpkey application, or passed in plain text along with the ContextEngineID
- .Sp
- Example:
- .Sp
- .Vb 2
- & SnmpOptions[myrouter]: username=>'user1',authpassword=>'example',
- & contextengineid=>'80000001110000004000000'
- .Ve
- .IP "Priv" 4
- .IX Item "Priv"
- Both Authentication and Privacy is defined. The default privacy protocol
- is des.
- .Sp
- Example:
- SnmpOptions[myrouter]: authkey=>'0x1e93ab5a396e2af234c8920e61cfe2028072c0e2',
- authprotocol=>'sha',privprotocol=>'des',username=>'user1',
- privkey=>'0x498d74940c5872ed387201d74b9b25e2'
- .PP
- fIsnmp optionsfR
- .IX Subsection "snmp options"
- .PP
- The following option keywords are recognized:
- .IP "username" 4
- .IX Item "username"
- The user associated with the User Security Model
- .IP "contextname" 4
- .IX Item "contextname"
- An s-1SNMPs0 agent can define multiple contexts. This keyword allows them to
- be polled.
- .IP "contextengineid" 4
- .IX Item "contextengineid"
- A unique 24-byte string identifying the snmp-agent.
- .IP "authpassword" 4
- .IX Item "authpassword"
- The plaintext password for a user in either AuthNoPriv or Priv mode.
- .IP "authkey" 4
- .IX Item "authkey"
- A md5 or sha hash of the plain-text password, along with the engineid.
- Use the snmpkey commandline program to generate this hash, or use
- Net::SNMP::Security::USM in a script.
- .IP "authprotocol {sha|md5}" 4
- .IX Item "authprotocol {sha|md5}"
- The hashing algorithm defined on the s-1SNMPs0 client. Defaults to md5.
- .IP "privpassword" 4
- .IX Item "privpassword"
- A plaintext pre-shared key for encrypting snmp packets in Priv mode.
- .IP "privkey" 4
- .IX Item "privkey"
- A hash of the plain-text pre-shared key, along with the engineid.
- Use the snmpkey commandline program to generate this hash, or use
- Net::SNMP::Security::USM in a script.
- .IP "privprotocol {des|3desede|aescfb128|aescfb192|aescfb256}" 4
- .IX Item "privprotocol {des|3desede|aescfb128|aescfb192|aescfb256}"
- Specifies the encryption method defined on the snmp agent. The default
- is des.
- .Sh "PageFoot"
- .IX Subsection "PageFoot"
- Things to add to the bottom of the generated s-1HTMLs0 page. Note
- that you can have several lines of text as long as the
- first column is empty.
- .PP
- Note that the continuation lines will all end up on the same
- line in the html page. If you want linebreaks in the generated
- html use the 'en' sequence.
- .PP
- The material will be added just before the </BODY> tag:
- .PP
- Example:
- .PP
- .Vb 2
- & PageFoot[myrouter]: Contact <A HREF="mailto:peter@x.yz">Peter</A>
- & if you have questions regarding this page
- .Ve
- .Sh "AddHead"
- .IX Subsection "AddHead"
- Use this tag like the fIPageTopfR header, but its contents
- will be added between </TITLE> and </HEAD>.
- .PP
- Example:
- .PP
- .Vb 1
- & AddHead[myrouter]: <link rev="made" href="mailto:mrtg@blabla.edu">
- .Ve
- .Sh "BodyTag"
- .IX Subsection "BodyTag"
- BodyTag lets you supply your very own <body ...> tag for the
- generated webpages.
- .PP
- Example:
- .PP
- .Vb 2
- & BodyTag[myrouter]: <BODY LEFTMARGIN="1" TOPMARGIN="1"
- & BACKGROUND="/stats/images/bg.neo2.gif">
- .Ve
- .Sh "AbsMax"
- .IX Subsection "AbsMax"
- If you are monitoring a link which can handle more traffic
- than the fIMaxBytesfR value. Eg, a line which uses compression
- or some frame relay link, you can use the fIAbsMaxfR keyword
- to give the absolute maximum value ever to be reached.
- We need to know this in order to sort out unrealistic values
- returned by the routers. If you do not set fIAbsMaxfR, rateup
- will ignore values higher than fIMaxBytesfR.
- .PP
- Example:
- .PP
- .Vb 1
- & AbsMax[myrouter]: 2500000
- .Ve
- .Sh "Unscaled"
- .IX Subsection "Unscaled"
- By default each graph is scaled vertically to make the
- actual data visible even when it is much lower than
- &fIMaxBytesfR. With the fIUnscaledfR variable you can suppress
- this. It's argument is a string, containing one letter
- for each graph you don't want to be scaled: d=day w=week
- m=month y=year. There is also a special case to unset the
- variable completely: n=none. This could be useful in the
- event you need to override a global configuration. In the
- example scaling for the yearly and the monthly graph are
- suppressed.
- .PP
- Example:
- .PP
- .Vb 1
- & Unscaled[myrouter]: ym
- .Ve
- .Sh "WithPeak"
- .IX Subsection "WithPeak"
- By default the graphs only contain the average
- values of the monitored variables - normally the
- transfer rates for incoming and outgoing traffic.
- The following option instructs mrtg to display the peak
- 5 minute values in the [w]eekly, [m]onthly and
- [y]early graph. In the example we define the monthly
- and the yearly graph to contain peak as well as average
- values.
- .PP
- Examples:
- .PP
- .Vb 1
- & WithPeak[myrouter]: ym
- .Ve
- .Sh "Suppress"
- .IX Subsection "Suppress"
- By default mrtg produces 4 graphs. With this option
- you can suppress the generation of selected graphs.
- The option value syntax is analogous to the above two options.
- In this example we suppress the yearly graph
- as it is quite empty in the beginning.
- .PP
- Example:
- .PP
- .Vb 1
- & Suppress[myrouter]: y
- .Ve
- .Sh "Extension"
- .IX Subsection "Extension"
- By default, mrtg creates .html files. Use this option to tell mrtg to
- use a different extension. For example you could set the extension to
- php3, then you will be able to enclose s-1PHPs0 tags into the output (useful
- for getting a router name out of a database).
- .PP
- Example:
- .PP
- .Vb 1
- & Extension[myrouter]: phtml
- .Ve
- .Sh "Directory"
- .IX Subsection "Directory"
- By default, mrtg puts all the files that it generates for each
- target (the GIFs, the s-1HTMLs0 page, the log file, etc.) in fIWorkDirfR.
- .PP
- If the fIDirectoryfR option is specified, the files are instead put
- into a directory under fIWorkDirfR or Log-, Image- and HtmlDir).
- (For example the fIDirectoryfR
- option below would cause all the files for a target myrouter
- to be put into directory /usr/tardis/pub/www/stats/mrtg/myrouter/ .)
- .PP
- The directory must already exist; mrtg will not create it.
- .PP
- Example:
- .PP
- .Vb 2
- & WorkDir: /usr/tardis/pub/www/stats/mrtg
- & Directory[myrouter]: myrouter
- .Ve
- .PP
- &s-1NOTE:s0 the Directory option must always be 'relative' or bad things will happen.
- .Sh "XSize and YSize"
- .IX Subsection "XSize and YSize"
- By default mrtgs graphs are 100 by 400 pixels wide (plus
- some more for the labels. In the example we get almost
- square graphs ...
- .PP
- Note: XSize must be between 20 and 600; YSize must be larger than 20
- .PP
- Example:
- .PP
- .Vb 2
- & XSize[myrouter]: 300
- & YSize[myrouter]: 300
- .Ve
- .Sh "XZoom and YZoom"
- .IX Subsection "XZoom and YZoom"
- If you want your graphs to have larger pixels, you can
- &*(L"Zoom*(R" them.
- .PP
- Example:
- .PP
- .Vb 2
- & XZoom[myrouter]: 2.0
- & YZoom[myrouter]: 2.0
- .Ve
- .Sh "XScale and YScale"
- .IX Subsection "XScale and YScale"
- If you want your graphs to be actually scaled use fIXScalefR
- and fIYScalefR. (Beware: while this works, the results look ugly
- (to be frank) so if someone wants to fix this: patches are welcome.
- .PP
- Example:
- .PP
- .Vb 2
- & XScale[myrouter]: 1.5
- & YScale[myrouter]: 1.5
- .Ve
- .Sh "YTics and YTicsFactor"
- .IX Subsection "YTics and YTicsFactor"
- If you want to show more than 4 lines per graph, use YTics.
- If you want to scale the value used for the YLegend of these
- tics, use YTicsFactor.
- The default value for YTics is 4 and the default value for
- YTicsFactor is 1.0 .
- .PP
- Example:
- .PP
- Suppose you get values ranging from 0 to 700.
- You want to plot 7 lines and want to show
- 0, 1, 2, 3, 4, 5, 6, 7 instead of 0, 100, 200,
- 300, 400, 500, 600, 700. You should write then:
- .PP
- .Vb 2
- & YTics[myrouter]: 7
- & YTicsFactor[myrouter]: 0.01
- .Ve
- .Sh "Factor"
- .IX Subsection "Factor"
- If you want to multiply all numbers shown below the graph with a constant factor, use
- this directive to define it ..
- .PP
- Example:
- .PP
- .Vb 1
- & Factor[as400]: 4096
- .Ve
- .Sh "Step"
- .IX Subsection "Step"
- Change the default step from 5 * 60 seconds to
- something else (I have not tested this much ...)
- .PP
- Example:
- .PP
- .Vb 1
- & Step[myrouter]: 60
- .Ve
- .Sh "PNGTitle"
- .IX Subsection "PNGTitle"
- When using rateup for graph generation, this will print the given title in the
- graph it generates.
- .PP
- Example:
- .PP
- .Vb 1
- & PNGTitle[myrouter]: WAN Link UK-US
- .Ve
- .Sh "Options"
- .IX Subsection "Options"
- The fIOptionsfR Keyword allows you to set some boolean
- switches:
- .IP "growright" 4
- .IX Item "growright"
- The graph grows to the left by default.
- This option flips the direction of growth
- causing the current time to be at the right edge
- of the graph and the history values to the left of it.
- .IP "bits" 4
- .IX Item "bits"
- All the monitored variable values are multiplied by 8
- (i.e. shown in bits instead of bytes) ... looks much more impressive :-)
- It also affects the 'factory default' labeling and units
- for the given target.
- .IP "perminute" 4
- .IX Item "perminute"
- All the monitored variable values are multiplied by 60
- (i.e. shown in units per minute instead of units per second) in case
- of small values more accurate graphs are displayed.
- It also affects the 'factory default' labeling and units
- for the given target.
- .IP "perhour" 4
- .IX Item "perhour"
- All the monitored variable values are multiplied by 3600
- (i.e. shown in units per hour instead of units per second) in case
- of small values more accurate graphs are displayed.
- It also affects the 'factory default' labeling and units
- for the given target.
- .IP "noinfo" 4
- .IX Item "noinfo"
- Suppress the information about uptime and
- device name in the generated webpage.
- .IP "nopercent" 4
- .IX Item "nopercent"
- Don't print usage percentages.
- .IP "transparent" 4
- .IX Item "transparent"
- Make the background of the generated gifs transparent.
- .IP "integer" 4
- .IX Item "integer"
- Print summary lines below graph as integers without commas.
- .IP "dorelpercent" 4
- .IX Item "dorelpercent"
- The relative percentage of IN-traffic to OUT-traffic is calculated
- and displayed in the graph as an additional line.
- Note: Only a fixed scale is available (from 0 to 100%). Therefore
- if IN-traffic is greater than OUT-traffic then 100% is displayed.
- If you suspect that your IN-traffic is not always less than or equal
- to your OUT-traffic you are urged to not use this options.
- Note: If you use this option in combination with the fIColoursfR
- options, a fifth colour-name colour-value pair is required there.
- .IP "avgpeak" 4
- .IX Item "avgpeak"
- There are some ISPs who use the average Peak values to bill their customers.
- Using this option s-1MRTGs0 displays these values for each graph. The value is
- built by averaging the max 5 minute traffic average for each 'step' shown in
- the graph. For the Weekly graph this means that it builds the average of all
- 2 hour intervals 5 minute peak values. (Confused? Thought so!)
- .IP "gauge" 4
- .IX Item "gauge"
- Treat the values gathered from target as 'current status' measurements
- and not as ever incrementing counters.
- This would be useful to monitor things like disk space,
- processor load, temperature, and the like ...
- .Sp
- In the absence of 'gauge' or 'absolute' options,
- &s-1MRTGs0 treats variables as a counters and calculates
- the difference between the current and the previous value
- and divides that by the elapsed time between
- the last two readings to get the value to be plotted.
- .IP "absolute" 4
- .IX Item "absolute"
- This is for counter type data sources which reset their value when they are
- read. This means that rateup does not have to build the difference between
- the current and the last value read from the data source. The value obtained is
- still divided by the elapsed time between the current and the last reading, which makes
- it different from the 'gauge' option. Useful for external data gatherers.
- .IP "derive" 4
- .IX Item "derive"
- If you are using rrdtool as logger/grapher you can use a third type of data
- source. Derive is like counter, except that it is not required to go s-1UPs0 all
- the time. It is useful for situations where the change of some value should be
- graphed.
- .IP "unknaszero" 4
- .IX Item "unknaszero"
- Log unknown data as zero instead of the default behaviour of repeating the
- last value seen. Be careful with this, often a flat line in the graph is
- much more obvious than a line at 0.
- .IP "withzeroes" 4
- .IX Item "withzeroes"
- Normally we ignore all values which are zero when calculating the average
- transfer rate on a line. If this is not desirable use this option.
- .IP "noborder" 4
- .IX Item "noborder"
- If you are using rateup to log data, s-1MRTGs0 will create the graph images.
- Normally these images have a shaded border around them. If you do not want the
- border to be drawn, enable this option. This option has no effect if you are
- not using rateup.
- .IP "noarrow" 4
- .IX Item "noarrow"
- As with the option above, this effects rateup graph generation only. Normally
- rateup will generate graphs with a small arrow showing the direction of the
- data. If you do not want this arrow to be drawn, enable this option. This
- option has no effect if you are not using rateup.
- .IP "noi" 4
- .IX Item "noi"
- When using rateup for graph generation, you can use this option to stop rateup
- drawing a graph for the 'I' or first variable. This also removes entries for
- this variable in the s-1HTMLs0 page s-1MRTGs0 generates, and will remove the peaks for
- this variable if they are enabled. This allows you to hide this data, or can
- be very useful if you are only graphing one line of data rather than two.
- This option is not destructive - any data received for the the variable
- continued to be logged, it just isn't shown.
- .IP "noo" 4
- .IX Item "noo"
- Same as above, except relating to the 'O' or second variable.
- .IP "nobanner" 4
- .IX Item "nobanner"
- When using rateup for graph generation, this option disables s-1MRTGs0 adding the
- &s-1MRTGs0 banner to the s-1HTMLs0 pages it generates.
- .IP "nolegend" 4
- .IX Item "nolegend"
- When using rateup for graph generation, this option will stop s-1MRTGs0 from creating
- a legend at the bottom of the s-1HTMLs0 pages it generates.
- .IP "printrouter" 4
- .IX Item "printrouter"
- When using rateup for graph generation, this option will print the router
- name in the graph it generates. This option is overridden by the value of
- PNGTitle if one is given
- .IP "pngdate" 4
- .IX Item "pngdate"
- When using rateup for graph generation, this option will print a
- timestamp in the graph it generates, including a timezone if one is specified
- by the 'Timezone' parameter.
- .IP "logscale" 4
- .IX Item "logscale"
- The fBlogscalefR option causes rateup to display the data with the Y axis
- scaled logarithmically. Doing so allows the normal traffic to occupy
- the majority of the vertical range, while still showing any spikes at
- their full height.
- .Sp
- &fBlogscalefR displays all the available data and will always produce
- well-behaved graphs. People often consider a logarithmically scaled graph
- counterintuitive, however, and thus hard to interpret.
- .IP "secondmean" 4
- .IX Item "secondmean"
- The fBsecondmeanfR option sets the maximum value on the graph to the mean
- of the data greater than the mean of all data. This produces a graph
- that focuses more on the typical data, while clipping large peaks.
- .Sp
- Using fBsecondmeanfR will give a more intutive linearly
- scaled graph, but can result in a uselessly high or low scale in some
- rare situations (specifically, when the data includes a large portion
- of values far from the actual mean)
- .Sp
- If a target includes both fBlogscalefR and fBsecondmeanfR in the options, the
- &fBsecondmeanfR takes precedence.
- .PP
- Example:
- .PP
- .Vb 1
- & Options[myrouter]: growright, bits
- .Ve
- .Sh "kilo"
- .IX Subsection "kilo"
- Use this option to change the multiplier value for building
- prefixes. Defaultvalue is 1000. This tag is for the special
- case that 1kB = 1024B, 1MB = 1024kB and so far.
- .PP
- Example:
- .PP
- .Vb 1
- & kilo[myrouter]: 1024
- .Ve
- .Sh "kMG"
- .IX Subsection "kMG"
- Change the default multiplier prefixes (,k,M,G,T,P). In the tag
- &fIShortLegendfR define only the basic units.
- Format: Comma seperated list of prefixed. Two consecutive commas
- or a comma at start or end of the line gives no prefix on this item.
- Note: If you do not want prefixes, just put two consecutive commas.
- .PP
- Example: velocity in nm/s (nanometers per second) displayed in nm/h.
- .PP
- .Vb 3
- & ShortLegend[myrouter]: m/h
- & kMG[myrouter]: n,u,m,,k,M,G,T,P
- & options[myrouter]: perhour
- .Ve
- .Sh "Colours"
- .IX Subsection "Colours"
- The fIColoursfR tag allows you to override the default colour
- scheme. Note: All 4 of the required colours must be
- specified here. The colour name ('Colourx' below) is the
- legend name displayed, while the s-1RGBs0 value is the real
- colour used for the display, both on the graph and in the
- html doc.
- .PP
- Format is: Col1#RRGGBB,Col2#RRGGBB,Col3#RRGGBB,Col4#RRGGBB
- .PP
- Important:
- If you use the fIdorelpercentfR options tag a fifth colour name
- colour value pair is required:
- Col1#RRGGBB,Col2#RRGGBB,Col3#RRGGBB,Col4#RRGGBB,Col5#RRGGBB
- .IP "Colour1" 4
- .IX Item "Colour1"
- First variable (normally Input) on default graph.
- .IP "Colour2" 4
- .IX Item "Colour2"
- Second variable (normally Output) on default graph.
- .IP "Colour3" 4
- .IX Item "Colour3"
- Max first variable (input).
- .IP "Colour4" 4
- .IX Item "Colour4"
- Max second variable (output).
- .IP "s-1RRGGBBs0" 4
- .IX Item "RRGGBB"
- 2 digit hex values for Red, Green and Blue.
- .PP
- Example:
- .PP
- .Vb 1
- & Colours[myrouter]: GREEN#00eb0c,BLUE#1000ff,DARK GREEN#006600,VIOLET#ff00ff
- .Ve
- .Sh "Background"
- .IX Subsection "Background"
- With the fIBackgroundfR tag you can configure the background
- colour of the generated s-1HTMLs0 page.
- .PP
- Example:
- .PP
- .Vb 1
- & Background[myrouter]: #a0a0a0a
- .Ve
- .Sh "YLegend, ShortLegend, Legend[1234]"
- .IX Subsection "YLegend, ShortLegend, Legend[1234]"
- The following keywords allow you to override the text
- displayed for the various legends of the graph and in the
- &s-1HTMLs0 document:
- .IP "YLegend" 4
- .IX Item "YLegend"
- The Y-axis label of the graph. Note that a text which is too long
- to fit in the graph will be silently ignored.
- .IP "ShortLegend" 4
- .IX Item "ShortLegend"
- The units string (default 'b/s') used for Max, Average and Current
- .IP "Legend[1234IO]" 4
- .IX Item "Legend[1234IO]"
- The strings for the colour legend.
- .PP
- Example:
- .PP
- .Vb 8
- & YLegend[myrouter]: Bits per Second
- & ShortLegend[myrouter]: b/s
- & Legend1[myrouter]: Incoming Traffic in Bits per Second
- & Legend2[myrouter]: Outgoing Traffic in Bits per Second
- & Legend3[myrouter]: Maximal 5 Minute Incoming Traffic
- & Legend4[myrouter]: Maximal 5 Minute Outgoing Traffic
- & LegendI[myrouter]: In:
- & LegendO[myrouter]: Out:
- .Ve
- .PP
- Note, if fILegendIfR or fILegendOfR are set to an empty string with
- .PP
- .Vb 1
- & LegendO[myrouter]:
- .Ve
- .PP
- The corresponding line below the graph will not be printed at all.
- .Sh "Timezone"
- .IX Subsection "Timezone"
- If you live in an international world, you might want to
- generate the graphs in different timezones. This is set in the
- &s-1TZs0 variable. Under certain operating systems like Solaris,
- this will provoke the localtime call to give the time in
- the selected timezone.
- .PP
- Example:
- .PP
- .Vb 1
- & Timezone[myrouter]: Japan
- .Ve
- .PP
- The Timezone is the standard timezone of your system, ie Japan, Hongkong,
- &s-1GMTs0, s-1GMT+1s0 etc etc.
- .Sh "Weekformat"
- .IX Subsection "Weekformat"
- By default, mrtg (actually rateup) uses the fIstrftimefR|(3) '%V' option to
- format week numbers in the monthly graphs. The exact semantics of this
- format option vary between systems. If you find that the week numbers are
- wrong, and your system's fIstrftimefR|(3) routine supports it, you can try
- another format option. The s-1POSIXs0 '%V' option correspond to the widely used
- &s-1ISOs0 8601 week numbering standard. The week format character should be
- specified as a single letter; either W, V, or U.
- .PP
- The s-1UNIXs0 version of rateup uses the libc implementation of strftime.
- On Windows, the native strftime implementation does not know about
- &f(CW%VfR. So there we use a different implementation of strftime that does
- support f(CW%VfR.
- .PP
- Example:
- .PP
- .Vb 1
- & Weekformat[myrouter]: W
- .Ve
- .Sh "RRDRowCount"
- .IX Subsection "RRDRowCount"
- This affects the creation of new rrd files. By default rrds are created to
- hold about 1 day's worth of high resolution data. (plus 1 week of 30 minute
- data, 2 months of 2 hour data and 2 years of 1 day data). With this Keyword
- you can change the number of base interval entries configured for new rrds
- as they get created. Note that you must take the interval time into account.
- .PP
- Example:
- .PP
- .Vb 1
- & RRDRowCount[myrouter]: 1600
- .Ve
- .Sh "TimeStrPos"
- .IX Subsection "TimeStrPos"
- This defines placement of the timestamp string on the image. Possible
- values are s-1RUs0, s-1LUs0, s-1RLs0, s-1LLs0 (which stand, respectively, for RightUpper,
- LeftUpper, RightLower and LeftLower corner) and s-1NOs0 (for no timestamp).
- By default, no timestamp is placed on the image.
- .PP
- Example:
- .PP
- .Vb 1
- & TimeStrPos[myrouter]: RU
- .Ve
- .Sh "TimeStrFmt"
- .IX Subsection "TimeStrFmt"
- Using this keyword you may specify format of the timestamp to be placed
- on the image (if enabled by the TimeStrPos keyword). Specified string
- will be used by the fIstrftime()fR function - see fIstrftimefR|(3) documentation
- for conversion specifiers available on your system.
- Default format: f(CW%YfR-%m-%d f(CW%H:fR%M
- .PP
- Example:
- .PP
- .Vb 1
- & TimeStrFmt[myrouter]: %H:%M:%S
- .Ve
- .SH "THRESHOLD CHECKING"
- .IX Header "THRESHOLD CHECKING"
- Through its threshold checking functionality mrtg is able to detect
- threshold problems for the various targets and can call external
- scripts to handle those problems (e.g. send email or a page to an administrator).
- .PP
- Threshold checking is configured through the following parameters:
- .Sh "ThreshDir (s-1GLOBALs0)"
- .IX Subsection "ThreshDir (GLOBAL)"
- By defining ThreshDir to point to a writable directory, s-1MRTGs0 will only alert
- you when a threshold boundery has been crossed.
- .PP
- Example:
- .PP
- .Vb 1
- & ThreshDir: /var/mrtg/thresh
- .Ve
- .Sh "ThreshMinI (s-1PERs0 s-1TARGETs0)"
- .IX Subsection "ThreshMinI (PER TARGET)"
- This is the minimum acceptable value for the Input (first) parameter. If
- the parameter falls below this value, the program specified in ThreshProgI
- will be run. If the value ends in '%' then the threshold is defined relative to MaxBytes.
- .Sh "ThreshMaxI (s-1PERs0 s-1TARGETs0)"
- .IX Subsection "ThreshMaxI (PER TARGET)"
- This is the maximum acceptable value for the Input (first) parameter. If
- the parameter falls above this value, the program specified in ThreshProgI
- will be run. If the value ends in '%' then the threshold is defined relative to MaxBytes.
- .Sh "ThreshDesc (s-1PERs0 s-1TARGETs0)"
- .IX Subsection "ThreshDesc (PER TARGET)"
- Its value will be assigned to the environment variable s-1THRESH_DESCs0 before
- any of the programs mentioned below are called. The programms can use the value
- of this variable to produce more user-friendly output.
- .Sh "ThreshProgI (s-1PERs0 s-1TARGETs0)"
- .IX Subsection "ThreshProgI (PER TARGET)"
- This defines a program to be run if ThreshMinI or ThreshMaxI is broken.
- &s-1MRTGs0 passes 3 arguments: the f(CW$routerfR variable, the threshold value
- broken, and the current parameter value.
- .Sh "ThreshProgOKI (s-1PERs0 s-1TARGETs0)"
- .IX Subsection "ThreshProgOKI (PER TARGET)"
- This defines a program to be run if the parameter is currently s-1OKs0 (based on
- ThreshMinI and ThreshMaxI), but wasn't s-1OKs0 on the previous running *(-- based
- on the files found in ThreshDir. s-1MRTGs0 passes 3 arguments: the f(CW$routerfR
- variable the unbroken threshold value, and the current parameter value.
- .Sh "ThreshMinO, ThreshMaxO, ThreshProgO, and ThreshProgOKO"
- .IX Subsection "ThreshMinO, ThreshMaxO, ThreshProgO, and ThreshProgOKO"
- These work the same as their *I counterparts, except on the Output (second)
- parameter.
- .PP
- &fINote that you can use the SetEnv parameter explained above to pass
- additional information to the threshold programs.fR
- .Sh "SetEnv"
- .IX Subsection "SetEnv"
- When calling threshold scripts from within your cfg file you might want to
- pass some data on to the script. This can be done with the SetEnv
- configuration option which takes a series of environment variable
- assignments. Note that the quotes are mandatory. This does not
- work for external scripts. It is not
- possible to set environment variables per target.
- .PP
- Example:
- .PP
- .Vb 2
- & SetEnv[myrouter]: EMAIL="contact_email@someplace.net"
- & HOST="www.some_server.net"
- .Ve
- .SH "PER TARGET DEFAULT VALUES"
- .IX Header "PER TARGET DEFAULT VALUES"
- .Sh "Pre- and Postfix"
- .IX Subsection "Pre- and Postfix"
- To save yourself some typing you can define a target
- called '^'. The text of every Keyword you define for this
- target will be s-1PREPENDEDs0 to the corresponding Keyword of
- all the targets defined below this line. The same goes for
- a Target called '$' but its text will be s-1APPENDEDs0.
- .PP
- Note that a space is inserted between the prepended text
- and the Keyword value, as well as between the Keyword value
- and the appended text. This works well for text-valued Keywords,
- but is not very useful for other Keywords. See the *(L"default*(R"
- target description below.
- .PP
- The example will make mrtg use a common header and a
- common contact person in all the pages generated from
- targets defined later in this file.
- .PP
- Example:
- .PP
- .Vb 2
- & PageTop[^]: <H1>NoWhere Unis Traffic Stats</H1><HR>
- & PageTop[$]: Contact Peter Norton if you have any questions<HR>
- .Ve
- .PP
- To remove the prepend/append value, specify an empty value, e.g.:
- .PP
- .Vb 2
- & PageTop[^]:
- & PageTop[$]:
- .Ve
- .Sh "NoSpaceChar"
- .IX Subsection "NoSpaceChar"
- With s-1PREPENDs0 and s-1APPENDs0 (see below) there is normally a space inserted
- between the local value and the s-1PRE-s0 or s-1APPENDs0 value. Sometimes this is not
- desirable. You can use the global option fINoSpaceCharfR to
- define a character which can be mentioned at the end of a $ or ^ definition
- in order to supress the space.
- .PP
- Example:
- .PP
- .Vb 6
- & NoSpaceChar: ~
- & Target[^]: 1.3.6.1.4.1.482.50.2.4.20.0&1.3.6.1.4.1.482.50.2.4.21.0:get@~
- & Target[a]: a.tolna.net
- & Target[b]: b.tolna.net
- & Target[c]: c.tolna.net
- & Target[d]: d.tolna.net
- .Ve
- .Sh "Default Values"
- .IX Subsection "Default Values"
- The target name '_' specifies a default value for that
- Keyword. In the absence of explicit Keyword value, the prepended
- and the appended keyword value, the default value will be used.
- .PP
- Example:
- .PP
- .Vb 5
- & YSize[_]: 150
- & Options[_]: growright,bits,nopercent
- & WithPeak[_]: ymw
- & Suppress[_]: y
- & MaxBytes[_]: 1250000
- .Ve
- .PP
- To remove the default value and return to the 'factory default',
- specify an empty value, e.g.:
- .PP
- .Vb 1
- & YLegend[_]:
- .Ve
- .PP
- There can be several instances of setting the default/prepend/append
- values in the configuration file. The later setting replaces the
- previous one for the rest of the configuration file.
- The default/prepend/append values used for a given
- keyword/target pair are the ones that were in effect
- at the point in the configuration file where the target
- was mentioned for the first time.
- .PP
- Example:
- .PP
- .Vb 4
- & MaxBytes[_]: 1250000
- & Target[myrouter.somplace.edu.2]: 2:public@myrouter.somplace.edu
- & MaxBytes[_]: 8000
- & Title[myrouter.somplace.edu.2]: Traffic Analysis for myrouter.somplace.edu IF 2
- .Ve
- .PP
- The default fIMaxBytesfR for the target myrouter.someplace.edu.2
- in the above example will be 1250000, which was in effect
- where the target name myrouter.someplace.edu.2 first appeared
- in the config file.
- .SH "COMMAND LINE OPTIONS"
- .IX Header "COMMAND LINE OPTIONS"
- .IP "fB--userfR fIusernamefR and fB--groupfR fIgroupnamefR" 4
- .IX Item "--user username and --group groupname"
- Run as the given user and/or group. (Unix Only)
- .IP "fB--lock-filefR fIfilenamefR" 4
- .IX Item "--lock-file filename"
- Use an alternate lock-file (the default is to use the configuration-file
- appended with f(CW*(C`_l*(C'fR).
- .IP "fB--confcache-filefR fIfilenamefR" 4
- .IX Item "--confcache-file filename"
- Use an alternate confcache-file (the default is to use the configuration-file appended with f(CW*(C`.ok*(C'fR)
- .IP "fB--loggingfR fIfilenamefR|fBeventlogfR" 4
- .IX Item "--logging filename|eventlog"
- If this is set to writable filename, all output from mrtg (warnings, debug messages, errors)
- will go to fIfilenamefR. If you are running on Win32 you can specify fBeventlogfR instead of a filename
- which will send all error to the windows event log.
- .Sp
- &fBs-1NOTE:s0fR Note, there is no Message s-1DLLs0 for mrtg included with mrtg. This has
- the side effect that the windows event logger will display a nice message
- with every entry in the event log, complaing about the fact that mrtg has no
- message dll. If you go to the mrtg contrib download area (on the website)
- you will find the mrtg-message-dll.zip which does contain such a thing.
- .IP "fB--daemonfR" 4
- .IX Item "--daemon"
- Put s-1MRTGs0 into the background, running as a daemon. This works the same way as
- the config file option, but the switch is required for proper s-1FHSs0 operation
- (because /var/run is writable only by root)
- .IP "fB--fhsfR" 4
- .IX Item "--fhs"
- Configure all mrtg paths to conform to the s-1FHSs0 specification;
- http://www.pathname.com/fhs/
- .IP "fB--checkfR" 4
- .IX Item "--check"
- Only check the cfg file for errors. Do not do anything.
- .IP "fB--pid-file=sfR" 4
- .IX Item "--pid-file=s"
- Define the name and path of the pid file for mrtg running as a daemon
- .IP "fB--debug=sfR" 4
- .IX Item "--debug=s"
- Enable debug options. The argument of the debug option is a comma separated list of debug values:
- .Sp
- .Vb 9
- & cfg - watch the config file reading
- & dir - directory mangeling
- & base - basic program flow
- & tarp - target parser
- & snpo - snmp polling
- & coca - confcache operations
- & fork - forking view
- & time - some timing info
- & log - logging of data via rateup or rrdtool
- .Ve
- .Sp
- Example:
- .Sp
- .Vb 1
- & --debug="cfg,snpo"
- .Ve
- .SH "EXIT CODES"
- .IX Header "EXIT CODES"
- An exit code of 0 indicates that all targets were successful. Generally speaking, most codes greater
- than 0 indicate that there was an unrecoverable problem. One exception to this is code 91, which
- indicates that at least one of the targets was succesful. A partial listing of the codes follows:
- .PP
- .Vb 1
- & 0: All targets sucessful
- .Ve
- .PP
- .Vb 2
- & 2: Config error (can't read, fatal error in config, etc)
- & 17: Another MRTG process is processing config
- .Ve
- .PP
- .Vb 2
- & 91: At least one target sucessful
- & 92: No targets were sucessful
- .Ve
- .SH "EXAMPLES"
- .IX Header "EXAMPLES"
- .Sh "Minimal mrtg.cfg"
- .IX Subsection "Minimal mrtg.cfg"
- .Vb 5
- & WorkDir: /usr/tardis/pub/www/stats/mrtg
- & Target[r1]: 2:public@myrouter.somplace.edu
- & MaxBytes[r1]: 8000
- & Title[r1]: Traffic Analysis ISDN
- & PageTop[r1]: <H1>Stats for our ISDN Line</H1>
- .Ve
- .Sh "Cfg for several Routers."
- .IX Subsection "Cfg for several Routers."
- .Vb 6
- & WorkDir: /usr/tardis/pub/www/stats/mrtg
- & Title[^]: Traffic Analysis for
- & PageTop[^]: <H1>Stats for
- & PageTop[$]: Contact The Chief if you notice anybody<HR>
- & MaxBytes[_]: 8000
- & Options[_]: growright
- .Ve
- .PP
- .Vb 3
- & Title[isdn]: our ISDN Line
- & PageTop[isdn]: our ISDN Line</H1>
- & Target[isdn]: 2:public@router.somplace.edu
- .Ve
- .PP
- .Vb 4
- & Title[backb]: our Campus Backbone
- & PageTop[backb]: our Campus Backbone</H1>
- & Target[backb]: 1:public@router.somplace.edu
- & MaxBytes[backb]: 1250000
- .Ve
- .PP
- .Vb 2
- & # the following line removes the default prepend value
- & # defined above
- .Ve
- .PP
- .Vb 1
- & Title[^]:
- .Ve
- .PP
- .Vb 3
- & Title[isdn2]: Traffic for the Backup ISDN Line
- & PageTop[isdn2]: our ISDN Line</H1>
- & Target[isdn2]: 3:public@router.somplace.edu
- .Ve
- .SH "AUTHOR"
- .IX Header "AUTHOR"
- Tobias Oetiker <oetiker@ee.ethz.ch> and many contributors