Stránka 1 z 1
SNMP a RRDTool
Napsal: stř 8. srp 2007, 19:10
od moravcik10
Zdravim vas potrebujem pomoct. Chcem si spojazdnit RRDTool. Nasiel som aj k tomu skript ktory zapisuje traffic ktory vytahuje zo snmp. ale mam problem ze ten snmp mi akosi nechce ist na vlastnej masine.
Vzdy mi to vypise TimeOut
Tu je vypis ktory vypise zo skriptu:
Kód: Vybrat vše
./rrdtraffic.sh
snmpget: Timeout (Sub-id not found: (top) -> public)
snmpget: Timeout (Sub-id not found: (top) -> public)
1186590674:0:0ERROR: Garbage ':31:27 CEST 2007
' after command:
COMMENT:Generovane Wed Aug 8 18:31:27 CEST 2007
Tu je prikaz ktory je v skripte:
Kód: Vybrat vše
$in=`snmpget -Pe -Oq 8x.2xx.1xx.2xx public .iso.3.6.1.2.1.2.2.1.10.1|
awk '{printf \$2}'`+0;
$out=`snmpget -Pe -Oq 8x.2xx.1xx.2xx public .iso.3.6.1.2.1.2.2.1.16.1|
awk '{printf \$2}'`+0;
ipcku som zaxkoval z bezpecnostnych dovodov

Nieco mi napoveda ze to public by sa malo nejak nakonfigurovat. Prosim o help. Dakujem
Napsal: čtv 9. srp 2007, 09:51
od tosuja
1. nezkousej sve verejne IP, urcite mas firewall a neni duvod otvirat tuto diru. pouzivej loopback interface (lo, IP 127.0.0.1)
2. Musis nakonfigurovat SNMP na pouzivani spravne community. Kdyz odhlednu od detailu, bude ti stacit do /etc/snmp/snmpd.conf nacpat asi toto:
Kód: Vybrat vše
com2sec local localhost public
group MyRWGroup v1 local
group MyRWGroup v2c local
group MyRWGroup usm local
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all none
view all included .1 80
3. over si, ze ti to vubec funguje
Kód: Vybrat vše
snmpget -v 2c -c public localhost sysUpTimeInstance
by mel vypsat jeden radek zhruba tohoto obsahu
Kód: Vybrat vše
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (16316609) 1 day, 21:19:26.09
Pokud ses dostal az na konec, mas sanci, ze ti to bude fungovat

Napsal: čtv 9. srp 2007, 15:35
od moravcik10
Ked dam do prikazu localhost vypise toto:
Kód: Vybrat vše
./rrdtraffic.sh
snmpget: No securityName specified (Sub-id not found: (top) -> public)
snmpget: No securityName specified (Sub-id not found: (top) -> public)
1186666462:0:0ERROR: Garbage ':34:23 CEST 2007
' after command:
COMMENT:Generovane Thu Aug 9 15:34:23 CEST 2007
PS: Ten prikaz funguje normalne ale ten skript pise no response from localhost

Napsal: čtv 9. srp 2007, 22:58
od tosuja
Takze chyba je v konfiguraci toho skriptu. Potrebujes ho presvedcit, aby dotazy delal s timto nastavenim:
Hostname: localhost
SNMP verze: 2c (pripadne se to tam muze oznacovat 2)
community public
Ono to totiz celkem vypada, ze on se snazi delat dotaz pomoci SNMP v3, kde uz je treba konfigurovat regulerni uzivatelske jmena a hesla. Je pak jasne, ze kdyz nemas SNMP server nakonfigurovany na podporu v3, nebude na ne reagovat.... Nevim, kdes ten rrdtraffic.sh skript ziskal, google mlci, takze vic nepomuzu.
Napsal: pát 10. srp 2007, 11:37
od moravcik10
Toto je default script. Ja som tam len zmenil IP 111.111.111.111 na localhost
Kód: Vybrat vše
#! /usr/bin/perl
use lib qw( /rrdtool/perl-shared/blib/lib /rrdtool/perl-shared/blib/arch );
use lib qw( /usr/local/rrdtool-1.0.33/lib/perl /rrdtool/lib/perl );
use RRDs;
my $start=time;
my $rrd= "/home/httpd/rrdtool.domena.sk-443/html/host.rrd";
my $name = "/home/httpd/rrdtool.domena.sk-443/html/host.png";
if (not -f $rrd){
RRDs::create ($rrd, "--start",$start-1, "--step",60,
"DS:in:COUNTER:180:U:U",
"DS:out:COUNTER:180:U:U",
"RRA:AVERAGE:0.5:1:3600",
"RRA:MIN:0.5:1:3600",
"RRA:MAX:0.5:1:3600",
);
};
my $ERROR = RRDs::error;
die "$0: unable to create `$rrd': $ERROR\n" if $ERROR;
$in=`snmpget -Pe -Oq 111.111.111.111 public .iso.3.6.1.2.1.2.2.1.10.1|
awk '{printf \$2}'`+0;
$out=`snmpget -Pe -Oq 111.111.111.111 public .iso.3.6.1.2.1.2.2.1.16.1|
awk '{printf \$2}'`+0;
$date=`date`;
print "$start:$in:$out";
RRDs::update $rrd,"$start:$in:$out";
my $ERROR = RRDs::error;
die "$0: unable to create `$rrd': $ERROR\n" if $ERROR;
$in=int($in/1024/1024);
$out=int($out/1024/1024);
RRDs::graph "$name",
"--title", "Prehlad SNMP trafficu",
"--start", "now-1d",
"--end", "now",
"--imgformat","PNG",
"--width=600",
"--height=150",
"--step=300",
"DEF:in=$rrd:in:AVERAGE",
"DEF:out=$rrd:out:AVERAGE",
"CDEF:gout=0,out,-",
"CDEF:grin=in,8,*",
"CDEF:grout=gout,8,*",
"AREA:grin#d60000:Traffic in total\\: $in MB\\r",
"AREA:grout#00d600:Traffic out total\\: $out MB\\r",
"COMMENT:Generovane $date ",
;
if ($ERROR = RRDs::error) {
print "ERROR: $ERROR\n";
};
Napsal: pát 10. srp 2007, 12:31
od tosuja
Aha, konecne mi svitlo. snmpget dela automaticky SNMP v3 spojeni, takze je treba mu rict, aby delal v2c. Pridej parametr "-v 2c" ke kazdemu volani snmpget a pojede to:
Kód: Vybrat vše
$in=`snmpget -v 2c -Pe -Oq 111.111.111.111 public .iso.3.6.1.2.1.2.2.1.10.1|
awk '{printf \$2}'`+0;
$out=`snmpget -v 2c -Pe -Oq 111.111.111.111 public .iso.3.6.1.2.1.2.2.1.16.1|
awk '{printf \$2}'`+0;