Blame doc/mrtg-faq.1

Packit 667938
.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29)
Packit 667938
.\"
Packit 667938
.\" Standard preamble:
Packit 667938
.\" ========================================================================
Packit 667938
.de Sp \" Vertical space (when we can't use .PP)
Packit 667938
.if t .sp .5v
Packit 667938
.if n .sp
Packit 667938
..
Packit 667938
.de Vb \" Begin verbatim text
Packit 667938
.ft CW
Packit 667938
.nf
Packit 667938
.ne \\$1
Packit 667938
..
Packit 667938
.de Ve \" End verbatim text
Packit 667938
.ft R
Packit 667938
.fi
Packit 667938
..
Packit 667938
.\" Set up some character translations and predefined strings.  \*(-- will
Packit 667938
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
Packit 667938
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
Packit 667938
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
Packit 667938
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
Packit 667938
.\" nothing in troff, for use with C<>.
Packit 667938
.tr \(*W-
Packit 667938
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
Packit 667938
.ie n \{\
Packit 667938
.    ds -- \(*W-
Packit 667938
.    ds PI pi
Packit 667938
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
Packit 667938
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
Packit 667938
.    ds L" ""
Packit 667938
.    ds R" ""
Packit 667938
.    ds C` ""
Packit 667938
.    ds C' ""
Packit 667938
'br\}
Packit 667938
.el\{\
Packit 667938
.    ds -- \|\(em\|
Packit 667938
.    ds PI \(*p
Packit 667938
.    ds L" ``
Packit 667938
.    ds R" ''
Packit 667938
.    ds C`
Packit 667938
.    ds C'
Packit 667938
'br\}
Packit 667938
.\"
Packit 667938
.\" Escape single quotes in literal strings from groff's Unicode transform.
Packit 667938
.ie \n(.g .ds Aq \(aq
Packit 667938
.el       .ds Aq '
Packit 667938
.\"
Packit 667938
.\" If the F register is turned on, we'll generate index entries on stderr for
Packit 667938
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
Packit 667938
.\" entries marked with X<> in POD.  Of course, you'll have to process the
Packit 667938
.\" output yourself in some meaningful fashion.
Packit 667938
.\"
Packit 667938
.\" Avoid warning from groff about undefined register 'F'.
Packit 667938
.de IX
Packit 667938
..
Packit 667938
.nr rF 0
Packit 667938
.if \n(.g .if rF .nr rF 1
Packit 667938
.if (\n(rF:(\n(.g==0)) \{
Packit 667938
.    if \nF \{
Packit 667938
.        de IX
Packit 667938
.        tm Index:\\$1\t\\n%\t"\\$2"
Packit 667938
..
Packit 667938
.        if !\nF==2 \{
Packit 667938
.            nr % 0
Packit 667938
.            nr F 2
Packit 667938
.        \}
Packit 667938
.    \}
Packit 667938
.\}
Packit 667938
.rr rF
Packit 667938
.\"
Packit 667938
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
Packit 667938
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
Packit 667938
.    \" fudge factors for nroff and troff
Packit 667938
.if n \{\
Packit 667938
.    ds #H 0
Packit 667938
.    ds #V .8m
Packit 667938
.    ds #F .3m
Packit 667938
.    ds #[ \f1
Packit 667938
.    ds #] \fP
Packit 667938
.\}
Packit 667938
.if t \{\
Packit 667938
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
Packit 667938
.    ds #V .6m
Packit 667938
.    ds #F 0
Packit 667938
.    ds #[ \&
Packit 667938
.    ds #] \&
Packit 667938
.\}
Packit 667938
.    \" simple accents for nroff and troff
Packit 667938
.if n \{\
Packit 667938
.    ds ' \&
Packit 667938
.    ds ` \&
Packit 667938
.    ds ^ \&
Packit 667938
.    ds , \&
Packit 667938
.    ds ~ ~
Packit 667938
.    ds /
Packit 667938
.\}
Packit 667938
.if t \{\
Packit 667938
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
Packit 667938
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
Packit 667938
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
Packit 667938
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
Packit 667938
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
Packit 667938
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
Packit 667938
.\}
Packit 667938
.    \" troff and (daisy-wheel) nroff accents
Packit 667938
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
Packit 667938
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
Packit 667938
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
Packit 667938
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
Packit 667938
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
Packit 667938
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
Packit 667938
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
Packit 667938
.ds ae a\h'-(\w'a'u*4/10)'e
Packit 667938
.ds Ae A\h'-(\w'A'u*4/10)'E
Packit 667938
.    \" corrections for vroff
Packit 667938
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
Packit 667938
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
Packit 667938
.    \" for low resolution devices (crt and lpr)
Packit 667938
.if \n(.H>23 .if \n(.V>19 \
Packit 667938
\{\
Packit 667938
.    ds : e
Packit 667938
.    ds 8 ss
Packit 667938
.    ds o a
Packit 667938
.    ds d- d\h'-1'\(ga
Packit 667938
.    ds D- D\h'-1'\(hy
Packit 667938
.    ds th \o'bp'
Packit 667938
.    ds Th \o'LP'
Packit 667938
.    ds ae ae
Packit 667938
.    ds Ae AE
Packit 667938
.\}
Packit 667938
.rm #[ #] #H #V #F C
Packit 667938
.\" ========================================================================
Packit 667938
.\"
Packit 667938
.IX Title "MRTG-FAQ 1"
Packit 667938
.TH MRTG-FAQ 1 "2018-07-13" "2.17.7" "mrtg"
Packit 667938
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
Packit 667938
.\" way too many mistakes in technical documents.
Packit 667938
.if n .ad l
Packit 667938
.nh
Packit 667938
.SH "NAME"
Packit 667938
mrtg\-faq \- How to get help if you have problems with MRTG
Packit 667938
.SH "SYNOPSIS"
Packit 667938
.IX Header "SYNOPSIS"
Packit 667938
\&\s-1MRTG\s0 seems to raise a lot of questions. There are a number of resources
Packit 667938
apart from the documentation where you can find help for mrtg.
Packit 667938
.SH "FAQ"
Packit 667938
.IX Header "FAQ"
Packit 667938
In the following sections you'll find some additonal Frequently Asked Questions, with Answers.
Packit 667938
.ie n .SS "Why is there no ""@#$%"" (my native language) version of \s-1MRTG\s0?"
Packit 667938
.el .SS "Why is there no ``@#$%'' (my native language) version of \s-1MRTG\s0?"
Packit 667938
.IX Subsection "Why is there no @#$% (my native language) version of MRTG?"
Packit 667938
Nobody has contributed a \fI@#$%.pmd\fR file yet. Go into the
Packit 667938
\&\fImrtg\-2.17.7/translate\fR directory and create your own translation file.
Packit 667938
When you are happy with it send it to me for inclusion with the next mrtg
Packit 667938
release.
Packit 667938
.SS "I need a script to make mrtg work with my xyz device."
Packit 667938
.IX Subsection "I need a script to make mrtg work with my xyz device."
Packit 667938
Probably this has already been done. Check the stuff in the
Packit 667938
\&\fImrtg\-2.17.7/contrib\fR directory. There is a file called \fI00INDEX\fR in
Packit 667938
that directory which tells what you can find in there.
Packit 667938
.SS "How does this \s-1SNMP\s0 thing work"
Packit 667938
.IX Subsection "How does this SNMP thing work"
Packit 667938
There are many resources on the net that explain \s-1SNMP.\s0
Packit 667938
Take a look at this article from the Linux Journal by David Guerrero
Packit 667938
.PP
Packit 667938
.Vb 1
Packit 667938
\& http://www.david\-guerrero.com/papers/snmp/
Packit 667938
.Ve
Packit 667938
.PP
Packit 667938
And at this rather long document from \s-1CISCO.\s0
Packit 667938
.PP
Packit 667938
.Vb 1
Packit 667938
\& http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/snmp.htm
Packit 667938
.Ve
Packit 667938
.SS "The images created by \s-1MRTG\s0 look very strange."
Packit 667938
.IX Subsection "The images created by MRTG look very strange."
Packit 667938
Remove the *\-{week,day,month,year}.png files and start \s-1MRTG\s0
Packit 667938
again.  Using \s-1MRTG\s0 for the first time, you might have to do this
Packit 667938
twice. This will also help when you introduce new routers into the cfg
Packit 667938
file.
Packit 667938
.SS "What is my Community Name?"
Packit 667938
.IX Subsection "What is my Community Name?"
Packit 667938
Ask the person in charge of your Router or try 'public', as this is the
Packit 667938
default Community Name.
Packit 667938
.SS "My graphs show a flat line during an outage. Why ?"
Packit 667938
.IX Subsection "My graphs show a flat line during an outage. Why ?"
Packit 667938
Well, the short answer is that when an \s-1SNMP\s0 query goes out
Packit 667938
and a response doesn't come back, \s-1MRTG\s0 has to assume something to put
Packit 667938
in the graph, and by default it assumes that the last answer we got
Packit 667938
back is probably closer to the truth than zero.  This assumption is
Packit 667938
not perfect (as you have noticed).  It's a trade-off that happens to
Packit 667938
fail during a total outage.
Packit 667938
.PP
Packit 667938
If this is an unacceptable trade-off, use the \fBunknaszero\fR option.
Packit 667938
.PP
Packit 667938
You may want to know what you're trading off, so in the spirit of
Packit 667938
trade-offs, here's the long answer:
Packit 667938
.PP
Packit 667938
The problem is that \s-1MRTG\s0 doesn't know *why* the data didn't come back, all
Packit 667938
it knows is that it didn't come back.  It has to do something, and it
Packit 667938
assumes it's a stray lost packet rather than an outage.
Packit 667938
.PP
Packit 667938
Why don't we always assume the circuit is down and use zero, which will
Packit 667938
(we think) be more nearly right?  Well, it turns out that you may be
Packit 667938
taking advantage of \s-1MRTG\s0's \*(L"assume last\*(R" behaviour without being aware of
Packit 667938
it.
Packit 667938
.PP
Packit 667938
\&\s-1MRTG\s0 uses \s-1SNMP \s0(Simple Network Management Protocol) to collect data, and
Packit 667938
\&\s-1SNMP\s0 uses \s-1UDP \s0(User Datagram Protocol) to ship packets around.  \s-1UDP\s0 is
Packit 667938
connectionless (not guaranteed) unlike \s-1TCP\s0 where packets are tracked and
Packit 667938
acknowledged and, if needed, retransmitted.  \s-1UDP\s0 just throws
Packit 667938
packets at the network and hopes they arrive.  Sometimes they don't.
Packit 667938
.PP
Packit 667938
One likely cause of lost \s-1SNMP\s0 data is congestion; another is busy routers.
Packit 667938
Other possibilities include transient telecommunications problems, router
Packit 667938
buffer overflows (which may or may not be congestion-related), \*(L"dirty
Packit 667938
lines\*(R" (links with high error rates), and acts of God.  These things
Packit 667938
happen all the time; we just don't notice because many interactive
Packit 667938
services are TCP-based and the lost packets get retransmitted
Packit 667938
automatically.
Packit 667938
.PP
Packit 667938
In the above cases where some \s-1SNMP\s0 packets are lost but traffic is
Packit 667938
flowing, assuming zero is the wrong thing to do \- you end up with a graph
Packit 667938
that looks like it's missing teeth whenever the link fills up.  \s-1MRTG\s0
Packit 667938
interpolates the lost data to produce a smoother graph which is more
Packit 667938
accurate in cases of intermittent packet loss.  But with V2.8.4 and above,
Packit 667938
you can use the \*(L"unknaszero\*(R" option to produce whichever graph is best
Packit 667938
under the conditions typical for your network.
Packit 667938
.SH "AUTHOR"
Packit 667938
.IX Header "AUTHOR"
Packit 667938
Tobias Oetiker <tobi@oetiker.ch>