Multi Router Traffic Grapher -- Configuration File Format
    This file is for use with mrtg-2.0

    Note:

    *   Keywords must start at the begin of a line.

    *   Lines which follow a keyword line which do start with a blank
        are appended to the keyword line

    *   Empty Lines are ignored

    *   Lines starting with a # sign are comments.

Global Configuration
    Workdir specifies where the logfiles and the webpages should be
    created.

    Example:

     WorkDir: /usr/tardis/pub/www/stats/mrtg

Optional Global Parameters
  Refresh

    How many seconds apart should the browser (Netscape) be
    instructed to reload the page? If this is not defined, the
    default is 300 seconds (5 minutes).

    Example:

     Refresh: 600

  Interval

    How often do you call mrtg? The default is 5 minutes. If you
    call it less often, you should specify it here. This does two
    things:

    *   the generated HTML page does contain the right information about
        the calling interval ...

    *   a META header in the generated HTML page will instruct caches
        about the time to live of this page .....

    In this example we tell mrtg that we will be calling it every 10
    minutes. If you are calling mrtg every 5 minutes, you can leave
    this line commented out.

    Example:

     Interval: 10

  WriteExpires

    With this switch mrtg will generate .meta files for CERN and
    Apache servers which contain Expiration tags for the html and
    gif files. The *.meta files will be created in the same
    directory as the other files, so you might have to set "MetaDir
    ." in your srm.conf file for this to work

    NOTE: If you are running Apache-1.2 you can use the mod_expire
    to achieve the same effect ... see the file htaccess-dist

    Example:

     WriteExpires: Yes

  IconDir

    If you want to keep the mrtg icons in some place other than the
    working directory, use the IconDir varibale to give its url.

    Example:

     IconDir: /mrtgicons/

Configuration for each Target you want to monitor
    The configuration keywords "Target" must be followed by a unique
    name. This will also be the name used for the webpages, logfiles
    and gifs created for that target.

    Note that the "Target" sections can be auto-generated with the
    cfgmaker tool. Check readme.html for instructions.

  Target

    With the "Target" keyword you tell mrtg what it should monitor.
    The "Target" keyword takes arguments in a wide range of formats:

    *   The most basic format is "port:community@router" This will
        generate a traffic graph for port 'port' of the router
        'router' and it will use the community 'community' for the
        snmp query.

        Example:

         Target[ezwf]: 2:public@wellfleet-fddi.ethz.ch

    *   Sometimes you are sitting on the wrong side of the link. And you
        would like to have mrtg report Incoming traffic as outgoing
        and visa versa. This can be achieved by adding the '-' sign
        in front of the "Target" description. It flips the in and
        outgoing traffic rates.

        Example:

         Target[ezci]: -1:public@ezci-ether.ethz.ch

    *   You can also explicitly define the OID to query by using the
        following syntax 'OID_1&OID_2:community@router' The
        following example will retrieve error input and output
        octets/sec on interface 1. MRTG needs to graph two values,
        so you need to specify two OID's such as temperature and
        humidity or error input and error output.

        Example:

         Target[ezwf]: 1.3.6.1.2.1.2.2.1.14.1&1.3.6.1.2.1.2.2.1.20.1:public@myrouter

    *   mrtg knows a number of symbolical SNMP variable names. See the
        file mibhelp.txt for a list of known names. One example are
        the ifInErrors and and ifOutErrors names. This means you can
        specify the above as:

        Example:

         Target[ezwf]: ifInErrors.1&ifOutErrors.1:public@myrouter

    *   if you want to monitor something which does not provide data via
        snmp you can use some external program to do the data
        gathering.

        The external command must return 4 lines of output:

    Line 1      current state of the 'incoming bytes counter'

    Line 2      current state of the 'outgoing bytes counter'

    Line 3      string, telling the uptime of the target.

    Line 4      string, telling the name of the target.

        Depending on the type of data your script returns you might
        want to use the 'gauge' or 'absolute' arguments for the
        "Options" keyword.

        Example:

         Target[ezwf]: `/usr/local/bin/df2mrtg /dev/dsk/c0t2d0s0`

    *   You can also use several statements in a mathematical
        expression. This could be used to aggregate both B channels
        in an ISDN connection or multiple T1's that are aggregated
        into a single channel for greater bandwidth. Note the
        whitespace arround the target definitions.

        Example:

         Target[ezwf]: 2:public@wellfleetA + 1:public@wellfleetA
                      * 4:public@ciscoF

  RouterUptime

    In cases where you calculate the used bandwidth from several
    interfaces you normaly don't get the routeruptime and routername
    displayed on the web page.

    If this interface are on the same router and the uptime and name
    should be displayed nevertheless you have to specify its
    community and address again with the RouterUptime keyword.

    Example:

     Target[kacisco]: 1:public@194.64.66.250 + 2:public@194.64.66.250
     RouterUptime[kacisco]: public@194.64.66.250

  MaxBytes

    How many bytes per second can this port carry. Since most links
    are rated in bits per second, you need to divide their maximum
    bandwidth (in bits) by eight (8) in order to get bytes per
    second. This is very important to make your unscaled graphs
    display realistic information. T1 = 193000, 56K = 7000, Ethernet
    = 1250000. The "MaxBytes" value will be used by mrtg to decide
    whether it got a valid response from the router. If a number
    higher than "MaxBytes" is returned, it is ignored. Also read the
    section on AbsMax for further info.

    Example:

     MaxBytes[ezwf]: 1250000

  Title

    Title for the HTML page which gets generated for the graph.

    Example:

     Title[ezwf]: Traffic Analysis for Arnes

  PageTop

    Things to add to the top of the generated HTML page. Note that
    you can have several lines of text as long as the first column
    is empty.

    Note that the continuation lines will all end up on the same
    line in the html page. If you want linebreaks in the generated
    html use the '\n' sequence.

    Example:

     PageTop[ezwf]: <H1>Traffic Analysis for ETZ C95.1</H1>
      Our Campus Backbone runs over an FDDI line\n
      with a maximum transfer rate of 12.5 Mega Bytes per
      Second.

Optional Target Configuration Tags
  AddHead

    Use this tag like the PageTop header, but its contents will be
    added between </TITLE> and </HEAD>.

    Example:

     AddHead[ezwf]: <!-- Just a comment for fun -->

  AbsMax

    If you are monitoring a link which can handle more traffic than
    the MaxBytes value. Eg, a line which uses compression or some
    frame relay link, you can use the AbsMax keyword to give the
    absolute maximum value ever to be reached. We need to know this
    in order to sort out unrealistic values returned by the routers.
    If you do not set absmax, rateup will ignore values higher then
    MaxBytes.

    Example:

     AbsMax[ezwf]: 2500000

  Unscaled

    By default each graph is scaled vertically to make the actual
    data visible even when it is much lower than MaxBytes. With the
    "Unscaled" variable you can supress this. It's argument is a
    string, containing one letter for each graph you don't want to
    be scaled: d=day w=week m=month y=year. In the example I supress
    scaling for the yearly and the monthly graph.

    Example:

     Unscaled[ezwf]: ym

  WithPeak

    By default the graphs only contain the average transfer rates
    for incoming and outgoing traffic. The following option
    instructs mrtg to display the peak 5 minute transfer rates in
    the [w]eekly, [m]onthly and [y]early graph. In the example we
    define the monthly and the yearly graph to contain peak as well
    as average values.

    Examples:

     WithPeak[ezwf]: ym

  Supress

    By Default mrtg produces 4 graphs. With this option you can
    supress the generation of selected graphs. The format is analog
    to the above option. In this example we supress the yearly graph
    as it is quite empty in the beginning.

    Example:

     Supress[ezwf]: y

  Directory

    By default, mrtg puts all the files that it generates for each
    router (the GIFs, the HTML page, the log file, etc.) in WorkDir.

    If the "Directory" option is specified, the files are instead
    put into a directory under WorkDir. (For example, given the
    options in this mrtg.cfg-dist file, the "Directory" option below
    would cause all the ezwf files to be put into
    /usr/tardis/pub/www/stats/mrtg/ezwf .)

    The directory must already exist; mrtg will not create it.

    Example:

     Directory[ezwf]: ezwf

  XSize and YSize

    By Default mrtgs graphs are 100 by 400 pixels wide (plus some
    more for the labels. In the example we get almost square graphs
    ...

    Note: XSize must be between 20 and 600 YSize must be larger than
    20

    Example:

     XSize[ezwf]: 300
     YSize[ezwf]: 300

  XZoom YZoom

    If you want your graphs to have larger pixels, you can "Zoom"
    them.

    Example:

     XZoom[ezwf]: 2.0
     YZoom[ezwf]: 2.0

  XScale YScale

    If you want your graphs to be actually scaled use XScale and
    YScale. (Beware while this works, the results look ugly (to be
    frank) so if someone wants fix this: patches are welcome.

    Example:

     XScale[ezwf]: 1.5
     YScale[ezwf]: 1.5

  Step

    Change the default step with from 5 * 60 seconds to something
    else (I have not tested this well ...)

    Example:

     Step[ezwf]: 60

  Options

    The "Options" Keyword allows you to set some boolean switches:

    growright
        The graph grows to the left by default.

    bits
        All the numbers printed are in bits instead of bytes ...
        looks much more impressive :-)

    noinfo
        Supress the information about uptime and device name in the
        generated webpage.

    absolute
        This is for data sources which reset their value when they
        are read. This means that rateup has not to build the
        difference between this and the last value read from the
        data source. Useful for external data gatherers.

    gauge
        Treat the values gathered from target as absolute and not as
        counters. This would be useful to monitor things like
        diskspace, load and so on ....

    nopercent
        Don't print usage percentages

    Example:

     Options[ezwf]: growright, bits

  Colours

    The "Colours" tag allows you to override the default colour
    scheme. Note: All 4 of the required colours must be specified
    here The colour name ('Colourx' below) is the legend name
    displayed, while the RGB value is the real colour used for the
    display, both on the graph and n the html doc.

    Format is:
    Colour1#RRGGBB,Colour2#RRGGBB,Colour3#RRGGBB,Colour4#RRGGBB

    Colour1
        Input on default graph

    Colour2
        Output on default graph

    Colour3
        Max input

    Colour4
        Max output

    RRGGBB
        2 digit hex values for Red, Green and Blue

    Example:

     Colours[ezwf]: GREEN#00eb0c,BLUE#1000ff,DARK GREEN#006600,VIOLET#ff00ff

  Background

    With the "Background" tag you can configure the background
    colour of the generated HTML page

    Example:

     Background[ezwf]: #a0a0a0a

  YLegend, ShortLegend, Legend[1234]

    The following keywords allow you to override the text displayed
    for the various legends of the graph and in the HTML document

    YLegend
        The Y-Axis of the graph

    ShortLegend
        The 'b/s' string used for Max, Average and Current

    Legend[1234IO]
        The strings for the colour legend

    Example:

      YLegend[ezwf]: Bits per Second
      ShortLegend[ezwf]: b/s
      Legend1[ezwf]: Incoming Traffic in Bits per Second
      Legend2[ezwf]: Outgoing Traffic in Bits per Second
      Legend3[ezwf]: Maximal 5 Minute Incoming Traffic
      Legend4[ezwf]: Maximal 5 Minute Outgoing Traffic
      LegendI[ezwf]: &nbsp;In:
      LegendO[ezwf]: &nbsp;Out:

    Note, if LegendI or LegendO are set to an empty string with

     LegendO[ezwf]:

    The corresponding line below the graph will not be printed at
    all.

  Timezone

    If you live in an international world, you might want to
    generate the graphs in different timezones. This is set in the
    TZ variable. Under certain operating systems like Solaris, this
    will provoke the localtime call to give the time in the selected
    timezone ...

    Example:

     Timezone[ezwf]: Japan

    The Timezone is the standard Solaris timezone, ie Japan,
    Hongkong, GMT, GMT+1 etc etc.

  Weekformat

    By default, mrtg (actually rateup) uses the strftime(3) '%W'
    option to format week numbers in the monthly graphs. The exact
    semantics of this format option vary between systems. If you
    find that the week numbers are wrong, and your system's
    strftime(3) routine supports it, you can try another format
    option. The POSIX '%V' option seems to correspond to a widely
    used week numbering convention. The week format character should
    be specified as a single letter; either W, V, or U.

    Example:

     Weekformat[ezwf]: V

Two very special Target names
    To save yourself some typing you can define a target called '^'.
    The text of every Keyword you define for this target will be
    PREPENDED to the corresponding Keyword of all the targets
    defined below this line. The same goes for a Target called '$'
    but its options will be APPENDED.

    The example will make mrtg use a common header and a common
    contact person in all the pages generated from targets defined
    later in this file.

    Example:

     PageTop[^]: <H1>NoWhere Unis Traffic Stats</H1><HR>
     PageTop[$]: Contact Peter Norton if you have any questions<HR>

Some example mrtg.cfg files
  Minimal mrtg.cfg

     WorkDir: /usr/tardis/pub/www/stats/mrtg
     Target[r1]: 2:public@myrouter.somplace.edu
     MaxBytes[r1]: 64000
     Title[r1]: Traffic Analysis ISDN
     PageTop[r1]: <H1>Stats for our ISDN Line</H1>

  Minimal Cfg for several Routers.

     WorkDir: /usr/tardis/pub/www/stats/mrtg
     Title[^]: Traffic Analysis for
     PageTop[^]: <H1>Stats for our
     PageTop[$]: Contact The Chief if you notice anybody<HR>

     Title[isdn]: our ISDN Line
     PageTop[isdn]: our ISDN Line </H1>
     Target[isdn]: 2:public@router.somplace.edu
     MaxBytes[isdn]: 64000
     
     Title[backb]: our Campus Backbone
     PageTop[backb]: our Campus Backbone </H1>
     Target[backb]: 1:public@router.somplace.edu
     MaxBytes[backb]: 1250000

     # the following line removes the default prepend value
     # defined above

     Title[^]:
     Title[isdn2]: Traffic for the Backup ISDN Line
     PageTop[isdn2]: our ISDN Line </H1>
     Target[isdn2]: 3:public@router.somplace.edu
     MaxBytes[isdn2]: 64000

