Koukam ze porad zapasi spoustu lidi s grafy takze trosku pomuzu i kdyz ja si musel pomoct sam :
Nize uvedeny script castecne vygeneruje OID pro MRTG ve format v jakem to funguje. dulezite je nekolik veci
1. Mysite vyexportovat z Mikrotiku v terminalu OID a to takovymto zpusobem
print file jmeno
print oid file jmenooid
2. v mikrotiku musi byt zapnuty SNMP server :)
a za 3. musite si rucne pripravit uvod do konfigu mrtg
ten muze vypadat napr.takto
### Global Config Options
# for UNIX
# WorkDir: /home/http/mrtg cesta kde je ulozen pracovni adresar apache
# or for NT
WorkDir: c:\web\mrtg\
### Global Defaults
# to get bits instead of bytes and graphs growing to the right
Options[_]: growright, bits
EnableIPv6: no
za tohle staci vlozit jen vygenerovanej kod ktery je v konfig.txt
Vim ze by to slo udelat cely ale mne to takhle vyhovuje protoze se mi MRTG sklada z nekolika grafu : Doufam ze to neni popsane moc zmatene. Jeste podotykam tohle funguje POUZE v SIMLE a ve verzi 2,9 na 2,8 staci malinka upravicka je popsana v kodu
<?php
$fsrc1name='jmeno.txt'; /tady sou ulozene nazvy queue
$fsrc2name='jmenooid.txt'; // tady sou ulozene OID
$fdestname='konfig.txt'; // sem se generuje kod pro MRTG
$company='public'; // nazev comunity v mikrotiku kde je povolen SNMP
function GetId($sstr) { // Vrati ID uzivatele
$sstr=trim($sstr);
$spos=strpos($sstr,' ');
if ($spos>0) return substr($sstr,0,$spos); else return -1;
}
function GetPar($sstr,$parname,$isstr=false) { // Vrati hodnotu parametru
$spos=strpos($sstr,$parname);
if ($spos>0) {
if ($isstr) { $dpos=2; $dchr='"'; } else { $dpos=1; $dchr=' '; }
$sstr=substr($sstr,$spos+strlen($parname)+$dpos);
$spos=strpos($sstr,$dchr);
if ($spos>0) return substr($sstr,0,$spos); else return '';
} else return '';
}
function GetParId($fsrc,$id,$parname) { // Vrati hodnotu parametru ze zaznamu ID
for ($z=0; $z<count($fsrc); $z++) {
if (GetId($fsrc[$z])==$id) return GetPar($fsrc[$z],$parname);
}
}
$fd=fopen($fsrc1name,'r');
$fdata=fread($fd,filesize($fsrc1name));
$spos=strpos($fdata,'dynamic');
if ($spos>0) $fdata=substr($fdata,$spos+9); // u verze 2,8 musi byt +7 tusim :P
$fsrc1=explode("\n\n",$fdata);
fclose($fd);
$fd=fopen($fsrc2name,'r');
$fdata=fread($fd,filesize($fsrc2name));
$spos=strpos($fdata,'dynamic');
if ($spos>0) $fdata=substr($fdata,$spos+9);
$fsrc2=explode("\n\n",$fdata);
fclose($fd);
$cRow=0; // Zpracovavany radek
$fd=fopen($fdestname,'w');
While ($cRow<count($fsrc1)) {
$id=GetId($fsrc1[$cRow]);
$name=GetPar($fsrc1[$cRow],'name',true);
$ip=GetPar($fsrc1[$cRow],'target-addresses'); //pro verzi 2,8 se musi prepsat na target-address
$spos=strpos($ip,'/');
if ($spos>0) $ip=substr($ip,0,$spos);
$btin=trim(GetParId($fsrc2,$id,'bytes-in'),'.');
$btout=trim(GetParId($fsrc2,$id,'bytes-out'),'.');
echo('Title['.$ip.']: IP '.$ip."<br>\n"); // Zobrazi v prohlizeci
echo('PageTop['.$ip.']: <h1> Přenos dat '.$ip.' -'.$name." -- jmeno spolecnost</h1><br>\n");
echo('Target['.$ip.']:'.$btin.'&'.$btout.':'.$company.'@192.168.1.1'."<br>\n"); //IP mikrotiku
echo('MaxBytes['.$ip.']:1250000'."<br>\n");
echo("<br>\n");
fwrite($fd,'Title['.$ip.']: IP '.$ip."\n"); // Ulozi do souboru
fwrite($fd,'PageTop['.$ip.']: <h1> Přenos dat '.$ip.' -'.$name." -- jmeno spolecnosti</h1>\n");
fwrite($fd,'Target['.$ip.']:'.$btin.'&'.$btout.':'.$company.'@192.168.1.1'."\n");
fwrite($fd,'MaxBytes['.$ip.']:1250000'."\n");
fwrite($fd,"\n");
$cRow++;
}
fclose($fd);
?>