[mrtg] Re: hrSystemUptime
Jerry Heidtke
jheidtke at fmlh.edu
Wed Feb 19 16:35:25 MET 2003
Nothing in the host mib uses 64 bit counters. The host mib is an SMIv1 mib,
which doesn't include any 64 bit objects whatsoever. Where did you get this
idea?
In any case, hrSystemUptime is not a counter. It is a timeticks value. This
object type is defined as
TimeTicks ::=
[APPLICATION 3]
IMPLICIT INTEGER (0..4294967295)
No 64 bits there.
Jerry
-----Original Message-----
From: James Overbeck [mailto:grendel at gmo.jp]
Sent: Wednesday, February 19, 2003 4:54 AM
To: Brett Marler
Cc: Antoine Jacoutot; mrtg at list.ee.ethz.ch
Subject: [mrtg] Re: hrSystemUptime
Hello,
I believe the point of this exercise is to avoid sysUpTime looping
like the
odometer on an old car every (((2**32 / 100) / 60) / 60) / 24 = 497 days.
sysUpTime does that because it is limited to a 32 bit counter. I've seen it
happen many a time on access servers and routers that no one has touched for
a long time. Anything beginning with hr usually uses SNMPv2 and a 64 bit
counter, so hrSystemUptime would loop roughly every ((((2**64 / 100) / 60) /
60) / 24) / 365.25 = 5845420460 years.
The answer would be to hack the mrtg perl executable so it can take
an OID
as part of the RouterUptime option, then mail Tobias and ask him nicely to
include your modification in the next release. :D
In version 2.9.26b, this is the piece of code you need to change:
if (defined $$rcfg{routeruptime}{$rou}) {
($uptime,$name) = snmpget($$rcfg{routeruptime}{$rou}, $$cfg{snmpoptions},
'sysUptime',
'sysName'); #" <- this makes emacs parsing happy
}
According to
http://people.ee.ethz.ch/~oetiker/webtools/mrtg/reference.html , the
RouterUptime target option allows you to specify a community at hostname for
fetching uptime, but it doesn't seem to allow you to specify an OID.
The following would allow you to do so, as long as you don't have an
@ mark
in your community and you use a numerical OID. So it's not perfect. ^^;
if (defined $$rcfg{routeruptime}{$rou}) {
if ($$rcfg{routeruptime}{$rou} =~ /^([\d\.]+)\:([^\@]+)\@(.+)$/) {
my($oid,$community,$host) = ($1,$2,$3);
($uptime,$name) = snmpget($community.'@'.$host,
$$cfg{snmpoptions},
$oid,
'sysName'); #" <- this makes emacs parsing happy
} else {
($uptime,$name) = snmpget($$rcfg{routeruptime}{$rou},
$$cfg{snmpoptions},
'sysUptime',
'sysName'); #" <- this makes emacs parsing happy
}
}
With that change, you can specify RouterUptime something like this:
RouterUptime[localhost]: 1.3.6.1.2.1.25.1.1.0:public at localhost:::::2
HopeThatHelps,
James
Brett Marler wrote:
> Hello Antoine,
>
>
>>On a console, if I go:
>># snmpget -v 2c -c public localhost host.hrSystem.hrSystemUptime.0
>
> (snip)
>
>>HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (105259891) 12 days,
>>4:23:18.91
>>
>>But I have no idea how to tell mrtg to use this.
>
>
> I get the "uptime" of my Windows XP box by simply running a small script
from
> my Linux box which simply does an snmpwalk, searches for the sysuptime,
strips
> the "days" off and puts it into a format which MRTG can then make a graph
> from. Script is below if you would like it, just a no brainer shell
script!
>
> --
> #!/bin/sh
> uptime=`/usr/local/bin/snmpwalk -v1 -c private 172.16.0.1 | /bin/grep -i
> sysuptime | awk '{print $5}' | sed 's/days//'`
> echo "$uptime";
> --
>
> Hope this is of some help.
>
>
> Regards.
--
Unsubscribe mailto:mrtg-request at list.ee.ethz.ch?subject=unsubscribe
Archive http://www.ee.ethz.ch/~slist/mrtg
FAQ http://faq.mrtg.org Homepage http://www.mrtg.org
WebAdmin http://www.ee.ethz.ch/~slist/lsg2.cgi
Confidentiality Notice: This e-mail message, including any attachments, is
for the sole use of the intended recipient(s) and may contain confidential
and privileged information. Any unauthorized review, use, disclosure or
distribution is prohibited. If you are not the intended recipient, please
contact the sender by reply e-mail and destroy all copies of the original
message.
--
Unsubscribe mailto:mrtg-request at list.ee.ethz.ch?subject=unsubscribe
Archive http://www.ee.ethz.ch/~slist/mrtg
FAQ http://faq.mrtg.org Homepage http://www.mrtg.org
WebAdmin http://www.ee.ethz.ch/~slist/lsg2.cgi
More information about the mrtg
mailing list