PDA

Bekijk Volledige Versie : MRTG scriptje



thunder
28/05/07, 05:22
hallo,

heeft er iemand een simpel php scriptje om het verkeer uit een switchpoort te lezen en hier een mooie mrtg van te maken (incl 95%)?

bij voorbaat dank :)

EDIT: iemand ook een scriptje/idee hoe ik het verkeer in cijfers eruit kan halen (in Gb/Tb/Mb/Kb) zodat ik ze kan inladen in php om ze op te slaan in een db.

DutchTSE
28/05/07, 10:14
mrtg kan dat

wonko
28/05/07, 10:23
Als je gewoon switchpoort gegevens wil graphen, raad ik je aan om een cacti of iets dergelijks te bekijken.

Anders moet je even de snmp libs van php doorlezen, en die gebruiken om de juiste OID's uit te lezen.

ErikM
28/05/07, 10:36
http://haas.oezie.org/rrd/traffic-test/10.0.11.10-103.png met rrdtool makkelijk te maken. net zoals het uitlezen voor totalen per maand
http://haas.oezie.org/cgi-bin/traffic.pl?jaar=2007

Groovy
28/05/07, 13:25
http://haas.oezie.org/rrd/traffic-test/10.0.11.10-103.png met rrdtool makkelijk te maken. net zoals het uitlezen voor totalen per maand
http://haas.oezie.org/cgi-bin/traffic.pl?jaar=2007

Wat is de bijbehorende rrd create code hiervoor?

thunder
28/05/07, 13:45
http://haas.oezie.org/rrd/traffic-test/10.0.11.10-103.png met rrdtool makkelijk te maken. net zoals het uitlezen voor totalen per maand
http://haas.oezie.org/cgi-bin/traffic.pl?jaar=2007

heb je het phpscriptje om die eerste afbeelding te maken?

even ter info voor de vorige posts, ik heb snmp,rrdtool,mrtg...
Cacti heb ik al bekeken ,maar ik wil de rtg's in mijn klanten systeem zetten zodat de klant als die ingelogt is de rtg kan bekijken, alsook het verbruik in GB in cijfers waarmee ons script automatisch de meerprijs berekened als ze er over gaan.

Groovy
28/05/07, 14:07
heb je het phpscriptje om die eerste afbeelding te maken?

even ter info voor de vorige posts, ik heb snmp,rrdtool,mrtg...
Cacti heb ik al bekeken ,maar ik wil de rtg's in mijn klanten systeem zetten zodat de klant als die ingelogt is de rtg kan bekijken, alsook het verbruik in GB in cijfers waarmee ons script automatisch de meerprijs berekened als ze er over gaan.

Dat zijn geen PHP scripts maar PERL scripts

thunder
28/05/07, 14:17
cacti werkt in php, maar een perl script is ook goed

DutchTSE
28/05/07, 21:32
Hieruit blijkt wel weer wat voor kutsysteem die reputatie is.. ik wordt negatief beoordeeld omdat ik de 1e ben, terwijl de vraag van TS de indruk wekt dat hij stats aan zijn klanten/bezoekers wilt laten zien via php. MRTG is hier uitstekend geschikt voor, het laat stats aan bezoekers zien. Wie weet dacht TS wel wat MRTG een verzamelnaam was, en niet een programma zelf ;)

Om ook maar even inhoudelijk te reageren: zorg dat de output van je mrtg mbit berekening in een txt file wordt gestopt, deze vervolgens uitlezen via 'file_get_content' en klaar. Heb het ook ooit zo gemaakt (mrtg+plugin die verbruik in mbits in een txt file gooide)

ErikM
28/05/07, 23:43
Wat is de bijbehorende rrd create code hiervoor?


RRDs::create ($file,
"--step", 300,
"DS:ifInOctets:COUNTER:600:0:U",
"DS:ifInUcastPkts:COUNTER:600:0:U",
"DS:ifInNUcastPkts:COUNTER:600:0:U",
"DS:ifInDiscards:COUNTER:600:0:U",
"DS:ifInErrors:COUNTER:600:0:U",
"DS:ifInUnknownProtos:COUNTER:600:0:U",
"DS:ifOutOctets:COUNTER:600:0:U",
"DS:ifOutUcastPkts:COUNTER:600:0:U",
"DS:ifOutNUcastPkts:COUNTER:600:0:U",
"DS:ifOutDiscards:COUNTER:600:0:U",
"DS:ifOutErrors:COUNTER:600:0:U",
"DS:ifOutQLen:GAUGE:600:0:U",
"RRA:AVERAGE:0.5:1:600",
"RRA:AVERAGE:0.5:6:700",
"RRA:AVERAGE:0.5:24:775",
"RRA:AVERAGE:0.5:288:3650",
"RRA:MAX:0.5:6:700",
"RRA:MAX:0.5:24:775",
"RRA:MAX:0.5:288:3650",
"RRA:MIN:0.5:6:700",
"RRA:MIN:0.5:24:775",
"RRA:MIN:0.5:288:3650"
);



heb je het phpscriptje om die eerste afbeelding te maken?


geen php, maar wel perl



my @data = ("$html$host-$if.png");
push(@data,"--start=-1D");
# push(@data,"--end=-1D");
push(@data,"--vertical-label=Bits/sec");
push(@data,"--imgformat=PNG");
push(@data,"--title=Traffic for $host");
# push(@data,"--width=800");
# push(@data,"--height=600");
push(@data,"--slope-mode");
push(@data,"DEF:in=$file:ifInOctets:AVERAGE");
push(@data,"DEF:out=$file:ifOutOctets:AVERAGE");
switch ($legenda)
{
case 1
{
push(@data,"AREA:in#00FF00:in");
push(@data,"LINE2:out#0000FF:out");
}
case 2
{
}
case 3
{
push(@data,"CDEF:inun=in,UN,0,in,8,*,IF");
push(@data,"CDEF:outun=out,UN,0,out,8,*,IF");
push(@data,"AREA:inun#00FF00:in ");
push(@data,"GPRINT:inun:LAST:%6.2lf%sBit/sec");
push(@data,"GPRINT:inun:AVERAGE:Avg.\\:%6.2lf%sBit/sec");
push(@data,"GPRINT:inun:MAX:Max\\:%6.2lf%sBit/sec\\n");
push(@data,"LINE0.2:outun#0000FF:out");
push(@data,"GPRINT:outun:LAST:%6.2lf%sBit/sec");
push(@data,"GPRINT:outun:AVERAGE:Avg.\\:%6.2lf%sBit/sec");
push(@data,"GPRINT:outun:MAX:Max\\:%6.2lf%sBit/sec\\n");
push(@data,"VDEF:intotal=in,TOTAL");
push(@data,"VDEF:outtotal=out,TOTAL");
push(@data,"VDEF:inprc=inun,95,PERCENT");
push(@data,"VDEF:outprc=outun,95,PERCENT");
push(@data,"HRULE:inprc#FF0000:95th");
push(@data,"GPRINT:inprc:percent in \\: %6.2lf %sBits");
push(@data,"GPRINT:intotal:Total in \\: %6.2lf %sBytes\\n");
push(@data,"HRULE:outprc#000000:95th");
push(@data,"GPRINT:outprc:percent out\\: %6.2lf %sBits");
push(@data,"GPRINT:outtotal:Total out\\: %6.2lf %sBytes\\n");
}
}


#push(@data,"");
RRDs::graph (@data);
if (my $ERROR = RRDs::error)
{
print "ERROR: $ERROR\n";
}


$legenda is in dit geval 3

GlennMatthys
28/05/07, 23:48
Ik gebruik hiervoor ook cacti en maak een beperkte account aan voor de klanten, zodat die alleen hun eigen grafieken kunnen bekijken. Het gemak hier aan is dat, als ze SNMP op hun eigen machines draaien hebben, die ook kan toevoegen aan hun persoonlijke tree. Zo kunnen ze de indicatoren van hun eigen machine in de gaten houden, wat weer een extra service is naar de klant toe ;-). Heb echter wel geen systeem dat automatisch de billing doet, maar daarvoor bestaat er 'noc management software', zoals http://nocmanager.net/index.php