|
Packit |
667938 |
MRTG-REFERENCE(1) mrtg MRTG-REFERENCE(1)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
N?NA?AM?ME?E
|
|
Packit |
667938 |
mrtg-reference - MRTG 2.17.7 configuration reference
|
|
Packit |
667938 |
|
|
Packit |
667938 |
O?OV?VE?ER?RV?VI?IE?EW?W
|
|
Packit |
667938 |
The runtime behaviour of MRTG is governed by a configuration file.
|
|
Packit |
667938 |
Run-of-the-mill configuration files can be generated with c?cf?fg?gm?ma?ak?ke?er?r.
|
|
Packit |
667938 |
(Check cfgmaker). But for more elaborate configurations some hand-
|
|
Packit |
667938 |
tuning is required.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
This document describes all the configuration options understood by the
|
|
Packit |
667938 |
mrtg software.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
S?SY?YN?NT?TA?AX?X
|
|
Packit |
667938 |
MRTG configuration file syntax follows some simple rules:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
+?o Keywords must start at the beginning of a line.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
+?o Lines which follow a keyword line which start with a blank are
|
|
Packit |
667938 |
appended to the keyword line
|
|
Packit |
667938 |
|
|
Packit |
667938 |
+?o Empty Lines are ignored
|
|
Packit |
667938 |
|
|
Packit |
667938 |
+?o Lines starting with a # sign are comments.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
+?o You can add other files into the configuration file using
|
|
Packit |
667938 |
|
|
Packit |
667938 |
I?In?nc?cl?lu?ud?de?e:?: _?f_?i_?l_?e
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Include: base-options.inc
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If included files are specified with relative paths, both the
|
|
Packit |
667938 |
current working directory and the directory containing the main
|
|
Packit |
667938 |
config file will be searched for the files. The current working
|
|
Packit |
667938 |
directory will be searched first.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If the included filename contains an asterisk, then this is taken
|
|
Packit |
667938 |
as a wildcard for zero or more characters, and all matching files
|
|
Packit |
667938 |
are included. Thus, you can use this statement to include all
|
|
Packit |
667938 |
files in a specified subdirectory.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Include: servers/*.cfg
|
|
Packit |
667938 |
|
|
Packit |
667938 |
In this case, you should be very careful that your wildcard pattern
|
|
Packit |
667938 |
does not find a match relative to the current working directory if
|
|
Packit |
667938 |
you mean it to be relative to the main config file directory, since
|
|
Packit |
667938 |
the working directory is checked for a match first (as with a
|
|
Packit |
667938 |
normal Include directive). Therefore, use of something like '*/*'
|
|
Packit |
667938 |
is discouraged.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
G?GL?LO?OB?BA?AL?L K?KE?EY?YW?WO?OR?RD?DS?S
|
|
Packit |
667938 |
W?Wo?or?rk?kD?Di?ir?r
|
|
Packit |
667938 |
WorkDir specifies where the logfiles and the webpages should be
|
|
Packit |
667938 |
created.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
WorkDir: /usr/tardis/pub/www/stats/mrtg
|
|
Packit |
667938 |
|
|
Packit |
667938 |
O?OP?PT?TI?IO?ON?NA?AL?L G?GL?LO?OB?BA?AL?L K?KE?EY?YW?WO?OR?RD?DS?S
|
|
Packit |
667938 |
H?Ht?tm?ml?lD?Di?ir?r
|
|
Packit |
667938 |
HtmlDir specifies the directory where the html (or shtml, but we'll get
|
|
Packit |
667938 |
on to those later) lives.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
NOTE: Workdir overrides the settings for htmldir, imagedir and logdir.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Htmldir: /www/mrtg/
|
|
Packit |
667938 |
|
|
Packit |
667938 |
I?Im?ma?ag?ge?eD?Di?ir?r
|
|
Packit |
667938 |
ImageDir specifies the directory where the images live. They should be
|
|
Packit |
667938 |
under the html directory.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Imagedir: /www/mrtg/images
|
|
Packit |
667938 |
|
|
Packit |
667938 |
L?Lo?og?gD?Di?ir?r
|
|
Packit |
667938 |
LogDir specifies the directory where the logs are stored. This need
|
|
Packit |
667938 |
not be under htmldir directive.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Logdir: /www/mrtg/logs
|
|
Packit |
667938 |
|
|
Packit |
667938 |
F?Fo?or?rk?ks?s (?(U?UN?NI?IX?X o?on?nl?ly?y)?)
|
|
Packit |
667938 |
With system that supports fork (UNIX for example), mrtg can fork itself
|
|
Packit |
667938 |
into multiple instances while it is acquiring data via snmp.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
For situations with high latency or a great number of devices this will
|
|
Packit |
667938 |
speed things up considerably. It will not make things faster, though,
|
|
Packit |
667938 |
if you query a single switch sitting next door.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
As far as I know NT can not fork so this option is not available on NT.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Forks: 4
|
|
Packit |
667938 |
|
|
Packit |
667938 |
E?En?na?ab?bl?le?eI?IP?Pv?v6?6
|
|
Packit |
667938 |
When set to yes, IPv6 support is enabled if the required libraries are
|
|
Packit |
667938 |
present (see the mrtg-ipv6 manpage). When IPv6 is enabled, mrtg can
|
|
Packit |
667938 |
talk to routers using SNMP over IPv6 and targets may be specified by
|
|
Packit |
667938 |
their numeric IPv6 addresses as well as by hostname or IPv4 address.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If IPv6 is enabled and the target is a hostname, mrtg will try to
|
|
Packit |
667938 |
resolve the hostname to an IPv6 address and, if this fails, to an IPv4
|
|
Packit |
667938 |
address. Note that mrtg will only use IPv4 if you specify an IPv4
|
|
Packit |
667938 |
address or a hostname with no corresponding IPv6 address; it will not
|
|
Packit |
667938 |
fall back to IPv4 if it simply fails to communicate with the target
|
|
Packit |
667938 |
using IPv6. This is by design.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note that many routers do not currently support SNMP over IPv6. Use the
|
|
Packit |
667938 |
_?I_?P_?v_?4_?O_?n_?l_?y per target option for these routers.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
IPv6 is disabled by default.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
EnableIPv6: Yes
|
|
Packit |
667938 |
|
|
Packit |
667938 |
E?En?na?ab?bl?le?eS?Sn?nm?mp?pV?V3?3
|
|
Packit |
667938 |
When set to yes, uses the Net::SNMP module instead of the SNMP_SESSION
|
|
Packit |
667938 |
module for generating snmp queries. This allows the use of SNMPv3 if
|
|
Packit |
667938 |
other snmpv3 parameters are set.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SNMPv3 is disabled by default.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
EnableSnmpV3: yes
|
|
Packit |
667938 |
|
|
Packit |
667938 |
R?Re?ef?fr?re?es?sh?h
|
|
Packit |
667938 |
How many seconds apart should the browser (Netscape) be instructed to
|
|
Packit |
667938 |
reload the page? If this is not defined, the default is 300 seconds (5
|
|
Packit |
667938 |
minutes).
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Refresh: 600
|
|
Packit |
667938 |
|
|
Packit |
667938 |
I?In?nt?te?er?rv?va?al?l
|
|
Packit |
667938 |
How often do you call mrtg? The default is 5 minutes. If you call it
|
|
Packit |
667938 |
less often, you should specify it here. This does two things:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
+?o The generated HTML page contains the right information about the
|
|
Packit |
667938 |
calling interval ...
|
|
Packit |
667938 |
|
|
Packit |
667938 |
+?o A META header in the generated HTML page will instruct caches about
|
|
Packit |
667938 |
the time-to-live of this page .....
|
|
Packit |
667938 |
|
|
Packit |
667938 |
In this example, we tell mrtg that we will be calling it every 10
|
|
Packit |
667938 |
minutes. If you are calling mrtg every 5 minutes, you can leave this
|
|
Packit |
667938 |
line commented out.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Interval: 10
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note that unless you are using rrdtool you can not set Interval to less
|
|
Packit |
667938 |
than 5 minutes. If you are using rrdtool you can set interval in the
|
|
Packit |
667938 |
format
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Interval: MM[:SS]
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Down to 1 second. Note though, setting the Interval for an rrdtool/mrtg
|
|
Packit |
667938 |
setup will influence the initial creation of the database. If you
|
|
Packit |
667938 |
change the interval later, all existing databases will remain at the
|
|
Packit |
667938 |
resolution they were initially created with. Also note that you must
|
|
Packit |
667938 |
make sure that your mrtg-rrd Web-frontend can deal with this kind of
|
|
Packit |
667938 |
Interval setting.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
M?Ma?ax?xA?Ag?ge?e
|
|
Packit |
667938 |
MRTG relies heavily on the real time clock of your computer. If the
|
|
Packit |
667938 |
time is set to a wrong value, especially if it is advanced far into the
|
|
Packit |
667938 |
future, this will cause mrtg to expire lots of supposedly old data from
|
|
Packit |
667938 |
the log files.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
To prevent this, you can add a 'reasonability' check by specifying a
|
|
Packit |
667938 |
maximum age for log files. If a file seems to be older, mrtg will not
|
|
Packit |
667938 |
touch it but complain instead, giving you a chance to investigate the
|
|
Packit |
667938 |
cause.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
MaxAge: 7200
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The example above will make mrtg refuse to update log files older than
|
|
Packit |
667938 |
2 hours (7200 seconds).
|
|
Packit |
667938 |
|
|
Packit |
667938 |
W?Wr?ri?it?te?eE?Ex?xp?pi?ir?re?es?s
|
|
Packit |
667938 |
With this switch mrtg will generate .meta files for CERN and Apache
|
|
Packit |
667938 |
servers which contain Expiration tags for the html and gif files. The
|
|
Packit |
667938 |
*.meta files will be created in the same directory as the other files,
|
|
Packit |
667938 |
so you will have to set "MetaDir ." and "MetaFiles on" in your
|
|
Packit |
667938 |
apache.conf or .htaccess file for this to work
|
|
Packit |
667938 |
|
|
Packit |
667938 |
NOTE: If you are running Apache-1.2 or later, you can use the
|
|
Packit |
667938 |
mod_expire to achieve the same effect ... see the file htaccess.txt
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
WriteExpires: Yes
|
|
Packit |
667938 |
|
|
Packit |
667938 |
N?No?oM?Mi?ib?b2?2
|
|
Packit |
667938 |
Normally we ask the SNMP device for 'sysUptime' and 'sysName'
|
|
Packit |
667938 |
properties. Some do not have these. If you want to avoid getting
|
|
Packit |
667938 |
complaints from mrtg about these missing properties, specify the nomib2
|
|
Packit |
667938 |
option.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
An example of agents which do not implement base mib2 attributes are
|
|
Packit |
667938 |
Computer Associates - Unicenter TNG Agents. CA relies on using the
|
|
Packit |
667938 |
base OS SNMP agent in addition to its own agents to supplement the
|
|
Packit |
667938 |
management of a system.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
NoMib2: Yes
|
|
Packit |
667938 |
|
|
Packit |
667938 |
S?Si?in?ng?gl?le?eR?Re?eq?qu?ue?es?st?t
|
|
Packit |
667938 |
Some SNMP implementations can not deal with requests asking for
|
|
Packit |
667938 |
multiple snmp variables in one go. Set this in your cfg file to force
|
|
Packit |
667938 |
mrtg to only ask for one variable per request.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Examples
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SingleRequest: Yes
|
|
Packit |
667938 |
|
|
Packit |
667938 |
S?Sn?nm?mp?pO?Op?pt?ti?io?on?ns?s
|
|
Packit |
667938 |
Apart from the per target timeout options, you can also configure the
|
|
Packit |
667938 |
behaviour of the snmpget process on a more profound level. SnmpOptions
|
|
Packit |
667938 |
accepts a hash of options. The following options are currently
|
|
Packit |
667938 |
supported:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
timeout => $default_timeout,
|
|
Packit |
667938 |
retries => $default_retries,
|
|
Packit |
667938 |
backoff => $default_backoff,
|
|
Packit |
667938 |
default_max_repetitions => $max_repetitions,
|
|
Packit |
667938 |
use_16bit_request_ids => 1,
|
|
Packit |
667938 |
lenient_source_port_matching => 0,
|
|
Packit |
667938 |
lenient_source_address_matching => 1
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The values behind the options indicate the current default value. Note
|
|
Packit |
667938 |
that these settings OVERRIDE the per target timeout settings.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
A per-target SnmpOptions[] keyword will override the global settings.
|
|
Packit |
667938 |
That keyword is primarily for SNMPv3.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The 16bit request ids are the only way to query the broken SNMP
|
|
Packit |
667938 |
implementation of SMC Barricade routers.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SnmpOptions: retries => 2, only_ip_address_matching => 0
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note that AS/400 snmp seems to be broken in a way which prevents mrtg
|
|
Packit |
667938 |
from working with it unless
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SnmpOptions: lenient_source_port_matching => 1
|
|
Packit |
667938 |
|
|
Packit |
667938 |
is set.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
I?Ic?co?on?nD?Di?ir?r
|
|
Packit |
667938 |
If you want to keep the mrtg icons in someplace other than the working
|
|
Packit |
667938 |
(or imagedir) directory, use the _?I_?c_?o_?n_?D_?i_?r variable for defining the url
|
|
Packit |
667938 |
of the icons directory.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
IconDir: /mrtgicons/
|
|
Packit |
667938 |
|
|
Packit |
667938 |
L?Lo?oa?ad?dM?MI?IB?Bs?s
|
|
Packit |
667938 |
Load the MIB file(s) specified and make its OIDs available as symbolic
|
|
Packit |
667938 |
names. For better efficiancy, a cache of MIBs is maintained in the
|
|
Packit |
667938 |
WorkDir.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
LoadMIBs: /dept/net/mibs/netapp.mib,/usr/local/lib/ft100m.mib
|
|
Packit |
667938 |
|
|
Packit |
667938 |
L?La?an?ng?gu?ua?ag?ge?e
|
|
Packit |
667938 |
Switch output format to the selected Language (Check the _?t_?r_?a_?n_?s_?l_?a_?t_?e
|
|
Packit |
667938 |
directory to see which languages are supported at the moment. In this
|
|
Packit |
667938 |
directory you can also find instructions on how to create new
|
|
Packit |
667938 |
translations).
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Currently the following laguages are supported:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
big5 brazilian bulgarian catalan chinese croatian czech danish dutch
|
|
Packit |
667938 |
eucjp french galician gb gb2312 german greek hungarian icelandic
|
|
Packit |
667938 |
indonesia iso2022jp italian korean lithuanian malay norwegian polish
|
|
Packit |
667938 |
portuguese romanian russian russian1251 serbian slovak slovenian
|
|
Packit |
667938 |
spanish swedish turkish ukrainian
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Language: danish
|
|
Packit |
667938 |
|
|
Packit |
667938 |
L?Lo?og?gF?Fo?or?rm?ma?at?t
|
|
Packit |
667938 |
Setting LogFormat to 'rrdtool' in your mrtg.cfg file enables rrdtool
|
|
Packit |
667938 |
mode. In rrdtool mode, mrtg relies on r?rr?rd?dt?to?oo?ol?l to do its logging. See
|
|
Packit |
667938 |
mrtg-rrd.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
LogFormat: rrdtool
|
|
Packit |
667938 |
|
|
Packit |
667938 |
L?Li?ib?bA?Ad?dd?d
|
|
Packit |
667938 |
If you are using rrdtool mode and your r?rr?rd?dt?to?oo?ol?l Perl module (RRDs.pm) is
|
|
Packit |
667938 |
not installed in a location where perl can find it on its own, you can
|
|
Packit |
667938 |
use LibAdd to supply an appropriate path.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
LibAdd: /usr/local/rrdtool/lib/perl/
|
|
Packit |
667938 |
|
|
Packit |
667938 |
P?Pa?at?th?hA?Ad?dd?d
|
|
Packit |
667938 |
If the r?rr?rd?dt?to?oo?ol?l executable can not be found in the normal "PATH", you
|
|
Packit |
667938 |
can use this keyword to add a suitable directory to your path.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
PathAdd: /usr/local/rrdtool/bin/
|
|
Packit |
667938 |
|
|
Packit |
667938 |
R?RR?RD?DC?Ca?ac?ch?he?ed?d
|
|
Packit |
667938 |
If you are running RRDTool 1.4 or later with r?rr?rd?dc?ca?ac?ch?he?ed?d, then you can
|
|
Packit |
667938 |
configure MRTG to take advantage of this for updates, either by using
|
|
Packit |
667938 |
the RRDCACHED_ADDRESS environment variable, or by setting the RRDCached
|
|
Packit |
667938 |
keyword in the configuration file. Note that, if both are set, the
|
|
Packit |
667938 |
configuration file keyword will take precedence.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Only UNIX domain sockets are fully supported prior to RRDTool v1.5, and
|
|
Packit |
667938 |
you should note that using RRDCached mode will disable all Threshold
|
|
Packit |
667938 |
checking normally done by MRTG. Appropriate warning messages will be
|
|
Packit |
667938 |
printed if necessary.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Examples:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
RRDCached: unix:/var/tmp/rrdcached.sock
|
|
Packit |
667938 |
|
|
Packit |
667938 |
RRDCached: localhost:42217
|
|
Packit |
667938 |
|
|
Packit |
667938 |
R?Ru?un?nA?As?sD?Da?ae?em?mo?on?n
|
|
Packit |
667938 |
The RunAsDaemon keyword enables daemon mode operation. The purpose of
|
|
Packit |
667938 |
daemon mode is that MRTG is launched once and not repeatedly (as it is
|
|
Packit |
667938 |
with cron). This behavior saves computing resourses as loading and
|
|
Packit |
667938 |
parsing of configuration files happens only once on startup, and if the
|
|
Packit |
667938 |
configuration file is modified.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Using daemon mode MRTG itself is responible for timing the measurement
|
|
Packit |
667938 |
intervals. Therfore its important to set the Interval keyword to an
|
|
Packit |
667938 |
apropiate value.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note that when using daemon mode MRTG should no longer be started from
|
|
Packit |
667938 |
cron as each new process runs forever. Instead MRTG should be started
|
|
Packit |
667938 |
from the command prompt or by a system startup script.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If you want mrtg to run under a particular user and group (it is not
|
|
Packit |
667938 |
recomended to run MRTG as root) then you can use the -?--?-u?us?se?er?r=?=_?u_?s_?e_?r_?__?n_?a_?m_?e
|
|
Packit |
667938 |
and -?--?-g?gr?ro?ou?up?p=?=_?g_?r_?o_?u_?p_?__?n_?a_?m_?e options on the mrtg commandline.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
mrtg --user=mrtg_user --group=mrtg_group mrtg.cfg
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Also note that in daemon mode restarting the process is required in
|
|
Packit |
667938 |
order to activate changes in the config file.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Under UNIX, the Daemon switch causes mrtg to fork into background after
|
|
Packit |
667938 |
checking its config file. On Windows NT the MRTG process will detach
|
|
Packit |
667938 |
from the console, but because the NT/2000 shell waits for its children
|
|
Packit |
667938 |
you have to use this special start sequence when you launch the
|
|
Packit |
667938 |
program:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
start /b perl mrtg mrtg.cfg
|
|
Packit |
667938 |
|
|
Packit |
667938 |
You may have to add path information equal to what you add when you run
|
|
Packit |
667938 |
mrtg from the commandline.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example
|
|
Packit |
667938 |
|
|
Packit |
667938 |
RunAsDaemon: Yes
|
|
Packit |
667938 |
Interval: 5
|
|
Packit |
667938 |
|
|
Packit |
667938 |
This makes MRTG run as a daemon beginning data collection every 5
|
|
Packit |
667938 |
minutes
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If you are daemontools and still want to run mrtg as a daemon you can
|
|
Packit |
667938 |
additionally specify
|
|
Packit |
667938 |
|
|
Packit |
667938 |
NoDetach: Yes
|
|
Packit |
667938 |
|
|
Packit |
667938 |
this will make mrtg run but without detaching it from the terminal.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If the modification date on the configuration file changes during
|
|
Packit |
667938 |
operation, then MRTG will re-read the configuration on the next polling
|
|
Packit |
667938 |
cycle. Note that sub-files which are included from the main
|
|
Packit |
667938 |
configuration do not have their modification times monitored, only the
|
|
Packit |
667938 |
top-level file is so checked.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
C?Co?on?nv?ve?er?rs?si?io?on?nC?Co?od?de?e
|
|
Packit |
667938 |
Some devices may produce non-numeric values that would nevertheless be
|
|
Packit |
667938 |
useful to graph with MRTG if those values could be converted to
|
|
Packit |
667938 |
numbers. The ConversionCode keyword specifies the path to a file
|
|
Packit |
667938 |
containing Perl code to perform such conversions. The code in this file
|
|
Packit |
667938 |
must consist of one or more Perl subroutines. Each subroutine must
|
|
Packit |
667938 |
accept a single string argument and return a single numeric value. When
|
|
Packit |
667938 |
RRDtool is in use, a decimal value may be returned. When the name of
|
|
Packit |
667938 |
one of these subroutines is specified in a target definition (see
|
|
Packit |
667938 |
below), MRTG calls it twice for that target, once to convert the the
|
|
Packit |
667938 |
input value being monitored and a second time to convert the output
|
|
Packit |
667938 |
value. The subroutine must return an undefined value if the conversion
|
|
Packit |
667938 |
fails. In case of failure, a warning may be posted to the MRTG log file
|
|
Packit |
667938 |
using Perl's warn function. MRTG imports the subroutines into a
|
|
Packit |
667938 |
separate name space (package MRTGConversion), so the user need not
|
|
Packit |
667938 |
worry about pollution of MRTG's global name space. MRTG automatically
|
|
Packit |
667938 |
prepends this package declaration to the user-supplied code.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example: Suppose a particular OID returns a character string whose
|
|
Packit |
667938 |
length is proportional to the value to be monitored. To convert this
|
|
Packit |
667938 |
string to a number that can be graphed by MRTG, create a file
|
|
Packit |
667938 |
arbitrarily named "MyConversions.pl" containing the following code:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
# Return the length of the string argument
|
|
Packit |
667938 |
sub Length2Int {
|
|
Packit |
667938 |
my $value = shift;
|
|
Packit |
667938 |
return length( $value );
|
|
Packit |
667938 |
}
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Then include the following global keyword in the MRTG configuration
|
|
Packit |
667938 |
file (assuming that the conversion code file is saved in the mrtg/bin
|
|
Packit |
667938 |
directory along with mrtg itself):
|
|
Packit |
667938 |
|
|
Packit |
667938 |
ConversionCode: MyConversions.pl
|
|
Packit |
667938 |
|
|
Packit |
667938 |
This will cause MRTG to include the definition of the subroutine
|
|
Packit |
667938 |
Length2Int in its execution environment. Length2Int can then be invoked
|
|
Packit |
667938 |
on any target by appending "|Length2Int" to the target definition as
|
|
Packit |
667938 |
follows:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: 1.3.6.1.4.1.999.1&1.3.6.1.4.1.999.1:public@mydevice|Length2Int
|
|
Packit |
667938 |
|
|
Packit |
667938 |
See "Extended Host Name Syntax" below for complete target definition
|
|
Packit |
667938 |
syntax information.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
S?Se?en?nd?dT?To?oG?Gr?ra?ap?ph?hi?it?te?e
|
|
Packit |
667938 |
If you want to send a copy of the collected data into a Graphite
|
|
Packit |
667938 |
database in addition to storing it in the RRDfile, you can provide your
|
|
Packit |
667938 |
Graphite database name/ip and port number here.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
This requires the Net::Graphite perl module which is available from
|
|
Packit |
667938 |
CPAN.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Examples:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
# If your Graphite receiver is running on the same host as the MRTG daemon and using the default port
|
|
Packit |
667938 |
SendToGraphite: 127.0.0.1,2003
|
|
Packit |
667938 |
|
|
Packit |
667938 |
# If your Graphite receiver is running on 192.168.100.50 port 5000
|
|
Packit |
667938 |
SendToGraphite: 192.168.100.50,5000
|
|
Packit |
667938 |
|
|
Packit |
667938 |
# If your Graphite receiver is running on graphite.mydomain.com port 2003
|
|
Packit |
667938 |
SendToGraphite: graphite.mydomain.com,2003
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Graphite's namespace has a number of restrictions on what characters
|
|
Packit |
667938 |
are allowed. The SendToGraphite functionality makes an attempt to
|
|
Packit |
667938 |
convert the MRTG target name and, if specified, the Legendi and Legendo
|
|
Packit |
667938 |
values to Graphite namespace friendly values. Specifically, the
|
|
Packit |
667938 |
following conversion rules apply:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
+?o Underscores in the target_name are converted to periods which are
|
|
Packit |
667938 |
Graphite namespace delimiters.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
+?o Comma characters are not allowed so they are removed.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
+?o The string "m2g" for MRTG to Graphite is prepended onto the
|
|
Packit |
667938 |
Graphite namespace variable.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example MRTG target to Graphite namespace conversion:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
# Our MRTG target name from mrtg.cfg is as follows
|
|
Packit |
667938 |
Target[switch_GigabitEthernet0_5]: \GigabitEthernet0/5:public1@switch:::::2
|
|
Packit |
667938 |
|
|
Packit |
667938 |
After the conversion you will end up with these Graphite namespace
|
|
Packit |
667938 |
values
|
|
Packit |
667938 |
|
|
Packit |
667938 |
m2g.switch.gigabitethernet0.5.in
|
|
Packit |
667938 |
m2g.switch.gigabitethernet0.5.out
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Next is a more complicated example because Legendi and Legendo are in
|
|
Packit |
667938 |
use to denote min and max voltage values that pertain to some APC UPS
|
|
Packit |
667938 |
SNMP OIDs
|
|
Packit |
667938 |
|
|
Packit |
667938 |
# Target, Legendi, and Legendo are specified in mrtg.cfg as follows
|
|
Packit |
667938 |
Target[apc_minmaxline]: 1.3.6.1.4.1.318.1.1.1.3.2.3.0&1.3.6.1.4.1.318.1.1.1.3.2.2.0:public@apc:
|
|
Packit |
667938 |
LegendI[apc_minmaxline]: upsAdvInputMinLineVoltage
|
|
Packit |
667938 |
LegendO[apc_minmaxline]: upsAdvInputMaxLineVoltage
|
|
Packit |
667938 |
|
|
Packit |
667938 |
After the conversion you will end up with these Graphite namespace
|
|
Packit |
667938 |
values
|
|
Packit |
667938 |
|
|
Packit |
667938 |
m2g.apc.minmaxline.upsAdvInputMinLineVoltage
|
|
Packit |
667938 |
m2g.apc.minmaxline.upsAdvInputMaxLineVoltage
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If you don't see the data showing up in Graphite, chances are there are
|
|
Packit |
667938 |
invalid characters in the namespace. To debug this, use the
|
|
Packit |
667938 |
DEBUG=qw(log) directive at the top of the MRTG script to find out what
|
|
Packit |
667938 |
is happening with the MRTG to Graphite namespace conversion.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
DEBUG=qw(log) will generate some output similar to what appears below
|
|
Packit |
667938 |
|
|
Packit |
667938 |
2016-10-13 06:08:39 -- --log: RRDs::update(/var/www/mrtg/switch/switch_gigabitethernet0_5.rrd, '1476356919:2738746035:2927936327')
|
|
Packit |
667938 |
2016-10-13 06:08:39 -- --log: graphite->send(m2g.switch.gigabitethernet0.5.in,2738746035,1476356919)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
2016-10-13 06:08:39 -- --log: graphite->send(m2g.switch.gigabitethernet0.5.out,2927936327,1476356919)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
2016-10-13 06:09:25 -- --log: RRDs::update(/var/www/mrtg/apc/apc_minmaxline.rrd, '1476356965:122:123')
|
|
Packit |
667938 |
2016-10-13 06:09:25 -- --log: graphite->send(m2g.apc.minmaxline.upsAdvInputMinLineVoltage,122,1476356965)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
2016-10-13 06:09:25 -- --log: graphite->send(m2g.apc.minmaxline.upsAdvInputMaxLineVoltage,123,1476356965)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If the MRTG log output looks reasonable, then take a look at Graphite's
|
|
Packit |
667938 |
carbon-cache logs.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
P?PE?ER?R T?TA?AR?RG?GE?ET?T C?CO?ON?NF?FI?IG?GU?UR?RA?AT?TI?IO?ON?N
|
|
Packit |
667938 |
Each monitoring target must be identified by a unique name. This name
|
|
Packit |
667938 |
must be appended to each parameter belonging to the same target. The
|
|
Packit |
667938 |
name will also be used for naming the generated webpages, logfiles and
|
|
Packit |
667938 |
images for this target.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Ta?ar?rg?ge?et?t
|
|
Packit |
667938 |
With the _?T_?a_?r_?g_?e_?t keyword you tell mrtg what it should monitor. The
|
|
Packit |
667938 |
_?T_?a_?r_?g_?e_?t keyword takes arguments in a wide range of formats:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Basic
|
|
Packit |
667938 |
The most basic format is "port:community@router" This will generate
|
|
Packit |
667938 |
a traffic graph for the interface 'port' of the host 'router' (dns
|
|
Packit |
667938 |
name or IP address) and it will use the community 'community' (snmp
|
|
Packit |
667938 |
password) for the snmp query.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: 2:public@wellfleet-fddi.domain
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If your community contains a "@" or a " " these characters must be
|
|
Packit |
667938 |
escaped with a "\".
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[bla]: 2:stu\ pi\@d@router
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SNMPv2c
|
|
Packit |
667938 |
If you have a fast router you might want to try to poll the ifHC*
|
|
Packit |
667938 |
counters. This feature gets activated by switching to SNMPv2c.
|
|
Packit |
667938 |
Unfortunately not all devices support SNMPv2c yet. If it works,
|
|
Packit |
667938 |
this will prevent your counters from wraping within the 5 minute
|
|
Packit |
667938 |
polling interval, since we now use 64 bit instead of the normal 32
|
|
Packit |
667938 |
bit.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: 2:public@router1:::::2
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SNMPv3
|
|
Packit |
667938 |
As an alternative to SNMPv2c, SNMPv3 provides access to the ifHC*
|
|
Packit |
667938 |
counters, along with encryption. Not all devices support SNMPv3,
|
|
Packit |
667938 |
and you will also need the perl Net::SNMP library in order to use
|
|
Packit |
667938 |
it. It is recommended that cfgmaker be used to generate
|
|
Packit |
667938 |
configurations involving SNMPv3, as it will check if the Net::SNMP
|
|
Packit |
667938 |
library is loadable, and will switch to SNMPv2c if v3 is
|
|
Packit |
667938 |
unavailable.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SNMP v3 requires additional authentication parameters, passed using
|
|
Packit |
667938 |
the SnmpOptions[] per-target keyword.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
Target[myrouter]: 2:router1:::::3
|
|
Packit |
667938 |
SnmpOptions[myrouter]: username=>'user1'
|
|
Packit |
667938 |
|
|
Packit |
667938 |
noHC
|
|
Packit |
667938 |
Not all routers that support SNMPv2 or SNMPv3 provide the ifHC*
|
|
Packit |
667938 |
counters on every interface. The noHC[] per-target keyword signals
|
|
Packit |
667938 |
that the low-speed counters ifInOctets and ifOutOctets should be
|
|
Packit |
667938 |
queried instead. cfgmaker will automatically insert this tag if
|
|
Packit |
667938 |
SNMPv2 or SNMPv3 is specified but the ifHC* counters are
|
|
Packit |
667938 |
unavailable.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
Target[myrouter]: #Bri0:router1:::::3
|
|
Packit |
667938 |
SnmpOptions[myrouter]: username=>'user1'
|
|
Packit |
667938 |
noHC[myrouter]: yes
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Reversing
|
|
Packit |
667938 |
Sometimes you are sitting on the wrong side of the link, and you
|
|
Packit |
667938 |
would like to have mrtg report Incoming traffic as Outgoing and
|
|
Packit |
667938 |
vice versa. This can be achieved by adding the '-' sign in front of
|
|
Packit |
667938 |
the "Target" description. It flips the incoming and outgoing
|
|
Packit |
667938 |
traffic rates.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[ezci]: -1:public@ezci-ether.domain
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Explicit OIDs
|
|
Packit |
667938 |
You can also explicitly define which OID to query by using the
|
|
Packit |
667938 |
following syntax 'OID_1&OID_2:community@router' The following
|
|
Packit |
667938 |
example will retrieve error counts for input and output on
|
|
Packit |
667938 |
interface 1. MRTG needs to graph two variables, so you need to
|
|
Packit |
667938 |
specify two OID's such as temperature and humidity or error input
|
|
Packit |
667938 |
and error output.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
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
|
|
Packit |
667938 |
|
|
Packit |
667938 |
MIB Variables
|
|
Packit |
667938 |
MRTG knows a number of symbolic SNMP variable names. See the file
|
|
Packit |
667938 |
mibhelp.txt for a list of known names. One example are the
|
|
Packit |
667938 |
ifInErrors and ifOutErrors. This means you can specify the above
|
|
Packit |
667938 |
as:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: ifInErrors.1&ifOutErrors.1:public@myrouter
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SnmpWalk
|
|
Packit |
667938 |
It may be that you want to monitor an snmp object that is only
|
|
Packit |
667938 |
reachable by 'walking'. You can get mrtg to walk by prepending the
|
|
Packit |
667938 |
OID with the string W?Wa?aL?LK?K or if you want a particular entry from the
|
|
Packit |
667938 |
table returned by the walk you can use W?Wa?aL?LK?K_?x where _?x is a number
|
|
Packit |
667938 |
starting from 0 (!).
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: WaLKstrangeOid.1&WaLKstrangeOid.2:public@myrouter
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: WaLK3strangeOid.1&WaLK4strangeOid.2:public@myrouter
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SnmpGetNext
|
|
Packit |
667938 |
A special case of an snmp object that is only reachable by
|
|
Packit |
667938 |
'walking' occurs when a single snmpgetnext will return the correct
|
|
Packit |
667938 |
value, but snmpwalk fails. This may occur with snmp V2 or V3, as
|
|
Packit |
667938 |
the snmpgetbulk method is used in these versions. You can get mrtg
|
|
Packit |
667938 |
to use getnext instead of getbulk by prepending the OID with the
|
|
Packit |
667938 |
string G?Ge?eT?TN?NE?EX?XT?T.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: GeTNEXTstrangeOid&GeTNEXTstrangeOid:public@myrouter
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Counted SNMP Walk
|
|
Packit |
667938 |
In other situations, an snmpwalk is needed to count rows, but the
|
|
Packit |
667938 |
actual data is uninteresting. For example, counting the number of
|
|
Packit |
667938 |
mac-addresses in a CAM table, or the number of simultaneous dialup
|
|
Packit |
667938 |
sessions. You can get MRTG to count the number of instances by
|
|
Packit |
667938 |
prepending the OID with the string C?Cn?nT?TW?Wa?aL?LK?K. The following will
|
|
Packit |
667938 |
retrieve the number of simultaneous VOIP calls on some routers:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: CnTWaLK1.3.6.1.4.1.9.10.55.1.1.1.1.3&CnTWaLK1.3.6.1.4.1.9.10.55.1.1.1.1.3:public@myrouter
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Interface by IP
|
|
Packit |
667938 |
Sometimes SNMP interface index can change, like when new interfaces
|
|
Packit |
667938 |
are added or removed. This can cause all Target entries in your
|
|
Packit |
667938 |
config file to become offset, causing MRTG to graphs wrong
|
|
Packit |
667938 |
instances etc. MRTG supports IP address instead of ifindex in
|
|
Packit |
667938 |
target definition. Then MRTG will query snmp device and try to map
|
|
Packit |
667938 |
IP address to the current ifindex. You can use IP addresses in
|
|
Packit |
667938 |
every type of target definition by adding IP address of the
|
|
Packit |
667938 |
numbered interface after OID and separation char '/'.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Make sure that the given IP address is used on your same target
|
|
Packit |
667938 |
router, especially when graphing two different OIDs and/or
|
|
Packit |
667938 |
interface split by '&' delimiter.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
You can tell cfgmaker to generate such references with the option
|
|
Packit |
667938 |
-?--?-i?if?fr?re?ef?f=?=i?ip?p.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: /1.2.3.4:public@wellfleet-fddi.domain
|
|
Packit |
667938 |
Target[ezci]: -/1.2.3.4:public@ezci-ether.domain
|
|
Packit |
667938 |
Target[myrouter]: ifInErrors/1.2.3.4&ifOutErrors/1.2.3.4:public@myrouter
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Interface by Description
|
|
Packit |
667938 |
If you can not use IP addresses you might want to use the interface
|
|
Packit |
667938 |
names. This works similar to the IP address aproach except that the
|
|
Packit |
667938 |
prefix to use is a \ instead of a /
|
|
Packit |
667938 |
|
|
Packit |
667938 |
You can tell cfgmaker to generate such references with the option
|
|
Packit |
667938 |
-?--?-i?if?fr?re?ef?f=?=d?de?es?sc?cr?r.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: \My-Interface2:public@wellfleet-fddi.domain
|
|
Packit |
667938 |
Target[ezci]: -\My-Interface2:public@ezci-ether.domain
|
|
Packit |
667938 |
Target[myrouter]: ifInErrors\My-If2&ifOutErrors\My-If3:public@myrouter
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If your description contains a "&", a ":", a "@" or a " " you can
|
|
Packit |
667938 |
include them but you must escape with a backlash:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: \fun\:\ ney\&ddd:public@hello.router
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Interface by Name
|
|
Packit |
667938 |
This is the only sensible way to reference the interfaces of your
|
|
Packit |
667938 |
switches.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
You can tell cfgmaker to generate such references with the option
|
|
Packit |
667938 |
-?--?-i?if?fr?re?ef?f=?=n?na?am?me?e.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: #2/11:public@wellfleet-fddi.domain
|
|
Packit |
667938 |
Target[ezci]: -#2/11:public@ezci-ether.domain
|
|
Packit |
667938 |
Target[myrouter]: ifInErrors#3/7&ifOutErrors#3/7:public@myrouter
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If your description contains a "&", a ":", a "@" or a " " you can
|
|
Packit |
667938 |
include them but you must escape with a backlash:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: #\:\ fun:public@hello.router
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note that the # sign will be interpreted as a comment character if
|
|
Packit |
667938 |
it is the first non white-space character on the line.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Interface by Ethernet Address
|
|
Packit |
667938 |
When the SNMP interface index changes, you can key that interface
|
|
Packit |
667938 |
by its 'Physical Address', sometimes called a 'hard address', which
|
|
Packit |
667938 |
is the SNMP variable 'ifPhysAddress'. Internally, MRTG matches the
|
|
Packit |
667938 |
Physical Address from the *.cfg file to its current index, and then
|
|
Packit |
667938 |
uses that index for the rest of the session.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
You can use the Physical Address in every type of target definition
|
|
Packit |
667938 |
by adding the Physical Address after the OID and the separation
|
|
Packit |
667938 |
char '!' (analogous to the IP address option). The Physical
|
|
Packit |
667938 |
address is specified as '-' delimited octets, such as
|
|
Packit |
667938 |
"0a-0-f1-5-23-18" (omit the double quotes). Note that some routers
|
|
Packit |
667938 |
use the same Hardware Ethernet Address for all of their Interfaces
|
|
Packit |
667938 |
which prevents unique interface identification. Mrtg will notice
|
|
Packit |
667938 |
such problems and alert you.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
You can tell cfgmaker to generate configuration files with hardware
|
|
Packit |
667938 |
ethernet address references by using the option -?--?-i?if?fr?re?ef?f=?=e?et?th?h.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: !0a-0b-0c-0d:public@wellfleet-fddi.domain
|
|
Packit |
667938 |
Target[ezci]: -!0-f-bb-05-71-22:public@ezci-ether.domain
|
|
Packit |
667938 |
Target[myrouter]: 1.3.6.1.2.1.2.2.1.14!0a-00-10-23-44-51& *BREAK*
|
|
Packit |
667938 |
1.3.6.1.2.1.2.2.1.14!0a-00-10-23-44-51:public@myrouter
|
|
Packit |
667938 |
Target[myrouter]: ifInErrors!0a-00-10-23-44-51& *BREAK*
|
|
Packit |
667938 |
ifOutErrors!0a-00-10-23-44-51:public@myrouter
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Join the lines at *BREAK* ...
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Interface by Type
|
|
Packit |
667938 |
It seems that there are devices that try to defy all monitoring
|
|
Packit |
667938 |
efforts: the interesting interfaces have neither ifName nor a
|
|
Packit |
667938 |
constant ifDescr not to mention a persistent ifIndex. The only way
|
|
Packit |
667938 |
to get a constant mapping is by looking at the interface type,
|
|
Packit |
667938 |
because the interface you are interested in is unique in the device
|
|
Packit |
667938 |
you are looking at ...
|
|
Packit |
667938 |
|
|
Packit |
667938 |
You can tell cfgmaker to generate such references with the option
|
|
Packit |
667938 |
-?--?-i?if?fr?re?ef?f=?=t?ty?yp?pe?e.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: %13:public@wellfleet-fddi.domain
|
|
Packit |
667938 |
Target[ezci]: -%13:public@ezci-ether.domain
|
|
Packit |
667938 |
Target[myrouter]: ifInErrors%13&ifOutErrors%14:public@myrouter
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Extended positioning of ifIndex
|
|
Packit |
667938 |
There are OIDs that contain the interface index at some inner
|
|
Packit |
667938 |
position within the OID. To use the above mentioned Interface by
|
|
Packit |
667938 |
IP/Description/Name/Type methods in the target definition the
|
|
Packit |
667938 |
keyword 'IndexPOS' can be used to indicate the position of ifIndex.
|
|
Packit |
667938 |
If 'IndexPOS' is not used the ifIndex will be appended at the end
|
|
Packit |
667938 |
of the OID.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: OID.IndexPOS.1/1.2.3.4&OID.IndexPOS.1/1.2.3.4:public@myrouter
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Replace OID by your numeric OID.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Extended Host Name Syntax
|
|
Packit |
667938 |
In all places where ``community@router'' is accepted, you can add
|
|
Packit |
667938 |
additional parameters for the SNMP communication using colon-
|
|
Packit |
667938 |
separated suffixes. You can also append a pipe symbol ( | ) and the
|
|
Packit |
667938 |
name of a numeric conversion subroutine as described under the
|
|
Packit |
667938 |
global keyword "ConversionCode" above. The full syntax is as
|
|
Packit |
667938 |
follows:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
community@router[:[port][:[timeout][:[retries][:[backoff][:[version]]]]][|name]
|
|
Packit |
667938 |
|
|
Packit |
667938 |
where the meaning of each parameter is as follows:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
port
|
|
Packit |
667938 |
the UDP port under which to contact the SNMP agent (default:
|
|
Packit |
667938 |
161)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The complete syntax of the port parameter is
|
|
Packit |
667938 |
|
|
Packit |
667938 |
remote_port[!local_address[!local_port]]
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Some machines have additional security features that only allow
|
|
Packit |
667938 |
SNMP queries to come from certain IP addresses. If the host
|
|
Packit |
667938 |
doing the query has multiple interface, it may be necessary to
|
|
Packit |
667938 |
specify the interface the query should come from.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The port parameter allows the specification of the port of the
|
|
Packit |
667938 |
machine being queried. In addition, the IP address (or
|
|
Packit |
667938 |
hostname) and port of the machine doing the query may be
|
|
Packit |
667938 |
specified.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Examples:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
somehost
|
|
Packit |
667938 |
somehost:161
|
|
Packit |
667938 |
somehost:161!192.168.2.4!4000 use 192.168.2.4 and port 4000 as source
|
|
Packit |
667938 |
somehost:!192.168.2.4 use 192.168.2.4 as source
|
|
Packit |
667938 |
somehost:!!4000 use port 4000 as source
|
|
Packit |
667938 |
|
|
Packit |
667938 |
timeout
|
|
Packit |
667938 |
initial timeout for SNMP queries, in seconds (default: 2.0)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
retries
|
|
Packit |
667938 |
number of times a timed-out request will be retried (default:
|
|
Packit |
667938 |
5)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
backoff
|
|
Packit |
667938 |
factor by which the timeout is multiplied on every retry
|
|
Packit |
667938 |
(default: 1.0).
|
|
Packit |
667938 |
|
|
Packit |
667938 |
version
|
|
Packit |
667938 |
for SNMP version. If you have a fast router you might want to
|
|
Packit |
667938 |
put a '2' here. For authenticated or encrypted SNMP, you can
|
|
Packit |
667938 |
try to put a '3' here. This will make mrtg try to poll the 64
|
|
Packit |
667938 |
bit counters and thus prevent excessive counter wrapping. Not
|
|
Packit |
667938 |
all routers support this though. SNMP v3 requires additional
|
|
Packit |
667938 |
setup, see SnmpOptions[] for full details.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
3:public@router1:::::2
|
|
Packit |
667938 |
|
|
Packit |
667938 |
name
|
|
Packit |
667938 |
the name of the subroutine that MRTG will call to convert the
|
|
Packit |
667938 |
input and output values to integers. See the complete example
|
|
Packit |
667938 |
under the global keyword "ConversionCode" above.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
1.3.6.1.4.1.999.1&1.3.6.1.4.1.999.2:public@mydevice:161::::2|Length2Int
|
|
Packit |
667938 |
|
|
Packit |
667938 |
This would retrieve values from the OID 1.3.6.1.4.1.999.1 for
|
|
Packit |
667938 |
input and .2 for output on mydevice using UDP port 161 and SNMP
|
|
Packit |
667938 |
version 2, and would execute the user-defined numeric
|
|
Packit |
667938 |
conversion subroutine Length2Int to convert those values to
|
|
Packit |
667938 |
integers.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
A value that equals the default value can be omitted. Trailing
|
|
Packit |
667938 |
colons can be omitted, too. The pipe symbol followed by the name
|
|
Packit |
667938 |
parameter, if present, must come at the end. There must be no
|
|
Packit |
667938 |
spaces around the colons or pipe symbol.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[ezci]: 1:public@ezci-ether.domain:9161::4
|
|
Packit |
667938 |
|
|
Packit |
667938 |
This would refer to the input/output octet counters for the
|
|
Packit |
667938 |
interface with _?i_?f_?I_?n_?d_?e_?x _?1 on _?e_?z_?c_?i_?-_?e_?t_?h_?e_?r_?._?d_?o_?m_?a_?i_?n, as known by the SNMP
|
|
Packit |
667938 |
agent listening on UDP port 9161. The standard initial timeout
|
|
Packit |
667938 |
(2.0 seconds) is used, but the number of retries is set to four.
|
|
Packit |
667938 |
The backoff value is the default.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Numeric IPv6 addresses
|
|
Packit |
667938 |
If IPv6 is enabled you may also specify a target using its IPv6
|
|
Packit |
667938 |
address. To avoid ambiguity with the port number, numeric IPv6
|
|
Packit |
667938 |
addresses must be placed in square brackets.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[IPv6test]: 2:public@[2001:760:4::]:6161::4
|
|
Packit |
667938 |
|
|
Packit |
667938 |
External Monitoring Scripts
|
|
Packit |
667938 |
If you want to monitor something which does not provide data via
|
|
Packit |
667938 |
snmp you can use some external program to do the data gathering.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The external command must return 4 lines of output:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Line 1
|
|
Packit |
667938 |
current state of the first variable, normally 'incoming bytes
|
|
Packit |
667938 |
count'
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Line 2
|
|
Packit |
667938 |
current state of the second variable, normally 'outgoing bytes
|
|
Packit |
667938 |
count'
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Line 3
|
|
Packit |
667938 |
string (in any human readable format), telling the uptime of
|
|
Packit |
667938 |
the target.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Line 4
|
|
Packit |
667938 |
string, telling the name of the target.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Depending on the type of data your script returns you might want to
|
|
Packit |
667938 |
use the 'gauge' or 'absolute' arguments for the _?O_?p_?t_?i_?o_?n_?s keyword.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: `/usr/local/bin/df2mrtg /dev/dsk/c0t2d0s0`
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note the use of the backticks (`), not apostrophes (') around the
|
|
Packit |
667938 |
command.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If you want to use a backtick in the command name this can be done
|
|
Packit |
667938 |
but you must escape it with a backslash ...
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If your script does not have any data to return but does not want
|
|
Packit |
667938 |
mrtg to complain about invalid data, it can return 'UNKNOWN'
|
|
Packit |
667938 |
instead of a number. Note though that only rrdtool is realy
|
|
Packit |
667938 |
equipped to handle unknown data well.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Multi Target Syntax
|
|
Packit |
667938 |
You can also combine several target definitions in a mathematical
|
|
Packit |
667938 |
expression. Any syntactically correct expression that the Perl
|
|
Packit |
667938 |
interpreter can evaluate to will work. An expression could be used,
|
|
Packit |
667938 |
for example, to aggregate both B channels in an ISDN connection or
|
|
Packit |
667938 |
to calculate the percentage hard disk utilization of a server from
|
|
Packit |
667938 |
the absolute used space and total capacity.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Examples:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: 2:public@wellfleetA + 1:public@wellfleetA
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[myrouter]: .1.3.6.1.4.1.999.1&.1.3.6.1.4.1.999.2:public@mydevice /
|
|
Packit |
667938 |
.1.3.6.1.4.1.999.3&.1.3.6.1.4.1.999.4:public@mydevice * 100
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note that whitespace must surround each target definition in the
|
|
Packit |
667938 |
expression. Target definitions themselves must not contain
|
|
Packit |
667938 |
whitespace, except in interface descriptions and interface names,
|
|
Packit |
667938 |
where each whitespace character is escaped by a backslash.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
MRTG automatically rounds the result of the expression to an
|
|
Packit |
667938 |
integer unless RRDTool logging is in use and the gauge option is in
|
|
Packit |
667938 |
effect for the target. Internally MRTG uses Perl's Math::BigFloat
|
|
Packit |
667938 |
package to calculate the result of the expression with 40 digits of
|
|
Packit |
667938 |
precision. Even in extreme cases, where, for example, you take the
|
|
Packit |
667938 |
difference of two 64-bit integers, the result of the expression
|
|
Packit |
667938 |
should be accurate.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SNMP Request Optimization
|
|
Packit |
667938 |
MRTG is designed to economize on its SNMP requests. Where a target
|
|
Packit |
667938 |
definition appears more than once in the configuration file, MRTG
|
|
Packit |
667938 |
requests the data from the device only once per round of data
|
|
Packit |
667938 |
collection and uses the collected data for each instance of a
|
|
Packit |
667938 |
particular target. Recognition of two target definitions as being
|
|
Packit |
667938 |
identical is based on a simple string match rather than any kind of
|
|
Packit |
667938 |
deeper semantic analysis.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[Targ1]: 1:public@CiscoA
|
|
Packit |
667938 |
Target[Targ2]: 2:public@CiscoA
|
|
Packit |
667938 |
Target[Targ3]: 1:public@CiscoA + 2:public@CiscoA
|
|
Packit |
667938 |
Target[Targ4]: 1:public@CISCOA
|
|
Packit |
667938 |
|
|
Packit |
667938 |
This results in a total of three SNMP requests. Data for
|
|
Packit |
667938 |
1:public@CiscoA and 2:public@CiscoA are requested only once each,
|
|
Packit |
667938 |
and used for Targ1, Targ2, and Targ3. Targ4 causes another SNMP
|
|
Packit |
667938 |
request for 1:public@CISCOA, which is not recognized as being
|
|
Packit |
667938 |
identical to 1:public@CiscoA.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
M?Ma?ax?xB?By?yt?te?es?s
|
|
Packit |
667938 |
The maximum value either of the two variables monitored are allowed to
|
|
Packit |
667938 |
reach. For monitoring router traffic this is normally the bytes per
|
|
Packit |
667938 |
second this interface port can carry.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If a number higher than _?M_?a_?x_?B_?y_?t_?e_?s is returned, it is ignored. Also read
|
|
Packit |
667938 |
the section on _?A_?b_?s_?M_?a_?x for further info. The _?M_?a_?x_?B_?y_?t_?e_?s value is also
|
|
Packit |
667938 |
used in calculating the Y range for unscaled graphs (see the section on
|
|
Packit |
667938 |
_?U_?n_?s_?c_?a_?l_?e_?d).
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Since most links are rated in bits per second, you need to divide their
|
|
Packit |
667938 |
maximum bandwidth (in bits) by eight (8) in order to get bytes per
|
|
Packit |
667938 |
second. This is very important to make your unscaled graphs display
|
|
Packit |
667938 |
realistic information. T1 = 193000, 56K = 7000, 10 MB Ethernet =
|
|
Packit |
667938 |
1250000, 100 MB Ethernet = 12500000. The _?M_?a_?x_?B_?y_?t_?e_?s value will be used by
|
|
Packit |
667938 |
mrtg to decide whether it got a valid response from the router.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If you need two different MaxBytes values for the two monitored
|
|
Packit |
667938 |
variables, you can use MaxBytes1 and MaxBytes2 instead of MaxBytes.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
MaxBytes[myrouter]: 1250000
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Ti?it?tl?le?e
|
|
Packit |
667938 |
Title for the HTML page which gets generated for the graph.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Title[myrouter]: Traffic Analysis for Our Nice Company
|
|
Packit |
667938 |
|
|
Packit |
667938 |
O?OP?PT?TI?IO?ON?NA?AL?L P?PE?ER?R T?TA?AR?RG?GE?ET?T K?KE?EY?YW?WO?OR?RD?DS?S
|
|
Packit |
667938 |
P?Pa?ag?ge?eT?To?op?p
|
|
Packit |
667938 |
Things to add to the top of the generated HTML page. Note that you can
|
|
Packit |
667938 |
have several lines of text as long as the first column is empty.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note that the continuation lines will all end up on the same line in
|
|
Packit |
667938 |
the html page. If you want linebreaks in the generated html use the
|
|
Packit |
667938 |
'\n' sequence.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
PageTop[myrouter]: Traffic Analysis for ETZ C95.1
|
|
Packit |
667938 |
Our Campus Backbone runs over an FDDI line\n
|
|
Packit |
667938 |
with a maximum transfer rate of 12.5 megabytes per
|
|
Packit |
667938 |
Second.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
R?Ro?ou?ut?te?er?rU?Up?pt?ti?im?me?e
|
|
Packit |
667938 |
In cases where you calculate the used bandwidth from several interfaces
|
|
Packit |
667938 |
you normally don't get the router uptime and router name displayed on
|
|
Packit |
667938 |
the web page.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If these interfaces are on the same router and the uptime and name
|
|
Packit |
667938 |
should be displayed you have to specify its community and address again
|
|
Packit |
667938 |
with the _?R_?o_?u_?t_?e_?r_?U_?p_?t_?i_?m_?e keyword.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If you want to use a special OID for querying the router uptime, use
|
|
Packit |
667938 |
prepend the oid.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[kacisco.comp.edu]: 1:public@194.64.66.250 + 2:public@194.64.66.250
|
|
Packit |
667938 |
RouterUptime[kacisco.comp.edu]: public@194.64.66.250
|
|
Packit |
667938 |
|
|
Packit |
667938 |
RouterUptime[kacisco.comp.edu]: hrSystemUptime.0:public@194.64.66.250
|
|
Packit |
667938 |
|
|
Packit |
667938 |
R?Ro?ou?ut?te?er?rN?Na?am?me?e
|
|
Packit |
667938 |
If the default name of the router is incorrect/uninformative, you can
|
|
Packit |
667938 |
use RouterName to specify a different OID on either the same or a
|
|
Packit |
667938 |
different host.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
A practical example: sysName on BayTech DS72 units always display
|
|
Packit |
667938 |
"ds72", no matter what you set the Unit ID to be. Instead, the Unit ID
|
|
Packit |
667938 |
is stored at 1.3.6.1.4.1.4779.1.1.3.0, so we can have MRTG display this
|
|
Packit |
667938 |
instead of sysName.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
RouterName[kacisco.comp.edu]: 1.3.6.1.4.1.4779.1.1.3.0
|
|
Packit |
667938 |
|
|
Packit |
667938 |
A different OID on a different host can also be specified:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
RouterName[kacisco.comp.edu]: 1.3.6.1.4.1.4779.1.1.3.0:public@194.64.66.251
|
|
Packit |
667938 |
|
|
Packit |
667938 |
M?Ma?ax?xB?By?yt?te?es?s1?1
|
|
Packit |
667938 |
Same as MaxBytes, for variable 1.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
M?Ma?ax?xB?By?yt?te?es?s2?2
|
|
Packit |
667938 |
Same as MaxBytes, for variable 2.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
I?IP?Pv?v4?4O?On?nl?ly?y
|
|
Packit |
667938 |
Many IPv6 routers do not currently support SNMP over IPv6 and must be
|
|
Packit |
667938 |
monitored using IPv4. The IPv4Only option forces mrtg to use IPv4 when
|
|
Packit |
667938 |
communicating with the target, even if IPv6 is enabled. This is useful
|
|
Packit |
667938 |
if the target is a hostname with both IPv4 and IPv6 addresses; without
|
|
Packit |
667938 |
the IPv4Only keyword, monitoring such a router will not work if IPv6 is
|
|
Packit |
667938 |
enabled.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If set to no (the default), mrtg will use IPv6 unless the target has no
|
|
Packit |
667938 |
IPv6 addresses, in which case it will use IPv4. If set to yes, mrtg
|
|
Packit |
667938 |
will only use IPv4.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note that if this option is set to yes and the target does not have an
|
|
Packit |
667938 |
IPv4 address, communication with the target will fail.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
This option has no effect if IPv6 is not enabled.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Target[v4onlyrouter_1]: 1:public@v4onlyrouter
|
|
Packit |
667938 |
IPv4Only[v4onlyrouter_1]: Yes
|
|
Packit |
667938 |
|
|
Packit |
667938 |
S?Sn?nm?mp?pO?Op?pt?ti?io?on?ns?s (?(V?V3?3)?)
|
|
Packit |
667938 |
SNMPv3 requires a fairly rich set of options. This per-target keyword
|
|
Packit |
667938 |
allows access to the User Security Model of SNMPv3. Options are listed
|
|
Packit |
667938 |
in the same syntax as a perl hash.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
_?S_?e_?c_?u_?r_?i_?t_?y _?M_?o_?d_?e_?s
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SNMPv3 has three security modes, defined on the device being polled.
|
|
Packit |
667938 |
For example, on Cisco routers the security mode is defined by the snmp-
|
|
Packit |
667938 |
server group global configuration command.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
NoAuthNoPriv
|
|
Packit |
667938 |
Neither Authentication nor Privacy is defined. Only the Username
|
|
Packit |
667938 |
option is specified for this mode.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SnmpOptions[myrouter]: username=>'user1'
|
|
Packit |
667938 |
|
|
Packit |
667938 |
AuthNoPriv
|
|
Packit |
667938 |
Uses a Username and a password. The password can be hashed using
|
|
Packit |
667938 |
the snmpkey application, or passed in plain text along with the
|
|
Packit |
667938 |
ContextEngineID
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SnmpOptions[myrouter]: username=>'user1',authpassword=>'example',
|
|
Packit |
667938 |
contextengineid=>'80000001110000004000000'
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Priv
|
|
Packit |
667938 |
Both Authentication and Privacy is defined. The default privacy
|
|
Packit |
667938 |
protocol is des.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
SnmpOptions[myrouter]:
|
|
Packit |
667938 |
authkey=>'0x1e93ab5a396e2af234c8920e61cfe2028072c0e2',
|
|
Packit |
667938 |
authprotocol=>'sha',privprotocol=>'des',username=>'user1',
|
|
Packit |
667938 |
privkey=>'0x498d74940c5872ed387201d74b9b25e2'
|
|
Packit |
667938 |
|
|
Packit |
667938 |
_?s_?n_?m_?p _?o_?p_?t_?i_?o_?n_?s
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The following option keywords are recognized:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
username
|
|
Packit |
667938 |
The user associated with the User Security Model
|
|
Packit |
667938 |
|
|
Packit |
667938 |
contextname
|
|
Packit |
667938 |
An SNMP agent can define multiple contexts. This keyword allows
|
|
Packit |
667938 |
them to be polled.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
contextengineid
|
|
Packit |
667938 |
A unique 24-byte string identifying the snmp-agent.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
authpassword
|
|
Packit |
667938 |
The plaintext password for a user in either AuthNoPriv or Priv
|
|
Packit |
667938 |
mode.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
authkey
|
|
Packit |
667938 |
A md5 or sha hash of the plain-text password, along with the
|
|
Packit |
667938 |
engineid. Use the snmpkey commandline program to generate this
|
|
Packit |
667938 |
hash, or use Net::SNMP::Security::USM in a script.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
authprotocol {sha|md5}
|
|
Packit |
667938 |
The hashing algorithm defined on the SNMP client. Defaults to md5.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
privpassword
|
|
Packit |
667938 |
A plaintext pre-shared key for encrypting snmp packets in Priv
|
|
Packit |
667938 |
mode.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
privkey
|
|
Packit |
667938 |
A hash of the plain-text pre-shared key, along with the engineid.
|
|
Packit |
667938 |
Use the snmpkey commandline program to generate this hash, or use
|
|
Packit |
667938 |
Net::SNMP::Security::USM in a script.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
privprotocol {des|3desede|aescfb128|aescfb192|aescfb256}
|
|
Packit |
667938 |
Specifies the encryption method defined on the snmp agent. The
|
|
Packit |
667938 |
default is des.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
P?Pa?ag?ge?eF?Fo?oo?ot?t
|
|
Packit |
667938 |
Things to add to the bottom of the generated HTML page. Note that you
|
|
Packit |
667938 |
can have several lines of text as long as the first column is empty.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note that the continuation lines will all end up on the same line in
|
|
Packit |
667938 |
the html page. If you want linebreaks in the generated html use the
|
|
Packit |
667938 |
'\n' sequence.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The material will be added just before the </BODY> tag:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
PageFoot[myrouter]: Contact Peter
|
|
Packit |
667938 |
if you have questions regarding this page
|
|
Packit |
667938 |
|
|
Packit |
667938 |
A?Ad?dd?dH?He?ea?ad?d
|
|
Packit |
667938 |
Use this tag like the _?P_?a_?g_?e_?T_?o_?p header, but its contents will be added
|
|
Packit |
667938 |
between </TITLE> and </HEAD>.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
AddHead[myrouter]: <link rev="made" href="mailto:mrtg@blabla.edu">
|
|
Packit |
667938 |
|
|
Packit |
667938 |
B?Bo?od?dy?yT?Ta?ag?g
|
|
Packit |
667938 |
BodyTag lets you supply your very own <body ...> tag for the generated
|
|
Packit |
667938 |
webpages.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
BodyTag[myrouter]:
|
|
Packit |
667938 |
BACKGROUND="/stats/images/bg.neo2.gif">
|
|
Packit |
667938 |
|
|
Packit |
667938 |
A?Ab?bs?sM?Ma?ax?x
|
|
Packit |
667938 |
If you are monitoring a link which can handle more traffic than the
|
|
Packit |
667938 |
_?M_?a_?x_?B_?y_?t_?e_?s value. Eg, a line which uses compression or some frame relay
|
|
Packit |
667938 |
link, you can use the _?A_?b_?s_?M_?a_?x keyword to give the absolute maximum value
|
|
Packit |
667938 |
ever to be reached. We need to know this in order to sort out
|
|
Packit |
667938 |
unrealistic values returned by the routers. If you do not set _?A_?b_?s_?M_?a_?x,
|
|
Packit |
667938 |
rateup will ignore values higher than _?M_?a_?x_?B_?y_?t_?e_?s.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
AbsMax[myrouter]: 2500000
|
|
Packit |
667938 |
|
|
Packit |
667938 |
U?Un?ns?sc?ca?al?le?ed?d
|
|
Packit |
667938 |
By default each graph is scaled vertically to make the actual data
|
|
Packit |
667938 |
visible even when it is much lower than _?M_?a_?x_?B_?y_?t_?e_?s. With the _?U_?n_?s_?c_?a_?l_?e_?d
|
|
Packit |
667938 |
variable you can suppress this. It's argument is a string, containing
|
|
Packit |
667938 |
one letter for each graph you don't want to be scaled: d=day w=week
|
|
Packit |
667938 |
m=month y=year. There is also a special case to unset the variable
|
|
Packit |
667938 |
completely: n=none. This could be useful in the event you need to
|
|
Packit |
667938 |
override a global configuration. In the example scaling for the yearly
|
|
Packit |
667938 |
and the monthly graph are suppressed.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Unscaled[myrouter]: ym
|
|
Packit |
667938 |
|
|
Packit |
667938 |
W?Wi?it?th?hP?Pe?ea?ak?k
|
|
Packit |
667938 |
By default the graphs only contain the average values of the monitored
|
|
Packit |
667938 |
variables - normally the transfer rates for incoming and outgoing
|
|
Packit |
667938 |
traffic. The following option instructs mrtg to display the peak 5
|
|
Packit |
667938 |
minute values in the [w]eekly, [m]onthly and [y]early graph. In the
|
|
Packit |
667938 |
example we define the monthly and the yearly graph to contain peak as
|
|
Packit |
667938 |
well as average values.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Examples:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
WithPeak[myrouter]: ym
|
|
Packit |
667938 |
|
|
Packit |
667938 |
S?Su?up?pp?pr?re?es?ss?s
|
|
Packit |
667938 |
By default mrtg produces 4 graphs. With this option you can suppress
|
|
Packit |
667938 |
the generation of selected graphs. The option value syntax is
|
|
Packit |
667938 |
analogous to the above two options. In this example we suppress the
|
|
Packit |
667938 |
yearly graph as it is quite empty in the beginning.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Suppress[myrouter]: y
|
|
Packit |
667938 |
|
|
Packit |
667938 |
E?Ex?xt?te?en?ns?si?io?on?n
|
|
Packit |
667938 |
By default, mrtg creates .html files. Use this option to tell mrtg to
|
|
Packit |
667938 |
use a different extension. For example you could set the extension to
|
|
Packit |
667938 |
php3, then you will be able to enclose PHP tags into the output (useful
|
|
Packit |
667938 |
for getting a router name out of a database).
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Extension[myrouter]: phtml
|
|
Packit |
667938 |
|
|
Packit |
667938 |
D?Di?ir?re?ec?ct?to?or?ry?y
|
|
Packit |
667938 |
By default, mrtg puts all the files that it generates for each target
|
|
Packit |
667938 |
(the GIFs, the HTML page, the log file, etc.) in _?W_?o_?r_?k_?D_?i_?r.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If the _?D_?i_?r_?e_?c_?t_?o_?r_?y option is specified, the files are instead put into a
|
|
Packit |
667938 |
directory under _?W_?o_?r_?k_?D_?i_?r or Log-, Image- and HtmlDir). (For example the
|
|
Packit |
667938 |
_?D_?i_?r_?e_?c_?t_?o_?r_?y option below would cause all the files for a target myrouter
|
|
Packit |
667938 |
to be put into directory /usr/tardis/pub/www/stats/mrtg/myrouter/ .)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The directory must already exist; mrtg will not create it.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
WorkDir: /usr/tardis/pub/www/stats/mrtg
|
|
Packit |
667938 |
Directory[myrouter]: myrouter
|
|
Packit |
667938 |
|
|
Packit |
667938 |
NOTE: the Directory option must always be 'relative' or bad things will
|
|
Packit |
667938 |
happen.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
C?Cl?lo?on?ne?ed?di?ir?re?ec?ct?to?or?ry?y
|
|
Packit |
667938 |
If the _?D_?i_?r_?e_?c_?t_?o_?r_?y option is specified, the _?C_?l_?o_?n_?e_?d_?i_?r_?e_?c_?t_?o_?r_?y option will
|
|
Packit |
667938 |
copy all the contents of _?D_?i_?r_?e_?c_?t_?o_?r_?y to the _?C_?l_?o_?n_?e_?d_?i_?r_?e_?c_?t_?o_?r_?y.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
WorkDir: /usr/tardis/pub/www/stats/mrtg
|
|
Packit |
667938 |
Directory[myrouter]: myrouter
|
|
Packit |
667938 |
Clonedirectory[myrouter]: myclonedirectory
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Optionally the target name can be changed in the cloning process.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
WorkDir: /usr/tardis/pub/www/stats/mrtg
|
|
Packit |
667938 |
Directory[myrouter]: myrouter
|
|
Packit |
667938 |
Clonedirectory[myrouter]: myclonedirectory mynewtarget
|
|
Packit |
667938 |
|
|
Packit |
667938 |
NOTE1: The clone directory must already exist; mrtg will not create it.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
NOTE2: The Clonedirectory option must also always be 'relative' or bad
|
|
Packit |
667938 |
things will happen.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
NOTE3: This requires the File::Copy module
|
|
Packit |
667938 |
|
|
Packit |
667938 |
X?XS?Si?iz?ze?e a?an?nd?d Y?YS?Si?iz?ze?e
|
|
Packit |
667938 |
By default mrtgs graphs are 100 by 400 pixels wide (plus some more for
|
|
Packit |
667938 |
the labels. In the example we get almost square graphs ...
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note: XSize must be between 20 and 600; YSize must be larger than 20
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
XSize[myrouter]: 300
|
|
Packit |
667938 |
YSize[myrouter]: 300
|
|
Packit |
667938 |
|
|
Packit |
667938 |
X?XZ?Zo?oo?om?m a?an?nd?d Y?YZ?Zo?oo?om?m
|
|
Packit |
667938 |
If you want your graphs to have larger pixels, you can "Zoom" them.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
XZoom[myrouter]: 2.0
|
|
Packit |
667938 |
YZoom[myrouter]: 2.0
|
|
Packit |
667938 |
|
|
Packit |
667938 |
X?XS?Sc?ca?al?le?e a?an?nd?d Y?YS?Sc?ca?al?le?e
|
|
Packit |
667938 |
If you want your graphs to be actually scaled use _?X_?S_?c_?a_?l_?e and _?Y_?S_?c_?a_?l_?e.
|
|
Packit |
667938 |
(Beware: while this works, the results look ugly (to be frank) so if
|
|
Packit |
667938 |
someone wants to fix this: patches are welcome.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
XScale[myrouter]: 1.5
|
|
Packit |
667938 |
YScale[myrouter]: 1.5
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Y?YT?Ti?ic?cs?s a?an?nd?d Y?YT?Ti?ic?cs?sF?Fa?ac?ct?to?or?r
|
|
Packit |
667938 |
If you want to show more than 4 lines per graph, use YTics. If you
|
|
Packit |
667938 |
want to scale the value used for the YLegend of these tics, use
|
|
Packit |
667938 |
YTicsFactor. The default value for YTics is 4 and the default value
|
|
Packit |
667938 |
for YTicsFactor is 1.0 .
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Suppose you get values ranging from 0 to 700. You want to plot 7 lines
|
|
Packit |
667938 |
and want to show 0, 1, 2, 3, 4, 5, 6, 7 instead of 0, 100, 200, 300,
|
|
Packit |
667938 |
400, 500, 600, 700. You should write then:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
YTics[myrouter]: 7
|
|
Packit |
667938 |
YTicsFactor[myrouter]: 0.01
|
|
Packit |
667938 |
|
|
Packit |
667938 |
F?Fa?ac?ct?to?or?r
|
|
Packit |
667938 |
If you want to multiply all numbers shown below the graph with a
|
|
Packit |
667938 |
constant factor, use this directive to define it ..
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Factor[as400]: 4096
|
|
Packit |
667938 |
|
|
Packit |
667938 |
S?St?te?ep?p
|
|
Packit |
667938 |
Change the default step from 5 * 60 seconds to something else (I have
|
|
Packit |
667938 |
not tested this much ...)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Step[myrouter]: 60
|
|
Packit |
667938 |
|
|
Packit |
667938 |
P?PN?NG?GT?Ti?it?tl?le?e
|
|
Packit |
667938 |
When using rateup for graph generation, this will print the given title
|
|
Packit |
667938 |
in the graph it generates.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
PNGTitle[myrouter]: WAN Link UK-US
|
|
Packit |
667938 |
|
|
Packit |
667938 |
O?Op?pt?ti?io?on?ns?s
|
|
Packit |
667938 |
The _?O_?p_?t_?i_?o_?n_?s Keyword allows you to set some boolean switches:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
growright
|
|
Packit |
667938 |
The graph grows to the left by default. This option flips the
|
|
Packit |
667938 |
direction of growth causing the current time to be at the right
|
|
Packit |
667938 |
edge of the graph and the history values to the left of it.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
bits
|
|
Packit |
667938 |
All the monitored variable values are multiplied by 8 (i.e. shown
|
|
Packit |
667938 |
in bits instead of bytes) ... looks much more impressive :-) It
|
|
Packit |
667938 |
also affects the 'factory default' labeling and units for the given
|
|
Packit |
667938 |
target.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
perminute
|
|
Packit |
667938 |
All the monitored variable values are multiplied by 60 (i.e. shown
|
|
Packit |
667938 |
in units per minute instead of units per second) in case of small
|
|
Packit |
667938 |
values more accurate graphs are displayed. It also affects the
|
|
Packit |
667938 |
'factory default' labeling and units for the given target.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
perhour
|
|
Packit |
667938 |
All the monitored variable values are multiplied by 3600 (i.e.
|
|
Packit |
667938 |
shown in units per hour instead of units per second) in case of
|
|
Packit |
667938 |
small values more accurate graphs are displayed. It also affects
|
|
Packit |
667938 |
the 'factory default' labeling and units for the given target.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
noinfo
|
|
Packit |
667938 |
Suppress the information about uptime and device name in the
|
|
Packit |
667938 |
generated webpage.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
nopercent
|
|
Packit |
667938 |
Don't print usage percentages.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
transparent
|
|
Packit |
667938 |
Make the background of the generated gifs transparent.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
integer
|
|
Packit |
667938 |
Print summary lines below graph as integers without commas.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
dorelpercent
|
|
Packit |
667938 |
The relative percentage of IN-traffic to OUT-traffic is calculated
|
|
Packit |
667938 |
and displayed in the graph as an additional line. Note: Only a
|
|
Packit |
667938 |
fixed scale is available (from 0 to 100%). Therefore if IN-traffic
|
|
Packit |
667938 |
is greater than OUT-traffic then 100% is displayed. If you suspect
|
|
Packit |
667938 |
that your IN-traffic is not always less than or equal to your OUT-
|
|
Packit |
667938 |
traffic you are urged to not use this options. Note: If you use
|
|
Packit |
667938 |
this option in combination with the _?C_?o_?l_?o_?u_?r_?s options, a fifth
|
|
Packit |
667938 |
colour-name colour-value pair is required there.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
avgpeak
|
|
Packit |
667938 |
There are some ISPs who use the average Peak values to bill their
|
|
Packit |
667938 |
customers. Using this option MRTG displays these values for each
|
|
Packit |
667938 |
graph. The value is built by averaging the max 5 minute traffic
|
|
Packit |
667938 |
average for each 'step' shown in the graph. For the Weekly graph
|
|
Packit |
667938 |
this means that it builds the average of all 2 hour intervals 5
|
|
Packit |
667938 |
minute peak values. (Confused? Thought so!)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
gauge
|
|
Packit |
667938 |
Treat the values gathered from target as 'current status'
|
|
Packit |
667938 |
measurements and not as ever incrementing counters. This would be
|
|
Packit |
667938 |
useful to monitor things like disk space, processor load,
|
|
Packit |
667938 |
temperature, and the like ...
|
|
Packit |
667938 |
|
|
Packit |
667938 |
In the absence of 'gauge' or 'absolute' options, MRTG treats
|
|
Packit |
667938 |
variables as a counters and calculates the difference between the
|
|
Packit |
667938 |
current and the previous value and divides that by the elapsed time
|
|
Packit |
667938 |
between the last two readings to get the value to be plotted.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
absolute
|
|
Packit |
667938 |
This is for counter type data sources which reset their value when
|
|
Packit |
667938 |
they are read. This means that rateup does not have to build the
|
|
Packit |
667938 |
difference between the current and the last value read from the
|
|
Packit |
667938 |
data source. The value obtained is still divided by the elapsed
|
|
Packit |
667938 |
time between the current and the last reading, which makes it
|
|
Packit |
667938 |
different from the 'gauge' option. Useful for external data
|
|
Packit |
667938 |
gatherers.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
derive
|
|
Packit |
667938 |
If you are using rrdtool as logger/grapher you can use a third type
|
|
Packit |
667938 |
of data source. Derive is like counter, except that it is not
|
|
Packit |
667938 |
required to go UP all the time. It is useful for situations where
|
|
Packit |
667938 |
the change of some value should be graphed.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
unknaszero
|
|
Packit |
667938 |
Log unknown data as zero instead of the default behaviour of
|
|
Packit |
667938 |
repeating the last value seen. Be careful with this, often a flat
|
|
Packit |
667938 |
line in the graph is much more obvious than a line at 0.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
withzeroes
|
|
Packit |
667938 |
Normally we ignore all values which are zero when calculating the
|
|
Packit |
667938 |
average transfer rate on a line. If this is not desirable use this
|
|
Packit |
667938 |
option.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
noborder
|
|
Packit |
667938 |
If you are using rateup to log data, MRTG will create the graph
|
|
Packit |
667938 |
images. Normally these images have a shaded border around them. If
|
|
Packit |
667938 |
you do not want the border to be drawn, enable this option. This
|
|
Packit |
667938 |
option has no effect if you are not using rateup.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
noarrow
|
|
Packit |
667938 |
As with the option above, this effects rateup graph generation
|
|
Packit |
667938 |
only. Normally rateup will generate graphs with a small arrow
|
|
Packit |
667938 |
showing the direction of the data. If you do not want this arrow to
|
|
Packit |
667938 |
be drawn, enable this option. This option has no effect if you are
|
|
Packit |
667938 |
not using rateup.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
noi When using rateup for graph generation, you can use this option to
|
|
Packit |
667938 |
stop rateup drawing a graph for the 'I' or first variable. This
|
|
Packit |
667938 |
also removes entries for this variable in the HTML page MRTG
|
|
Packit |
667938 |
generates, and will remove the peaks for this variable if they are
|
|
Packit |
667938 |
enabled. This allows you to hide this data, or can be very useful
|
|
Packit |
667938 |
if you are only graphing one line of data rather than two. This
|
|
Packit |
667938 |
option is not destructive - any data received for the the variable
|
|
Packit |
667938 |
continued to be logged, it just isn't shown.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
noo Same as above, except relating to the 'O' or second variable.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
nobanner
|
|
Packit |
667938 |
When using rateup for graph generation, this option disables MRTG
|
|
Packit |
667938 |
adding the MRTG banner to the HTML pages it generates.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
nolegend
|
|
Packit |
667938 |
When using rateup for graph generation, this option will stop MRTG
|
|
Packit |
667938 |
from creating a legend at the bottom of the HTML pages it
|
|
Packit |
667938 |
generates.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
printrouter
|
|
Packit |
667938 |
When using rateup for graph generation, this option will print the
|
|
Packit |
667938 |
router name in the graph it generates. This option is overridden
|
|
Packit |
667938 |
by the value of PNGTitle if one is given
|
|
Packit |
667938 |
|
|
Packit |
667938 |
pngdate
|
|
Packit |
667938 |
When using rateup for graph generation, this option will print a
|
|
Packit |
667938 |
timestamp in the graph it generates, including a timezone if one is
|
|
Packit |
667938 |
specified by the 'Timezone' parameter. This is aequivalent to
|
|
Packit |
667938 |
setting TimeStrPost[x]: RU
|
|
Packit |
667938 |
|
|
Packit |
667938 |
logscale
|
|
Packit |
667938 |
The l?lo?og?gs?sc?ca?al?le?e option causes rateup to display the data with the Y
|
|
Packit |
667938 |
axis scaled logarithmically. Doing so allows the normal traffic to
|
|
Packit |
667938 |
occupy the majority of the vertical range, while still showing any
|
|
Packit |
667938 |
spikes at their full height.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
l?lo?og?gs?sc?ca?al?le?e displays all the available data and will always produce
|
|
Packit |
667938 |
well-behaved graphs. People often consider a logarithmically
|
|
Packit |
667938 |
scaled graph counterintuitive, however, and thus hard to interpret.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
expscale
|
|
Packit |
667938 |
The e?ex?xp?ps?sc?ca?al?le?e option causes rateup to display the data with the Y
|
|
Packit |
667938 |
axis scaled exponentially. Doing so emphasizes small changes at
|
|
Packit |
667938 |
the top of the scale; this can be useful when graphing values that
|
|
Packit |
667938 |
fluctuate by a small amount near the top of the scale, such as line
|
|
Packit |
667938 |
voltage.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
e?ex?xp?ps?sc?ca?al?le?e is essentially the inverse of l?lo?og?gs?sc?ca?al?le?e.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
secondmean
|
|
Packit |
667938 |
The s?se?ec?co?on?nd?dm?me?ea?an?n option sets the maximum value on the graph to the
|
|
Packit |
667938 |
mean of the data greater than the mean of all data. This produces
|
|
Packit |
667938 |
a graph that focuses more on the typical data, while clipping large
|
|
Packit |
667938 |
peaks.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Using s?se?ec?co?on?nd?dm?me?ea?an?n will give a more intutive linearly scaled graph,
|
|
Packit |
667938 |
but can result in a uselessly high or low scale in some rare
|
|
Packit |
667938 |
situations (specifically, when the data includes a large portion of
|
|
Packit |
667938 |
values far from the actual mean)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
If a target includes both l?lo?og?gs?sc?ca?al?le?e and s?se?ec?co?on?nd?dm?me?ea?an?n in the options,
|
|
Packit |
667938 |
the s?se?ec?co?on?nd?dm?me?ea?an?n takes precedence.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Options[myrouter]: growright, bits
|
|
Packit |
667938 |
|
|
Packit |
667938 |
k?ki?il?lo?o
|
|
Packit |
667938 |
Use this option to change the multiplier value for building prefixes.
|
|
Packit |
667938 |
Defaultvalue is 1000. This tag is for the special case that 1kB =
|
|
Packit |
667938 |
1024B, 1MB = 1024kB and so far.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
kilo[myrouter]: 1024
|
|
Packit |
667938 |
|
|
Packit |
667938 |
k?kM?MG?G
|
|
Packit |
667938 |
Change the default multiplier prefixes (,k,M,G,T,P). In the tag
|
|
Packit |
667938 |
_?S_?h_?o_?r_?t_?L_?e_?g_?e_?n_?d define only the basic units. Format: Comma separated list
|
|
Packit |
667938 |
of prefixed. Two consecutive commas or a comma at start or end of the
|
|
Packit |
667938 |
line gives no prefix on this item. If you do not want prefixes, just
|
|
Packit |
667938 |
put two consecutive commas. If you want to skip a magnitude select '-'
|
|
Packit |
667938 |
as value.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example: velocity in nm/s (nanometers per second) displayed in nm/h.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
ShortLegend[myrouter]: m/h
|
|
Packit |
667938 |
kMG[myrouter]: n,u,m,,k,M,G,T,P
|
|
Packit |
667938 |
options[myrouter]: perhour
|
|
Packit |
667938 |
|
|
Packit |
667938 |
C?Co?ol?lo?ou?ur?rs?s
|
|
Packit |
667938 |
The _?C_?o_?l_?o_?u_?r_?s tag allows you to override the default colour scheme.
|
|
Packit |
667938 |
Note: All 4 of the required colours must be specified here. The colour
|
|
Packit |
667938 |
name ('Colourx' below) is the legend name displayed, while the RGB
|
|
Packit |
667938 |
value is the real colour used for the display, both on the graph and in
|
|
Packit |
667938 |
the html doc.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Format is: Col1#RRGGBB,Col2#RRGGBB,Col3#RRGGBB,Col4#RRGGBB
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Important: If you use the _?d_?o_?r_?e_?l_?p_?e_?r_?c_?e_?n_?t options tag a fifth colour name
|
|
Packit |
667938 |
colour value pair is required:
|
|
Packit |
667938 |
Col1#RRGGBB,Col2#RRGGBB,Col3#RRGGBB,Col4#RRGGBB,Col5#RRGGBB
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Colour1
|
|
Packit |
667938 |
First variable (normally Input) on default graph.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Colour2
|
|
Packit |
667938 |
Second variable (normally Output) on default graph.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Colour3
|
|
Packit |
667938 |
Max first variable (input).
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Colour4
|
|
Packit |
667938 |
Max second variable (output).
|
|
Packit |
667938 |
|
|
Packit |
667938 |
RRGGBB
|
|
Packit |
667938 |
2 digit hex values for Red, Green and Blue.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Colours[myrouter]: GREEN#00eb0c,BLUE#1000ff,DARK GREEN#006600,VIOLET#ff00ff
|
|
Packit |
667938 |
|
|
Packit |
667938 |
B?Ba?ac?ck?kg?gr?ro?ou?un?nd?d
|
|
Packit |
667938 |
With the _?B_?a_?c_?k_?g_?r_?o_?u_?n_?d tag you can configure the background colour of the
|
|
Packit |
667938 |
generated HTML page.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Background[myrouter]: #a0a0a0a
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Y?YL?Le?eg?ge?en?nd?d,?, S?Sh?ho?or?rt?tL?Le?eg?ge?en?nd?d,?, L?Le?eg?ge?en?nd?d[?[1?12?23?34?4]?]
|
|
Packit |
667938 |
The following keywords allow you to override the text displayed for the
|
|
Packit |
667938 |
various legends of the graph and in the HTML document:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
YLegend
|
|
Packit |
667938 |
The Y-axis label of the graph. Note that a text which is too long
|
|
Packit |
667938 |
to fit in the graph will be silently ignored.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
ShortLegend
|
|
Packit |
667938 |
The units string (default 'b/s') used for Max, Average and Current
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Legend[1234IO]
|
|
Packit |
667938 |
The strings for the colour legend.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
YLegend[myrouter]: Bits per Second
|
|
Packit |
667938 |
ShortLegend[myrouter]: b/s
|
|
Packit |
667938 |
Legend1[myrouter]: Incoming Traffic in Bits per Second
|
|
Packit |
667938 |
Legend2[myrouter]: Outgoing Traffic in Bits per Second
|
|
Packit |
667938 |
Legend3[myrouter]: Maximal 5 Minute Incoming Traffic
|
|
Packit |
667938 |
Legend4[myrouter]: Maximal 5 Minute Outgoing Traffic
|
|
Packit |
667938 |
LegendI[myrouter]: In:
|
|
Packit |
667938 |
LegendO[myrouter]: Out:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note, if _?L_?e_?g_?e_?n_?d_?I or _?L_?e_?g_?e_?n_?d_?O are set to an empty string with
|
|
Packit |
667938 |
|
|
Packit |
667938 |
LegendO[myrouter]:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The corresponding line below the graph will not be printed at all.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Ti?im?me?ez?zo?on?ne?e
|
|
Packit |
667938 |
If you live in an international world, you might want to generate the
|
|
Packit |
667938 |
graphs in different timezones. This is set in the TZ variable. Under
|
|
Packit |
667938 |
certain operating systems like Solaris, this will provoke the localtime
|
|
Packit |
667938 |
call to give the time in the selected timezone.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Timezone[myrouter]: Japan
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The Timezone is the standard timezone of your system, ie Japan,
|
|
Packit |
667938 |
Hongkong, GMT, GMT+1 etc etc.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
W?We?ee?ek?kf?fo?or?rm?ma?at?t
|
|
Packit |
667938 |
By default, mrtg (actually rateup) uses the _?s_?t_?r_?f_?t_?i_?m_?e(3) '%V' option to
|
|
Packit |
667938 |
format week numbers in the monthly graphs. The exact semantics of this
|
|
Packit |
667938 |
format option vary between systems. If you find that the week numbers
|
|
Packit |
667938 |
are wrong, and your system's _?s_?t_?r_?f_?t_?i_?m_?e(3) routine supports it, you can
|
|
Packit |
667938 |
try another format option. The POSIX '%V' option correspond to the
|
|
Packit |
667938 |
widely used ISO 8601 week numbering standard. The week format
|
|
Packit |
667938 |
character should be specified as a single letter; either W, V, or U.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The UNIX version of rateup uses the libc implementation of strftime.
|
|
Packit |
667938 |
On Windows, the native strftime implementation does not know about %V.
|
|
Packit |
667938 |
So there we use a different implementation of strftime that does
|
|
Packit |
667938 |
support %V.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Weekformat[myrouter]: W
|
|
Packit |
667938 |
|
|
Packit |
667938 |
R?RR?RD?DR?Ro?ow?wC?Co?ou?un?nt?t
|
|
Packit |
667938 |
This affects the creation of new rrd files. By default rrds are created
|
|
Packit |
667938 |
to hold about 1 day's worth of high resolution data. (plus 1 week of 30
|
|
Packit |
667938 |
minute data, 2 months of 2 hour data and 2 years of 1 day data). With
|
|
Packit |
667938 |
this Keyword you can change the number of base interval entries
|
|
Packit |
667938 |
configured for new rrds as they get created. Note that you must take
|
|
Packit |
667938 |
the interval time into account.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
RRDRowCount[myrouter]: 1600
|
|
Packit |
667938 |
|
|
Packit |
667938 |
R?RR?RD?DR?Ro?ow?wC?Co?ou?un?nt?t3?30?0m?m
|
|
Packit |
667938 |
As per RRDRowCount, but for the RRA's -typically- used for 30 minute
|
|
Packit |
667938 |
data. Even so, you must still take the base interval into account.
|
|
Packit |
667938 |
Leaving out this keyword will force the old default of 800 rows.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
RRDRowCount30m[myrouter]: 800
|
|
Packit |
667938 |
|
|
Packit |
667938 |
R?RR?RD?DR?Ro?ow?wC?Co?ou?un?nt?t2?2h?h
|
|
Packit |
667938 |
As per RRDRowCount, but for the RRA's -typically- used for 2 hour data.
|
|
Packit |
667938 |
Even so, you must still take the base interval into account. Leaving
|
|
Packit |
667938 |
out this keyword will force the old default of 800 rows.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
RRDRowCount2h[myrouter]: 400
|
|
Packit |
667938 |
|
|
Packit |
667938 |
R?RR?RD?DR?Ro?ow?wC?Co?ou?un?nt?t1?1d?d
|
|
Packit |
667938 |
As per RRDRowCount, but for the RRA's -typically- used for 1 day data.
|
|
Packit |
667938 |
Even so, you must still take the base interval into account. Leaving
|
|
Packit |
667938 |
out this keyword will force the old default of 800 rows.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
RRDRowCount1d[myrouter]: 200
|
|
Packit |
667938 |
|
|
Packit |
667938 |
R?RR?RD?DH?HW?WR?RR?RA?As?s
|
|
Packit |
667938 |
Normally the RRDs created by MRTG will just contain the information
|
|
Packit |
667938 |
gathered directly from the respective target. With this option you can
|
|
Packit |
667938 |
tap into rrdtools advanced aberrant behaviour detection module based on
|
|
Packit |
667938 |
Holt-Winters forecasting. The RRDHWRRAs property specifies the Holt-
|
|
Packit |
667938 |
Winters RRAs as described in the rrdcreate manual page.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note, this setting will only affect newly created RRDs (targets).
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
RRDHWRRAs[myrouter]: RRA:HWPREDICT:1440:0.1:0.0035:288
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Ti?im?me?eS?St?tr?rP?Po?os?s
|
|
Packit |
667938 |
This defines placement of the timestamp string on the image. Possible
|
|
Packit |
667938 |
values are RU, LU, RL, LL (which stand, respectively, for RightUpper,
|
|
Packit |
667938 |
LeftUpper, RightLower and LeftLower corner) and NO (for no timestamp).
|
|
Packit |
667938 |
By default, no timestamp is placed on the image.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
TimeStrPos[myrouter]: RU
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Ti?im?me?eS?St?tr?rF?Fm?mt?t
|
|
Packit |
667938 |
Using this keyword you may specify format of the timestamp to be placed
|
|
Packit |
667938 |
on the image (if enabled by the TimeStrPos keyword). Specified string
|
|
Packit |
667938 |
will be used by the _?s_?t_?r_?f_?t_?i_?m_?e_?(_?) function - see _?s_?t_?r_?f_?t_?i_?m_?e(3) documentation
|
|
Packit |
667938 |
for conversion specifiers available on your system. Default format:
|
|
Packit |
667938 |
%Y-%m-%d %H:%M
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
TimeStrFmt[myrouter]: %H:%M:%S
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?TH?HR?RE?ES?SH?HO?OL?LD?D C?CH?HE?EC?CK?KI?IN?NG?G
|
|
Packit |
667938 |
Through its threshold checking functionality mrtg is able to detect
|
|
Packit |
667938 |
threshold problems for the various targets and can call external
|
|
Packit |
667938 |
scripts to handle those problems (e.g. send email or a page to an
|
|
Packit |
667938 |
administrator).
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Threshold checking is configured through the following parameters:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Th?hr?re?es?sh?hD?Di?ir?r (?(G?GL?LO?OB?BA?AL?L)?)
|
|
Packit |
667938 |
By defining ThreshDir to point to a writable directory, MRTG will only
|
|
Packit |
667938 |
alert you when a threshold boundary has been crossed.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
ThreshDir: /var/mrtg/thresh
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Th?hr?re?es?sh?hH?Hy?ys?st?t (?(G?GL?LO?OB?BA?AL?L)?)
|
|
Packit |
667938 |
If a threshold is broken, and you have a threshdir defined, then mrtg
|
|
Packit |
667938 |
will send mail once the threshold becomes 'unborken' to avoid
|
|
Packit |
667938 |
situations where broken and unbroken messages get sent in close
|
|
Packit |
667938 |
succession, we only send an unbroken message once the curent value is
|
|
Packit |
667938 |
0.1 (10%) away from the threshold. using the ThreshHyst config
|
|
Packit |
667938 |
variable you can customize this value.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example for 5%:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
ThreshHyst: 0.05
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Th?hr?re?es?sh?hM?Ma?ai?il?lS?Se?er?rv?ve?er?r (?(G?GL?LO?OB?BA?AL?L)?)
|
|
Packit |
667938 |
Adderss of an SMTP server which is going to accept mail about
|
|
Packit |
667938 |
Thresholds being broken and unbroken.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Th?hr?re?es?sh?hM?Ma?ai?il?lS?Se?en?nd?de?er?r (?(G?GL?LO?OB?BA?AL?L)?)
|
|
Packit |
667938 |
What is the sender address of the threshold mail.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
ThreshMailSender: mrtg@example.com
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Th?hr?re?es?sh?hM?Ma?ai?il?lA?Ad?dd?dr?re?es?ss?s (?(P?PE?ER?R T?TA?AR?RG?GE?ET?T)?)
|
|
Packit |
667938 |
Email address for Threshold related Mails. This will only work if a
|
|
Packit |
667938 |
mailserver has been configured.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
ThreshMailAddress[_]: admin@example.com
|
|
Packit |
667938 |
ThreshMailAddress[router]:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
This would bring threshold releaed mail to all but the target called
|
|
Packit |
667938 |
'router'.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Th?hr?re?es?sh?hM?Mi?in?nI?I (?(P?PE?ER?R T?TA?AR?RG?GE?ET?T)?)
|
|
Packit |
667938 |
This is the minimum acceptable value for the Input (first) parameter.
|
|
Packit |
667938 |
If the parameter falls below this value, the program specified in
|
|
Packit |
667938 |
ThreshProgI will be run and a mail will be sent to the
|
|
Packit |
667938 |
ThreshMailAddress if specified. If the value ends in '%' then the
|
|
Packit |
667938 |
threshold is defined relative to MaxBytes.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Th?hr?re?es?sh?hM?Ma?ax?xI?I (?(P?PE?ER?R T?TA?AR?RG?GE?ET?T)?)
|
|
Packit |
667938 |
Works the same as TheshMinI but it acts when the value is higher than
|
|
Packit |
667938 |
ThreshMaxI.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Th?hr?re?es?sh?hD?De?es?sc?c (?(P?PE?ER?R T?TA?AR?RG?GE?ET?T)?)
|
|
Packit |
667938 |
Its value will be assigned to the environment variable THRESH_DESC
|
|
Packit |
667938 |
before any of the programs mentioned below are called. The programs can
|
|
Packit |
667938 |
use the value of this variable to produce more user-friendly output.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Th?hr?re?es?sh?hP?Pr?ro?og?gI?I (?(P?PE?ER?R T?TA?AR?RG?GE?ET?T)?)
|
|
Packit |
667938 |
This defines a program to be run if ThreshMinI or ThreshMaxI is broken.
|
|
Packit |
667938 |
MRTG passes 3 arguments: the $router variable, the threshold value
|
|
Packit |
667938 |
broken, and the current parameter value.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Th?hr?re?es?sh?hP?Pr?ro?og?gO?OK?KI?I (?(P?PE?ER?R T?TA?AR?RG?GE?ET?T)?)
|
|
Packit |
667938 |
This defines a program to be run if the parameter is currently OK
|
|
Packit |
667938 |
(based on ThreshMinI and ThreshMaxI), but wasn't OK on the previous
|
|
Packit |
667938 |
running -- based on the files found in ThreshDir. MRTG passes 3
|
|
Packit |
667938 |
arguments: the $router variable the unbroken threshold value, and the
|
|
Packit |
667938 |
current parameter value.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
T?Th?hr?re?es?sh?hM?Mi?in?nO?O,?, T?Th?hr?re?es?sh?hM?Ma?ax?xO?O,?, T?Th?hr?re?es?sh?hP?Pr?ro?og?gO?O,?, a?an?nd?d T?Th?hr?re?es?sh?hP?Pr?ro?og?gO?OK?KO?O
|
|
Packit |
667938 |
These work the same as their *I counterparts, except on the Output
|
|
Packit |
667938 |
(second) parameter.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
S?Se?et?tE?En?nv?v
|
|
Packit |
667938 |
When calling threshold scripts from within your cfg file you might want
|
|
Packit |
667938 |
to pass some data on to the script. This can be done with the SetEnv
|
|
Packit |
667938 |
configuration option which takes a series of environment variable
|
|
Packit |
667938 |
assignments. Note that the quotes are mandatory. This does not work for
|
|
Packit |
667938 |
external scripts. It is not possible to set environment variables per
|
|
Packit |
667938 |
target.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
SetEnv[myrouter]: EMAIL="contact_email@someplace.net"
|
|
Packit |
667938 |
HOST="www.some_server.net"
|
|
Packit |
667938 |
|
|
Packit |
667938 |
H?HW?W F?Fa?ai?il?lu?ur?re?e B?Ba?as?ss?se?ed?d T?Th?hr?re?es?sh?ho?ol?ld?d C?Ch?he?ec?ck?ki?in?ng?g
|
|
Packit |
667938 |
When using rrd based logging with HW RRAs defined. You can use the
|
|
Packit |
667938 |
confidence bounds violations stored in the FAILURES RRA for threshold
|
|
Packit |
667938 |
based alerts.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
There the all target specific threshold variables have a Hold-Winters
|
|
Packit |
667938 |
counterpart:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
ThreshMailAddress -> HWThreshMailAddress
|
|
Packit |
667938 |
ThreshMinI -> HWThreshMinI
|
|
Packit |
667938 |
...
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The global variables for threshold checking are shared except for the
|
|
Packit |
667938 |
|
|
Packit |
667938 |
ThreshHyst -> HWThreshHyst
|
|
Packit |
667938 |
|
|
Packit |
667938 |
And HWThreshDesc sets the HWTHRESH_DESC variable.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
P?PE?ER?R T?TA?AR?RG?GE?ET?T D?DE?EF?FA?AU?UL?LT?T V?VA?AL?LU?UE?ES?S
|
|
Packit |
667938 |
P?Pr?re?e-?- a?an?nd?d P?Po?os?st?tf?fi?ix?x
|
|
Packit |
667938 |
To save yourself some typing you can define a target called '^'. The
|
|
Packit |
667938 |
text of every Keyword you define for this target will be PREPENDED to
|
|
Packit |
667938 |
the corresponding Keyword of all the targets defined below this line.
|
|
Packit |
667938 |
The same goes for a Target called '$' but its text will be APPENDED.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Note that a space is inserted between the prepended text and the
|
|
Packit |
667938 |
Keyword value, as well as between the Keyword value and the appended
|
|
Packit |
667938 |
text. This works well for text-valued Keywords, but is not very useful
|
|
Packit |
667938 |
for other Keywords. See the "default" target description below.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The example will make mrtg use a common header and a common contact
|
|
Packit |
667938 |
person in all the pages generated from targets defined later in this
|
|
Packit |
667938 |
file.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
PageTop[^]: NoWhere Unis Traffic Stats
|
|
Packit |
667938 |
PageTop[$]: Contact Peter Norton if you have any questions
|
|
Packit |
667938 |
|
|
Packit |
667938 |
To remove the prepend/append value, specify an empty value, e.g.:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
PageTop[^]:
|
|
Packit |
667938 |
PageTop[$]:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
N?No?oS?Sp?pa?ac?ce?eC?Ch?ha?ar?r
|
|
Packit |
667938 |
With PREPEND and APPEND (see below) there is normally a space inserted
|
|
Packit |
667938 |
between the local value and the PRE- or APPEND value. Sometimes this is
|
|
Packit |
667938 |
not desirable. You can use the global option _?N_?o_?S_?p_?a_?c_?e_?C_?h_?a_?r to define a
|
|
Packit |
667938 |
character which can be mentioned at the end of a $ or ^ definition in
|
|
Packit |
667938 |
order to supress the space.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
NoSpaceChar: ~
|
|
Packit |
667938 |
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@~
|
|
Packit |
667938 |
Target[a]: a.tolna.net
|
|
Packit |
667938 |
Target[b]: b.tolna.net
|
|
Packit |
667938 |
Target[c]: c.tolna.net
|
|
Packit |
667938 |
Target[d]: d.tolna.net
|
|
Packit |
667938 |
|
|
Packit |
667938 |
D?De?ef?fa?au?ul?lt?t V?Va?al?lu?ue?es?s
|
|
Packit |
667938 |
The target name '_' specifies a default value for that Keyword. In the
|
|
Packit |
667938 |
absence of explicit Keyword value, the prepended and the appended
|
|
Packit |
667938 |
keyword value, the default value will be used.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
YSize[_]: 150
|
|
Packit |
667938 |
Options[_]: growright,bits,nopercent
|
|
Packit |
667938 |
WithPeak[_]: ymw
|
|
Packit |
667938 |
Suppress[_]: y
|
|
Packit |
667938 |
MaxBytes[_]: 1250000
|
|
Packit |
667938 |
|
|
Packit |
667938 |
To remove the default value and return to the 'factory default',
|
|
Packit |
667938 |
specify an empty value, e.g.:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
YLegend[_]:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
There can be several instances of setting the default/prepend/append
|
|
Packit |
667938 |
values in the configuration file. The later setting replaces the
|
|
Packit |
667938 |
previous one for the rest of the configuration file. The
|
|
Packit |
667938 |
default/prepend/append values used for a given keyword/target pair are
|
|
Packit |
667938 |
the ones that were in effect at the point in the configuration file
|
|
Packit |
667938 |
where the target was mentioned for the first time.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
MaxBytes[_]: 1250000
|
|
Packit |
667938 |
Target[myrouter.somplace.edu.2]: 2:public@myrouter.somplace.edu
|
|
Packit |
667938 |
MaxBytes[_]: 8000
|
|
Packit |
667938 |
Title[myrouter.somplace.edu.2]: Traffic Analysis for myrouter.somplace.edu IF 2
|
|
Packit |
667938 |
|
|
Packit |
667938 |
The default _?M_?a_?x_?B_?y_?t_?e_?s for the target myrouter.someplace.edu.2 in the
|
|
Packit |
667938 |
above example will be 1250000, which was in effect where the target
|
|
Packit |
667938 |
name myrouter.someplace.edu.2 first appeared in the config file.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
C?CO?OM?MM?MA?AN?ND?D L?LI?IN?NE?E O?OP?PT?TI?IO?ON?NS?S
|
|
Packit |
667938 |
-?--?-u?us?se?er?r _?u_?s_?e_?r_?n_?a_?m_?e and -?--?-g?gr?ro?ou?up?p _?g_?r_?o_?u_?p_?n_?a_?m_?e
|
|
Packit |
667938 |
Run as the given user and/or group. (Unix Only)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
-?--?-l?lo?oc?ck?k-?-f?fi?il?le?e _?f_?i_?l_?e_?n_?a_?m_?e
|
|
Packit |
667938 |
Use an alternate lock-file (the default is to use the
|
|
Packit |
667938 |
configuration-file appended with "_l").
|
|
Packit |
667938 |
|
|
Packit |
667938 |
-?--?-c?co?on?nf?fc?ca?ac?ch?he?e-?-f?fi?il?le?e _?f_?i_?l_?e_?n_?a_?m_?e
|
|
Packit |
667938 |
Use an alternate confcache-file (the default is to use the
|
|
Packit |
667938 |
configuration-file appended with ".ok")
|
|
Packit |
667938 |
|
|
Packit |
667938 |
-?--?-l?lo?og?gg?gi?in?ng?g _?f_?i_?l_?e_?n_?a_?m_?e|e?ev?ve?en?nt?tl?lo?og?g
|
|
Packit |
667938 |
If this is set to writable filename, all output from mrtg
|
|
Packit |
667938 |
(warnings, debug messages, errors) will go to _?f_?i_?l_?e_?n_?a_?m_?e. If you are
|
|
Packit |
667938 |
running on Win32 you can specify e?ev?ve?en?nt?tl?lo?og?g instead of a filename
|
|
Packit |
667938 |
which will send all error to the windows event log.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
N?NO?OT?TE?E:?: Note, there is no Message DLL for mrtg included with mrtg.
|
|
Packit |
667938 |
This has the side effect that the windows event logger will display
|
|
Packit |
667938 |
a nice message with every entry in the event log, complaing about
|
|
Packit |
667938 |
the fact that mrtg has no message dll. If you go to the mrtg
|
|
Packit |
667938 |
contrib download area (on the website) you will find the
|
|
Packit |
667938 |
mrtg-message-dll.zip which does contain such a thing.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
-?--?-d?da?ae?em?mo?on?n
|
|
Packit |
667938 |
Put MRTG into the background, running as a daemon. This works the
|
|
Packit |
667938 |
same way as the config file option, but the switch is required for
|
|
Packit |
667938 |
proper FHS operation (because /var/run is writable only by root)
|
|
Packit |
667938 |
|
|
Packit |
667938 |
-?--?-f?fh?hs?s
|
|
Packit |
667938 |
Configure all mrtg paths to conform to the FHS specification;
|
|
Packit |
667938 |
http://www.pathname.com/fhs/
|
|
Packit |
667938 |
|
|
Packit |
667938 |
-?--?-c?ch?he?ec?ck?k
|
|
Packit |
667938 |
Only check the cfg file for errors. Do not do anything.
|
|
Packit |
667938 |
|
|
Packit |
667938 |
-?--?-p?pi?id?d-?-f?fi?il?le?e=?=s?s
|
|
Packit |
667938 |
Define the name and path of the pid file for mrtg running as a
|
|
Packit |
667938 |
daemon
|
|
Packit |
667938 |
|
|
Packit |
667938 |
-?--?-d?de?eb?bu?ug?g=?=s?s
|
|
Packit |
667938 |
Enable debug options. The argument of the debug option is a comma
|
|
Packit |
667938 |
separated list of debug values:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
cfg - watch the config file reading
|
|
Packit |
667938 |
dir - directory mangeling
|
|
Packit |
667938 |
base - basic program flow
|
|
Packit |
667938 |
tarp - target parser
|
|
Packit |
667938 |
snpo - snmp polling
|
|
Packit |
667938 |
coca - confcache operations
|
|
Packit |
667938 |
fork - forking view
|
|
Packit |
667938 |
time - some timing info
|
|
Packit |
667938 |
log - logging of data via rateup or rrdtool
|
|
Packit |
667938 |
eval - print eval strings before evaluting them
|
|
Packit |
667938 |
prof - add hires timing info the rrd calls
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Example:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
--debug="cfg,snpo"
|
|
Packit |
667938 |
|
|
Packit |
667938 |
E?EX?XI?IT?T C?CO?OD?DE?ES?S
|
|
Packit |
667938 |
An exit code of 0 indicates that all targets were successful.
|
|
Packit |
667938 |
Generally speaking, most codes greater than 0 indicate that there was
|
|
Packit |
667938 |
an unrecoverable problem. One exception to this is code 91, which
|
|
Packit |
667938 |
indicates that at least one of the targets was successful. A partial
|
|
Packit |
667938 |
listing of the codes follows:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
0: All targets sucessful
|
|
Packit |
667938 |
|
|
Packit |
667938 |
2: Config error (can't read, fatal error in config, etc)
|
|
Packit |
667938 |
17: Another MRTG process is processing config
|
|
Packit |
667938 |
|
|
Packit |
667938 |
91: At least one target sucessful
|
|
Packit |
667938 |
92: No targets were sucessful
|
|
Packit |
667938 |
|
|
Packit |
667938 |
E?EX?XA?AM?MP?PL?LE?ES?S
|
|
Packit |
667938 |
M?Mi?in?ni?im?ma?al?l m?mr?rt?tg?g.?.c?cf?fg?g
|
|
Packit |
667938 |
WorkDir: /usr/tardis/pub/www/stats/mrtg
|
|
Packit |
667938 |
Target[r1]: 2:public@myrouter.somplace.edu
|
|
Packit |
667938 |
MaxBytes[r1]: 8000
|
|
Packit |
667938 |
Title[r1]: Traffic Analysis ISDN
|
|
Packit |
667938 |
PageTop[r1]: Stats for our ISDN Line
|
|
Packit |
667938 |
|
|
Packit |
667938 |
C?Cf?fg?g f?fo?or?r s?se?ev?ve?er?ra?al?l R?Ro?ou?ut?te?er?rs?s.?.
|
|
Packit |
667938 |
WorkDir: /usr/tardis/pub/www/stats/mrtg
|
|
Packit |
667938 |
Title[^]: Traffic Analysis for
|
|
Packit |
667938 |
PageTop[^]: Stats for
|
|
Packit |
667938 |
PageTop[$]: Contact The Chief if you notice anybody
|
|
Packit |
667938 |
MaxBytes[_]: 8000
|
|
Packit |
667938 |
Options[_]: growright
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Title[isdn]: our ISDN Line
|
|
Packit |
667938 |
PageTop[isdn]: our ISDN Line
|
|
Packit |
667938 |
Target[isdn]: 2:public@router.somplace.edu
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Title[backb]: our Campus Backbone
|
|
Packit |
667938 |
PageTop[backb]: our Campus Backbone
|
|
Packit |
667938 |
Target[backb]: 1:public@router.somplace.edu
|
|
Packit |
667938 |
MaxBytes[backb]: 1250000
|
|
Packit |
667938 |
|
|
Packit |
667938 |
# the following line removes the default prepend value
|
|
Packit |
667938 |
# defined above
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Title[^]:
|
|
Packit |
667938 |
|
|
Packit |
667938 |
Title[isdn2]: Traffic for the Backup ISDN Line
|
|
Packit |
667938 |
PageTop[isdn2]: our ISDN Line
|
|
Packit |
667938 |
Target[isdn2]: 3:public@router.somplace.edu
|
|
Packit |
667938 |
|
|
Packit |
667938 |
A?AU?UT?TH?HO?OR?R
|
|
Packit |
667938 |
Tobias Oetiker <tobi@oetiker.ch> and many contributors
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
|
|
Packit |
667938 |
2.17.7 2018-07-13 MRTG-REFERENCE(1)
|